clean up toggle turds :)
[framework/uifw/elementary.git] / src / bin / test_check.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 static Eina_Bool eb;
8
9 static void
10 changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
11 {
12    Evas_Object *ck2 = data;
13    printf("ck %p to %i\n", obj, elm_check_state_get(obj));
14    elm_check_state_set(ck2, elm_check_state_get(obj));
15    printf("ck2 %p is now %i\n", ck2, elm_check_state_get(ck2));
16 }
17
18 static void
19 state_changed_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
20 {
21    printf("State Pointer Value: %d\n", eb);
22 }
23
24 void
25 test_check(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
26 {
27    Evas_Object *win, *bg, *bx, *ic, *ck, *ck0;
28    char buf[PATH_MAX];
29
30    win = elm_win_add(NULL, "checks", ELM_WIN_BASIC);
31    elm_win_title_set(win, "Checks");
32    elm_win_autodel_set(win, EINA_TRUE);
33
34    bg = elm_bg_add(win);
35    elm_win_resize_object_add(win, bg);
36    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
37    evas_object_show(bg);
38
39    bx = elm_box_add(win);
40    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
41    elm_win_resize_object_add(win, bx);
42    evas_object_show(bx);
43
44    ic = elm_icon_add(win);
45    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
46    elm_icon_file_set(ic, buf, NULL);
47    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
48    ck = elm_check_add(win);
49    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
50    evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
51    elm_object_text_set(ck, "Icon sized to check");
52    elm_object_part_content_set(ck, "icon", ic);
53    elm_check_state_set(ck, 1);
54    elm_box_pack_end(bx, ck);
55    evas_object_show(ck);
56    evas_object_show(ic);
57
58    ck0 = ck;
59
60    ic = elm_icon_add(win);
61    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
62    elm_icon_file_set(ic, buf, NULL);
63    elm_icon_resizable_set(ic, 0, 0);
64    ck = elm_check_add(win);
65    elm_object_text_set(ck, "Icon no scale");
66    elm_object_part_content_set(ck, "icon", ic);
67    elm_box_pack_end(bx, ck);
68    evas_object_show(ck);
69    evas_object_show(ic);
70
71    evas_object_smart_callback_add(ck, "changed", changed_cb, ck0);
72
73    ck = elm_check_add(win);
74    elm_object_text_set(ck, "Label Only");
75    elm_box_pack_end(bx, ck);
76    evas_object_show(ck);
77
78    ck = elm_check_add(win);
79    elm_object_text_set(ck, "Using State Pointer");
80    elm_check_state_pointer_set(ck, &eb);
81    elm_box_pack_end(bx, ck);
82    evas_object_show(ck);
83
84    ck = elm_check_add(win);
85    elm_object_text_set(ck, "Check State Pointer Value");
86    elm_box_pack_end(bx, ck);
87    evas_object_show(ck);
88    evas_object_smart_callback_add(ck, "changed", state_changed_cb, NULL);
89
90    ic = elm_icon_add(win);
91    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
92    elm_icon_file_set(ic, buf, NULL);
93    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
94    ck = elm_check_add(win);
95    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
96    evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
97    elm_object_text_set(ck, "Disabled check");
98    elm_object_part_content_set(ck, "icon", ic);
99    elm_check_state_set(ck, 1);
100    elm_box_pack_end(bx, ck);
101    elm_object_disabled_set(ck, 1);
102    evas_object_show(ck);
103    evas_object_show(ic);
104
105    ic = elm_icon_add(win);
106    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
107    elm_icon_file_set(ic, buf, NULL);
108    elm_icon_resizable_set(ic, 0, 0);
109    ck = elm_check_add(win);
110    elm_object_part_content_set(ck, "icon", ic);
111    elm_box_pack_end(bx, ck);
112    evas_object_show(ck);
113    evas_object_show(ic);
114
115    evas_object_show(win);
116 }
117
118 void
119 test_check2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
120 {
121    Evas_Object *win, *bg, *bx, *ic, *tg;
122    char buf[PATH_MAX];
123
124    win = elm_win_add(NULL, "check2", ELM_WIN_BASIC);
125    elm_win_title_set(win, "Checks 2");
126    elm_win_autodel_set(win, EINA_TRUE);
127
128    bg = elm_bg_add(win);
129    elm_win_resize_object_add(win, bg);
130    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
131    evas_object_show(bg);
132
133    bx = elm_box_add(win);
134    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
135    elm_win_resize_object_add(win, bx);
136    evas_object_show(bx);
137
138    ic = elm_icon_add(win);
139    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
140    elm_icon_file_set(ic, buf, NULL);
141    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
142
143    tg = elm_check_add(win);
144    elm_object_style_set(tg, "toggle");
145    evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
146    evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, 0.5);
147    elm_object_text_set(tg, "Icon sized to toggle");
148    elm_object_part_content_set(tg, "icon", ic);
149    elm_check_state_set(tg, EINA_TRUE);
150    elm_object_part_text_set(tg, "on", "Yes");
151    elm_object_part_text_set(tg, "off", "No");
152    elm_box_pack_end(bx, tg);
153    evas_object_show(tg);
154    evas_object_show(ic);
155
156    ic = elm_icon_add(win);
157    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
158    elm_icon_file_set(ic, buf, NULL);
159    elm_icon_resizable_set(ic, 0, 0);
160
161    tg = elm_check_add(win);
162    elm_object_style_set(tg, "toggle");
163    elm_object_text_set(tg, "Icon no scale");
164    elm_object_part_content_set(tg, "icon", ic);
165    elm_box_pack_end(bx, tg);
166    evas_object_show(tg);
167    evas_object_show(ic);
168
169    ic = elm_icon_add(win);
170    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
171    elm_icon_file_set(ic, buf, NULL);
172    elm_icon_resizable_set(ic, 0, 0);
173
174    tg = elm_check_add(win);
175    elm_object_style_set(tg, "toggle");
176    elm_object_text_set(tg, "Icon no scale");
177    elm_object_part_content_set(tg, "icon", ic);
178    elm_object_disabled_set(tg, EINA_TRUE);
179    elm_box_pack_end(bx, tg);
180    evas_object_show(tg);
181    evas_object_show(ic);
182
183    tg = elm_check_add(win);
184    elm_object_style_set(tg, "toggle");
185    elm_object_text_set(tg, "Label Only");
186    elm_object_part_text_set(tg, "on", "Big long fun times label");
187    elm_object_part_text_set(tg, "off", "Small long happy fun label");
188    elm_box_pack_end(bx, tg);
189    evas_object_show(tg);
190
191    ic = elm_icon_add(win);
192    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
193    elm_icon_file_set(ic, buf, NULL);
194    elm_icon_resizable_set(ic, 0, 0);
195
196    tg = elm_check_add(win);
197    elm_object_style_set(tg, "toggle");
198    elm_object_part_content_set(tg, "icon", ic);
199    elm_box_pack_end(bx, tg);
200    evas_object_show(tg);
201    evas_object_show(ic);
202
203    evas_object_show(win);
204 }
205 #endif