1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
6 typedef struct _Pginfo Pginfo;
10 Evas_Object *win, *pager, *pg1, *pg2, *pg3, *pg4;
14 my_pager_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
17 elm_pager_content_promote(info->pager, info->pg2);
21 my_pager_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
24 elm_pager_content_promote(info->pager, info->pg3);
28 my_pager_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
31 elm_pager_content_promote(info->pager, info->pg4);
36 my_pager_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
39 elm_pager_content_promote(info->pager, info->pg1);
44 my_pager_pop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
47 elm_pager_content_pop(info->pager);
54 static const struct style_tuple styles[] = {
55 { "Default", "default"},
57 { "Slide Invisible", "slide_invisible"},
59 { "Fade Translucide", "fade_translucide"},
60 { "Fade Invisible", "fade_invisible"},
65 _style(void *data, Evas_Object *obj, void *event_info __UNUSED__)
67 Evas_Object *pg = data;
68 elm_object_style_set(pg, styles[elm_radio_value_get(obj)].name);
72 test_pager(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
74 Evas_Object *win, *bg, *pg, *bx, *lb, *bt;
77 win = elm_win_add(NULL, "pager", ELM_WIN_BASIC);
78 elm_win_title_set(win, "Pager");
79 elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
80 elm_win_autodel_set(win, EINA_TRUE);
84 elm_win_resize_object_add(win, bg);
85 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
88 pg = elm_pager_add(win);
89 evas_object_size_hint_weight_set(pg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
90 elm_win_resize_object_add(win, pg);
95 bx = elm_box_add(win);
96 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
99 lb = elm_label_add(win);
100 elm_object_text_set(lb,
101 "This is page 1 in a pager stack.<br/>"
103 "So what is a pager stack? It is a stack<br/>"
104 "of pages that hold widgets in it. The<br/>"
105 "pages can be pushed and popped on and<br/>"
106 "off the stack, activated and otherwise<br/>"
107 "activated if already in the stack<br/>"
108 "(activated means promoted to the top of<br/>"
111 "The theme may define the animation how<br/>"
112 "show and hide of pages. Select one theme style:");
113 elm_box_pack_end(bx, lb);
114 evas_object_show(lb);
117 Evas_Object *rdg = NULL, *rd;
118 for (i = 0; i < (sizeof(styles) / sizeof(struct style_tuple)); i++)
120 rd = elm_radio_add(win);
121 elm_object_text_set(rd, styles[i].label);
122 elm_radio_state_value_set(rd, i);
124 elm_radio_group_add(rd, rdg);
127 evas_object_smart_callback_add(rd, "changed", _style, pg);
128 elm_box_pack_end(bx, rd);
129 evas_object_show(rd);
131 elm_radio_value_set(rd, 0);
133 bt = elm_button_add(win);
134 elm_object_text_set(bt, "Flip to 2");
135 evas_object_smart_callback_add(bt, "clicked", my_pager_1, &info);
136 elm_box_pack_end(bx, bt);
137 evas_object_show(bt);
139 bt = elm_button_add(win);
140 elm_object_text_set(bt, "Popme");
141 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
142 elm_box_pack_end(bx, bt);
143 evas_object_show(bt);
144 elm_pager_content_push(pg, bx);
147 bx = elm_box_add(win);
148 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
149 evas_object_show(bx);
151 lb = elm_label_add(win);
152 elm_object_text_set(lb,
153 "This is page 2 in a pager stack.<br/>"
155 "This is just like the previous page in<br/>"
158 elm_box_pack_end(bx, lb);
159 evas_object_show(lb);
161 bt = elm_button_add(win);
162 elm_object_text_set(bt, "Flip to 3");
163 evas_object_smart_callback_add(bt, "clicked", my_pager_2, &info);
164 elm_box_pack_end(bx, bt);
165 evas_object_show(bt);
167 bt = elm_button_add(win);
168 elm_object_text_set(bt, "Popme");
169 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
170 elm_box_pack_end(bx, bt);
171 evas_object_show(bt);
172 elm_pager_content_push(pg, bx);
175 bx = elm_box_add(win);
176 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
177 evas_object_show(bx);
179 lb = elm_label_add(win);
180 elm_object_text_set(lb,
181 "This is page 3 in a pager stack.<br/>"
183 "This is just like the previous page in<br/>"
185 elm_box_pack_end(bx, lb);
186 evas_object_show(lb);
188 bt = elm_button_add(win);
189 elm_object_text_set(bt, "Flip to 1");
190 evas_object_smart_callback_add(bt, "clicked", my_pager_3, &info);
191 elm_box_pack_end(bx, bt);
192 evas_object_show(bt);
194 bt = elm_button_add(win);
195 elm_object_text_set(bt, "Popme");
196 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
197 elm_box_pack_end(bx, bt);
198 evas_object_show(bt);
199 elm_pager_content_push(pg, bx);
202 Evas_Object *ly, *ly2;
205 ly = elm_layout_add(win);
206 snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
207 elm_layout_file_set(ly, buf, "test/layout");
208 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
209 evas_object_show(ly);
211 ly2 = elm_layout_add(win);
212 snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
213 elm_layout_file_set(ly2, buf, "layout2");
214 evas_object_size_hint_weight_set(ly2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
215 //elm_win_resize_object_add(win, ly2);
216 evas_object_show(ly2);
218 bt = elm_button_add(win);
219 elm_object_text_set(bt, "Flip to 1");
220 evas_object_smart_callback_add(bt, "clicked", my_pager_4, &info);
221 elm_object_part_content_set(ly2, "element1", bt);
222 evas_object_show(bt);
224 bt = elm_button_add(win);
225 elm_object_text_set(bt, "Popme");
226 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
227 evas_object_show(bt);
228 elm_object_part_content_set(ly2, "element2", bt);
230 elm_object_part_content_set(ly, "swallow", ly2);
231 evas_object_show(ly);
233 elm_pager_content_push(pg, ly);
237 evas_object_show(win);
241 my_pager_push(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
244 Evas_Object *bx, *bt, *lb;
245 static int count = 2;
248 bx = elm_box_add(info->win);
249 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
250 evas_object_show(bx);
252 lb = elm_label_add(info->win);
253 snprintf(buf, sizeof(buf), "This is page %d in the slide pager<br/><br/>", count++);
254 elm_object_text_set(lb, buf);
255 elm_box_pack_end(bx, lb);
256 evas_object_show(lb);
258 bt = elm_button_add(info->win);
259 elm_object_text_set(bt, "Push a new page");
260 evas_object_smart_callback_add(bt, "clicked", my_pager_push, info);
261 elm_box_pack_end(bx, bt);
262 evas_object_show(bt);
264 bt = elm_button_add(info->win);
265 elm_object_text_set(bt, "Go back (pop)");
266 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, info);
267 elm_box_pack_end(bx, bt);
268 evas_object_show(bt);
269 elm_pager_content_push(info->pager, bx);
273 _hide_finished(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
275 //To prevent the window size become zero.
277 if (elm_pager_content_top_get(info->pager)) return;
278 elm_win_resize_object_del(info->win, info->pager);
282 test_pager_slide(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
284 Evas_Object *win, *bg, *pg, *bx, *lb, *bt;
287 win = elm_win_add(NULL, "pager", ELM_WIN_BASIC);
288 elm_win_title_set(win, "Pager Slide");
289 elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
290 elm_win_autodel_set(win, EINA_TRUE);
293 bg = elm_bg_add(win);
294 elm_win_resize_object_add(win, bg);
295 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
296 evas_object_show(bg);
298 pg = elm_pager_add(win);
299 elm_win_resize_object_add(win, pg);
300 evas_object_smart_callback_add(pg, "hide,finished",
301 _hide_finished, &info);
302 elm_object_style_set(pg, "slide");
303 evas_object_show(pg);
305 bx = elm_box_add(win);
306 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
307 evas_object_show(bx);
309 lb = elm_label_add(win);
310 elm_object_text_set(lb,
311 "This is page 1 in a slide pager.<br/>"
313 "The slide pager style is useful for browsing<br/>"
314 "a hierarchy of objects, as it makes clear<br/>"
315 "the direction of the browse.<br/>"
316 "This is the 'slide' style, also available<br/>"
317 "a fully transparent style named 'slide_invisble'.<br/>"
319 elm_box_pack_end(bx, lb);
320 evas_object_show(lb);
322 bt = elm_button_add(win);
323 elm_object_text_set(bt, "Push a new page");
324 evas_object_smart_callback_add(bt, "clicked", my_pager_push, &info);
325 elm_box_pack_end(bx, bt);
326 evas_object_show(bt);
328 bt = elm_button_add(win);
329 elm_object_text_set(bt, "Go back (pop)");
330 evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
331 elm_box_pack_end(bx, bt);
332 evas_object_show(bt);
333 elm_pager_content_push(pg, bx);
335 evas_object_show(win);