/** * Simple Elementary's map widget example, illustrating its * creation. * * See stdout/stderr for output. Compile with: * * @verbatim * gcc -g map_example_01.c -o map_example_01 `pkg-config --cflags --libs elementary` * @endverbatim */ #include static void _bt_zoom_in(void *data, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED) { int zoom; elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL); zoom = elm_map_zoom_get(data); elm_map_zoom_set(data, zoom + 1); } static void _bt_zoom_out(void *data, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED) { int zoom; elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL); zoom = elm_map_zoom_get(data); elm_map_zoom_set(data, zoom - 1); } static void _bt_zoom_fit(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FIT); } static void _bt_zoom_fill(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FILL); } /* FIXME: it shouldn't be required. For unknown reason map won't call * pan_calculate until shot delay time, but then it will take a screenshot * when the map isn't loaded yet (actually it won't be downloaded, because * after the SS it will kill the example). */ static Eina_Bool _nasty_hack(void *data) { Evas_Object *o = data; Evas *e = evas_object_evas_get(o); evas_smart_objects_calculate(e); return ECORE_CALLBACK_CANCEL; } EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *map, *box, *bt; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("map", "Map Creation Example"); elm_win_autodel_set(win, EINA_TRUE); map = elm_map_add(win); evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, map); evas_object_show(map); box = elm_box_add(win); evas_object_show(box); bt = elm_button_add(win); elm_object_text_set(bt, "+"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_in, map); bt = elm_button_add(win); elm_object_text_set(bt, "-"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_out, map); bt = elm_button_add(win); elm_object_text_set(bt, "X"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fit, map); bt = elm_button_add(win); elm_object_text_set(bt, "#"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map); elm_map_zoom_set(map, 12); elm_map_region_show(map, -43.2, -22.9); evas_object_resize(win, 512, 512); evas_object_show(win); ecore_timer_add(0.5, _nasty_hack, win); elm_run(); return 0; } ELM_MAIN()