1 /* Test for Focus Chain Linear*/
2 #include <Elementary.h>
4 # include "elementary_config.h"
6 #ifndef ELM_LIB_QUICKLAUNCH
9 _event(void *data __UNUSED__, Evas_Object *obj __UNUSED__, Evas_Object *src __UNUSED__, Evas_Callback_Type type, void *event_info)
11 if (type == EVAS_CALLBACK_KEY_DOWN)
13 else if (type == EVAS_CALLBACK_KEY_UP)
17 Evas_Event_Key_Down *ev = event_info;
18 printf("%s\n", ev->key);
20 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
25 _on_key_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *einfo __UNUSED__)
27 //Evas_Event_Key_Down *event = einfo;
28 //printf("%s %p Key %s Parent %p\n", evas_object_type_get(obj),
29 // obj, event->keyname, evas_object_smart_parent_get(obj));
33 _disable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
35 Evas_Object *bt = data;
36 elm_object_disabled_set(bt, EINA_TRUE);
40 _enable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
42 Evas_Object *bt = data;
43 elm_object_disabled_set(bt, EINA_FALSE);
47 my_show(Evas_Object *obj)
49 evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN,
51 evas_object_show(obj);
55 test_focus(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
60 win = elm_win_add(NULL, "focus", ELM_WIN_BASIC);
61 elm_win_title_set(win, "Focus");
62 elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
63 evas_object_resize(win, 800, 600);
64 elm_object_event_callback_add(win, _event, NULL);
65 elm_win_autodel_set(win, EINA_TRUE);
71 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
73 elm_win_resize_object_add(win, bg);
77 Evas_Object *mainbx = elm_box_add(win);
78 elm_box_horizontal_set(mainbx, EINA_TRUE);
79 elm_win_resize_object_add(win, mainbx);
80 evas_object_size_hint_weight_set(mainbx, EVAS_HINT_EXPAND,
85 Evas_Object *bx = elm_box_add(win);
86 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
88 elm_box_pack_end(mainbx, bx);
92 Evas_Object *lb = elm_label_add(win);
93 elm_label_label_set(lb,
94 "<b>Use Tab and Shift+Tab</b>"
96 evas_object_size_hint_weight_set(lb, 0.0, 0.0);
97 evas_object_size_hint_align_set(lb, EVAS_HINT_FILL,
99 elm_box_pack_end(bx, lb);
104 Evas_Object *tg = elm_toggle_add(win);
105 elm_toggle_states_labels_set(tg, "Yes", "No");
106 elm_box_pack_end(bx, tg);
111 Evas_Object *en = elm_scrolled_entry_add(win);
112 evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
113 evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
114 elm_scrolled_entry_entry_set(en, "This is a single line");
115 elm_scrolled_entry_single_line_set(en, 1);
116 elm_box_pack_end(bx, en);
121 Evas_Object *bx2 = elm_box_add(win);
122 elm_box_horizontal_set(bx2, EINA_TRUE);
123 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
125 evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
126 elm_box_pack_end(bx, bx2);
131 bt = elm_button_add(win);
132 elm_button_label_set(bt, "Box");
133 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
135 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
137 elm_object_disabled_set(bt, EINA_TRUE);
138 elm_box_pack_end(bx2, bt);
143 Evas_Object *sc = elm_scroller_add(win);
144 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND,
146 evas_object_size_hint_align_set(sc, EVAS_HINT_FILL,
148 elm_scroller_bounce_set(sc, 1, 1);
149 elm_scroller_content_min_limit(sc, 1, 1);
150 elm_box_pack_end(bx2, sc);
155 bt = elm_button_add(win);
156 elm_button_label_set(bt, "Scroller");
157 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
159 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
160 elm_object_event_callback_add(bt, _event, NULL);
161 elm_scroller_content_set(sc, bt);
163 elm_object_event_callback_del(bt, _event, NULL);
172 bt = elm_button_add(win);
173 elm_button_label_set(bt, "Box");
174 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
176 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
177 elm_box_pack_end(bx, bt);
182 Evas_Object *bx2 = elm_box_add(win);
183 elm_box_horizontal_set(bx2, EINA_TRUE);
184 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
186 evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
187 elm_box_pack_end(bx, bx2);
192 Evas_Object *bx3 = elm_box_add(win);
193 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL,
195 evas_object_size_hint_weight_set(bx3, 0.0, 0.0);
196 elm_box_pack_end(bx2, bx3);
202 bt = elm_button_add(win);
203 elm_button_label_set(bt, "Box");
204 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
206 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
207 elm_box_pack_end(bx3, bt);
213 Evas_Object *sc = elm_scroller_add(win);
214 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND,
216 evas_object_size_hint_align_set(sc, EVAS_HINT_FILL,
218 elm_scroller_bounce_set(sc, 0, 1);
219 elm_scroller_content_min_limit(sc, 1, 0);
220 elm_box_pack_end(bx2, sc);
223 Evas_Object *bx3 = elm_box_add(win);
224 evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL,
226 evas_object_size_hint_weight_set(bx3, 0.0, 0.0);
227 elm_scroller_content_set(sc, bx3);
233 bt = elm_button_add(win);
234 elm_button_label_set(bt, "BX Scroller");
235 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
237 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
238 elm_box_pack_end(bx3, bt);
247 Evas_Object *ly = elm_layout_add(win);
248 snprintf(buf, sizeof(buf), "%s/objects/test.edj", PACKAGE_DATA_DIR);
249 elm_layout_file_set(ly, buf, "twolines");
250 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
252 elm_box_pack_end(mainbx, ly);
256 Evas_Object *bx2 = elm_box_add(win);
257 elm_box_horizontal_set(bx2, EINA_TRUE);
258 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
260 evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
261 elm_layout_content_set(ly, "element1", bx2);
267 bt = elm_button_add(win);
268 elm_button_label_set(bt, "Layout");
269 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
271 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
272 elm_box_pack_end(bx2, bt);
274 elm_object_focus_custom_chain_prepend(bx2, bt, NULL);
279 Evas_Object *bx2 = elm_box_add(win);
280 evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
282 evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
283 elm_layout_content_set(ly, "element2", bx2);
288 bt = elm_button_add(win);
289 elm_button_label_set(bt, "Disable");
290 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
292 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
293 elm_box_pack_end(bx2, bt);
294 evas_object_smart_callback_add(bt, "clicked", _disable, bt);
296 elm_object_focus_custom_chain_prepend(bx2, bt, NULL);
299 bt2 = elm_button_add(win);
300 elm_button_label_set(bt2, "Enable");
301 evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL,
303 evas_object_size_hint_weight_set(bt2, 0.0, 0.0);
304 elm_box_pack_end(bx2, bt2);
305 evas_object_smart_callback_add(bt2, "clicked", _enable, bt);
307 elm_object_focus_custom_chain_append(bx2, bt2, NULL);
314 Evas_Object *bx = elm_box_add(win);
315 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
317 elm_box_pack_end(mainbx, bx);
321 Evas_Object *fr = elm_frame_add(win);
322 elm_frame_label_set(fr, "Frame");
323 elm_box_pack_end(bx, fr);
324 evas_object_show(fr);
327 Evas_Object *tb = elm_table_add(win);
328 evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
329 elm_frame_content_set(fr, tb);
331 for (j = 0; j < 1; j++)
332 for (i = 0; i < 2; i++)
335 bt = elm_button_add(win);
336 elm_button_label_set(bt, "Table");
337 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
339 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
340 elm_table_pack(tb, bt, i, j, 1, 1);
347 Evas_Object *fr = elm_bubble_add(win);
348 elm_bubble_label_set(fr, "Bubble");
349 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
350 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL,
352 elm_box_pack_end(bx, fr);
353 evas_object_show(fr);
356 Evas_Object *tb = elm_table_add(win);
357 evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
358 elm_bubble_content_set(fr, tb);
360 for (j = 0; j < 2; j++)
361 for (i = 0; i < 1; i++)
364 bt = elm_button_add(win);
365 elm_button_label_set(bt, "Table");
366 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
368 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
369 elm_table_pack(tb, bt, i, j, 1, 1);