[JungWooHyun] doing merge job ~
[framework/uifw/elementary.git] / src / examples / map_example_01.c
1 /**
2  * Simple Elementary's <b>map widget</b> example, illustrating its
3  * creation.
4  *
5  * See stdout/stderr for output. Compile with:
6  *
7  * @verbatim
8  * gcc -g `pkg-config --cflags --libs elementary` map_example_01.c -o map_example_01
9  * @endverbatim
10  */
11
12 #include <Elementary.h>
13 #ifdef HAVE_CONFIG_H
14 # include "elementary_config.h"
15 #else
16 # define __UNUSED__
17 #endif
18
19 static void
20 _bt_zoom_in(void *data, Evas_Object *obj __UNUSED__, void *ev __UNUSED__)
21 {
22 <<<<<<< HEAD
23    Evas_Object *map = data;
24    int zoom;
25
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);
29 =======
30    int zoom;
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
35 }
36
37 static void
38 _bt_zoom_out(void *data, Evas_Object *obj __UNUSED__, void *ev __UNUSED__)
39 {
40 <<<<<<< HEAD
41    Evas_Object *map = data;
42    int zoom;
43
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);
47 =======
48    int zoom;
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
53 }
54
55 static void
56 _bt_zoom_fit(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
57 {
58 <<<<<<< HEAD
59    Evas_Object *map = data;
60    elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_AUTO_FIT);
61 =======
62    elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FIT);
63 >>>>>>> remotes/origin/upstream
64 }
65
66 static void
67 _bt_zoom_fill(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
68 {
69 <<<<<<< HEAD
70    Evas_Object *map = data;
71    elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_AUTO_FILL);
72 =======
73    elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_AUTO_FILL);
74 >>>>>>> remotes/origin/upstream
75 }
76
77 static void
78 _on_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
79 {
80    elm_exit();
81 }
82
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). */
87 static Eina_Bool
88 _nasty_hack(void *data)
89 {
90    Evas_Object *o = data;
91    Evas *e = evas_object_evas_get(o);
92    evas_smart_objects_calculate(e);
93    return ECORE_CALLBACK_CANCEL;
94 }
95
96 EAPI_MAIN int
97 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
98 {
99    Evas_Object *win, *bg, *map, *box, *bt;
100
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);
104
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);
109
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);
114
115    box = elm_box_add(win);
116    evas_object_show(box);
117
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);
123
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);
129
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);
135
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);
141
142 <<<<<<< HEAD
143    elm_map_geo_region_show(map, -43.2, -22.9);
144    elm_map_zoom_set(map, 12);
145
146 =======
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);
152
153    ecore_timer_add(0.5, _nasty_hack, win);
154
155    elm_run();
156    return 0;
157 }
158 ELM_MAIN()