Merge "[Password]: New design based changes, a new style removed password mode contro...
[framework/uifw/elementary.git] / src / bin / test_focus3.c
1 /* Test for Focus Chain Linear*/
2 #include <Elementary.h>
3 #ifdef HAVE_CONFIG_H
4 # include "elementary_config.h"
5 #endif
6 #ifndef ELM_LIB_QUICKLAUNCH
7
8 static Evas_Object *foc = NULL;
9
10 static void
11 _foc(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
12 {
13    foc = obj;
14    printf("foc -> %p\n", foc);
15 }
16
17 static void
18 _unfoc(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
19 {
20    foc = NULL;
21    printf("foc -> %p\n", foc);
22 }
23
24 static void
25 _add(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
26 {
27    Evas_Object *bx = data, *en;
28
29    en = elm_scrolled_entry_add(elm_object_top_widget_get(bx));
30    elm_scrolled_entry_entry_set(en, "An entry");
31    evas_object_smart_callback_add(en, "focused", _foc, NULL);
32    evas_object_smart_callback_add(en, "unfocused", _unfoc, NULL);
33    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
34    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
35    elm_scrolled_entry_single_line_set(en, 1);
36    elm_box_pack_start(bx, en);
37    evas_object_show(en);
38 }
39
40 static void
41 _del(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
42 {
43    if (foc) evas_object_del(foc);
44 }
45
46 static void
47 _hide(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
48 {
49    if (foc) evas_object_hide(foc);
50 }
51
52 void
53 test_focus3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
54 {
55    Evas_Object *win, *bg, *bx, *bt, *en;
56
57    win = elm_win_add(NULL, "focus3", ELM_WIN_BASIC);
58    elm_win_title_set(win, "Focus 3");
59    elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
60    evas_object_resize(win, 320, 480);
61    elm_win_autodel_set(win, EINA_TRUE);
62
63    bg = elm_bg_add(win);
64    elm_win_resize_object_add(win, bg);
65    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66    evas_object_show(bg);
67    
68    bx = elm_box_add(win);
69    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
70    elm_win_resize_object_add(win, bx);
71    evas_object_show(bx);
72    
73    en = elm_scrolled_entry_add(win);
74    elm_scrolled_entry_entry_set(en, "An entry");
75    evas_object_smart_callback_add(en, "focused", _foc, NULL);
76    evas_object_smart_callback_add(en, "unfocused", _unfoc, NULL);
77    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
78    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
79    elm_scrolled_entry_single_line_set(en, 1);
80    elm_box_pack_end(bx, en);
81    evas_object_show(en);
82
83    bt = elm_button_add(win);
84    elm_object_focus_allow_set(bt, 0);
85    elm_button_label_set(bt, "Add");
86    evas_object_smart_callback_add(bt, "clicked", _add, bx);
87    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
88    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
89    elm_box_pack_end(bx, bt);
90    evas_object_show(bt);
91    
92    bt = elm_button_add(win);
93    elm_object_focus_allow_set(bt, 0);
94    elm_button_label_set(bt, "Del");
95    evas_object_smart_callback_add(bt, "clicked", _del, NULL);
96    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
97    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
98    elm_box_pack_end(bx, bt);
99    evas_object_show(bt);
100    
101    bt = elm_button_add(win);
102    elm_object_focus_allow_set(bt, 0);
103    elm_button_label_set(bt, "Hide");
104    evas_object_smart_callback_add(bt, "clicked", _hide, NULL);
105    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
106    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
107    elm_box_pack_end(bx, bt);
108    evas_object_show(bt);
109    
110    evas_object_show(win);
111 }
112 #endif