2 * Simple Elementary's <b>map widget</b> example, illustrating its
5 * See stdout/stderr for output. Compile with:
8 * gcc -g `pkg-config --cflags --libs elementary` map_example_01.c -o map_example_01
12 #include <Elementary.h>
14 # include "elementary_config.h"
20 _bt_zoom_in(void *data, Evas_Object *obj __UNUSED__, void *ev __UNUSED__)
23 Evas_Object *map = data;
26 elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_MANUAL);
27 zoom = elm_map_zoom_get(map);
28 elm_map_zoom_set(map, zoom + 1);
31 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
32 zoom = elm_map_zoom_get(data);
33 elm_map_zoom_set(data, zoom + 1);
34 >>>>>>> remotes/origin/upstream
38 _bt_zoom_out(void *data, Evas_Object *obj __UNUSED__, void *ev __UNUSED__)
41 Evas_Object *map = data;
44 elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_MANUAL);
45 zoom = elm_map_zoom_get(map);
46 elm_map_zoom_set(map, zoom - 1);
49 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
50 zoom = elm_map_zoom_get(data);
51 elm_map_zoom_set(data, zoom - 1);
52 >>>>>>> remotes/origin/upstream
56 _bt_zoom_fit(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
59 Evas_Object *map = data;
60 elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_AUTO_FIT);
62 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FIT);
63 >>>>>>> remotes/origin/upstream
67 _bt_zoom_fill(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
70 Evas_Object *map = data;
71 elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_AUTO_FILL);
73 elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FILL);
74 >>>>>>> remotes/origin/upstream
78 _on_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
83 /* FIXME: it shouldn't be required. For unknown reason map won't call
84 * pan_calculate until shot delay time, but then it will take a screenshot
85 * when the map isn't loaded yet (actually it won't be downloaded, because
86 * after the SS it will kill the example). */
88 _nasty_hack(void *data)
90 Evas_Object *o = data;
91 Evas *e = evas_object_evas_get(o);
92 evas_smart_objects_calculate(e);
93 return ECORE_CALLBACK_CANCEL;
97 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
99 Evas_Object *win, *bg, *map, *box, *bt;
101 win = elm_win_add(NULL, "map", ELM_WIN_BASIC);
102 elm_win_title_set(win, "Map Creation Example");
103 evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
105 bg = elm_bg_add(win);
106 elm_win_resize_object_add(win, bg);
107 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
108 evas_object_show(bg);
110 map = elm_map_add(win);
111 elm_win_resize_object_add(win, map);
112 evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
113 evas_object_show(map);
115 box = elm_box_add(win);
116 evas_object_show(box);
118 bt = elm_button_add(win);
119 elm_object_text_set(bt, "+");
120 elm_box_pack_end(box, bt);
121 evas_object_show(bt);
122 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_in, map);
124 bt = elm_button_add(win);
125 elm_object_text_set(bt, "-");
126 elm_box_pack_end(box, bt);
127 evas_object_show(bt);
128 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_out, map);
130 bt = elm_button_add(win);
131 elm_object_text_set(bt, "X");
132 elm_box_pack_end(box, bt);
133 evas_object_show(bt);
134 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fit, map);
136 bt = elm_button_add(win);
137 elm_object_text_set(bt, "#");
138 elm_box_pack_end(box, bt);
139 evas_object_show(bt);
140 evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map);
143 elm_map_geo_region_show(map, -43.2, -22.9);
144 elm_map_zoom_set(map, 12);
147 elm_map_zoom_set(map, 12);
148 elm_map_region_show(map, -43.2, -22.9);
149 >>>>>>> remotes/origin/upstream
150 evas_object_resize(win, 512, 512);
151 evas_object_show(win);
153 ecore_timer_add(0.5, _nasty_hack, win);