2 * Simple Elementary's <b>map widget</b> example, illustrating its
5 * See stdout/stderr for output. Compile with:
8 * gcc -g map_example_01.c -o map_example_01 `pkg-config --cflags --libs elementary`
12 #include <Elementary.h>
15 _bt_zoom_in(void *data, Evas_Object *obj, void *ev)
18 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
19 zoom = elm_map_zoom_get(data);
20 elm_map_zoom_set(data, zoom + 1);
24 _bt_zoom_out(void *data, Evas_Object *obj, void *ev)
27 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
28 zoom = elm_map_zoom_get(data);
29 elm_map_zoom_set(data, zoom - 1);
33 _bt_zoom_fit(void *data, Evas_Object *obj, void *event_info)
35 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FIT);
39 _bt_zoom_fill(void *data, Evas_Object *obj, void *event_info)
41 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FILL);
45 _on_done(void *data, Evas_Object *obj, void *event_info)
50 /* FIXME: it shouldn't be required. For unknown reason map won't call
51 * pan_calculate until shot delay time, but then it will take a screenshot
52 * when the map isn't loaded yet (actually it won't be downloaded, because
53 * after the SS it will kill the example). */
55 _nasty_hack(void *data)
57 Evas_Object *o = data;
58 Evas *e = evas_object_evas_get(o);
59 evas_smart_objects_calculate(e);
60 return ECORE_CALLBACK_CANCEL;
64 elm_main(int argc, char **argv)
66 Evas_Object *win, *bg, *map, *box, *bt;
68 win = elm_win_add(NULL, "map", ELM_WIN_BASIC);
69 elm_win_title_set(win, "Map Creation Example");
70 evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
73 elm_win_resize_object_add(win, bg);
74 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
77 map = elm_map_add(win);
78 elm_win_resize_object_add(win, map);
79 evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
80 evas_object_show(map);
82 box = elm_box_add(win);
83 evas_object_show(box);
85 bt = elm_button_add(win);
86 elm_object_text_set(bt, "+");
87 elm_box_pack_end(box, bt);
89 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_in, map);
91 bt = elm_button_add(win);
92 elm_object_text_set(bt, "-");
93 elm_box_pack_end(box, bt);
95 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_out, map);
97 bt = elm_button_add(win);
98 elm_object_text_set(bt, "X");
99 elm_box_pack_end(box, bt);
100 evas_object_show(bt);
101 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fit, map);
103 bt = elm_button_add(win);
104 elm_object_text_set(bt, "#");
105 elm_box_pack_end(box, bt);
106 evas_object_show(bt);
107 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map);
109 elm_map_zoom_set(map, 12);
110 elm_map_region_show(map, -43.2, -22.9);
111 evas_object_resize(win, 512, 512);
112 evas_object_show(win);
114 ecore_timer_add(0.5, _nasty_hack, win);