1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5
6 static Eina_Bool eb;
7
8 static void
changed_cb(void * data,Evas_Object * obj,void * event_info EINA_UNUSED)9 changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
10 {
11 Evas_Object *ck2 = data;
12 printf("ck %p to %i\n", obj, elm_check_state_get(obj));
13 elm_check_state_set(ck2, elm_check_state_get(obj));
14 printf("ck2 %p is now %i\n", ck2, elm_check_state_get(ck2));
15 }
16
17 static void
state_changed_cb(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)18 state_changed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
19 {
20 printf("State Pointer Value: %d\n", eb);
21 }
22
23 static void
state_changed_cb2(void * data EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)24 state_changed_cb2(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
25 {
26 if (elm_check_state_get(obj) == EINA_FALSE)
27 elm_object_text_set(obj, NULL);
28 else
29 elm_object_text_set(obj, "text is visible when check state is true.");
30 }
31
32 static void
check_style(Evas_Object * win,Evas_Object * bx,const char * style)33 check_style(Evas_Object *win, Evas_Object *bx, const char *style)
34 {
35 Evas_Object *ic, *ck, *ck0;
36 char buf[PATH_MAX];
37
38 ic = elm_icon_add(win);
39 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
40 elm_image_file_set(ic, buf, NULL);
41 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
42 ck = elm_check_add(win);
43 elm_object_style_set(ck, style);
44 elm_object_text_set(ck, "Icon sized to check");
45 elm_object_part_content_set(ck, "icon", ic);
46 elm_check_state_set(ck, EINA_TRUE);
47 elm_box_pack_end(bx, ck);
48 evas_object_show(ck);
49 evas_object_show(ic);
50
51 ck0 = ck;
52
53 ic = elm_icon_add(win);
54 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
55 elm_image_file_set(ic, buf, NULL);
56 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
57 ck = elm_check_add(win);
58 elm_object_style_set(ck, style);
59 elm_object_text_set(ck, "Icon not resizable");
60 elm_object_part_content_set(ck, "icon", ic);
61 elm_box_pack_end(bx, ck);
62 evas_object_show(ck);
63 evas_object_show(ic);
64
65 evas_object_smart_callback_add(ck, "changed", changed_cb, ck0);
66
67 ck = elm_check_add(win);
68 elm_object_style_set(ck, style);
69 elm_object_text_set(ck, "Label Only");
70 elm_box_pack_end(bx, ck);
71 evas_object_show(ck);
72
73 ck = elm_check_add(win);
74 elm_object_style_set(ck, style);
75 elm_object_text_set(ck, "Use State Pointer");
76 elm_check_state_pointer_set(ck, &eb);
77 elm_box_pack_end(bx, ck);
78 evas_object_show(ck);
79
80 ck = elm_check_add(win);
81 elm_object_style_set(ck, style);
82 elm_object_text_set(ck, "Print State Pointer Value");
83 elm_box_pack_end(bx, ck);
84 evas_object_show(ck);
85 evas_object_smart_callback_add(ck, "changed", state_changed_cb, NULL);
86
87 ic = elm_icon_add(win);
88 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
89 elm_image_file_set(ic, buf, NULL);
90 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
91 ck = elm_check_add(win);
92 elm_object_style_set(ck, style);
93 elm_object_text_set(ck, "Disabled check");
94 elm_object_part_content_set(ck, "icon", ic);
95 elm_check_state_set(ck, EINA_TRUE);
96 elm_box_pack_end(bx, ck);
97 elm_object_disabled_set(ck, EINA_TRUE);
98 evas_object_show(ck);
99 evas_object_show(ic);
100
101 ck = elm_check_add(win);
102 elm_object_style_set(ck, style);
103 elm_box_pack_end(bx, ck);
104 elm_object_disabled_set(ck, EINA_TRUE);
105 evas_object_show(ck);
106
107 ic = elm_icon_add(win);
108 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
109 elm_image_file_set(ic, buf, NULL);
110 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
111 ck = elm_check_add(win);
112 elm_object_style_set(ck, style);
113 elm_object_part_content_set(ck, "icon", ic);
114 elm_box_pack_end(bx, ck);
115 evas_object_show(ck);
116 evas_object_show(ic);
117
118 ck = elm_check_add(win);
119 elm_object_style_set(ck, style);
120 elm_box_pack_end(bx, ck);
121 evas_object_show(ck);
122
123 ck = elm_check_add(win);
124 elm_object_style_set(ck, style);
125 elm_box_pack_end(bx, ck);
126 elm_object_text_set(ck, "text is visible when check state is true.");
127 elm_check_state_set(ck, EINA_TRUE);
128 evas_object_show(ck);
129 evas_object_smart_callback_add(ck, "changed", state_changed_cb2, NULL);
130 }
131
132 void
test_check(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)133 test_check(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
134 {
135 Evas_Object *win, *bx, *bx0;
136
137 win = elm_win_util_standard_add("check", "Check");
138 elm_win_autodel_set(win, EINA_TRUE);
139
140 bx0 = elm_box_add(win);
141 evas_object_size_hint_weight_set(bx0, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
142 elm_box_horizontal_set(bx0, EINA_TRUE);
143 elm_win_resize_object_add(win, bx0);
144 evas_object_show(bx0);
145
146 bx = elm_box_add(win);
147 elm_box_horizontal_set(bx, EINA_FALSE);
148 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
149 elm_box_pack_end(bx0, bx);
150 evas_object_show(bx);
151
152 check_style(win, bx, "default");
153
154 bx = elm_box_add(win);
155 elm_box_horizontal_set(bx, EINA_FALSE);
156 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
157 elm_box_pack_end(bx0, bx);
158 evas_object_show(bx);
159
160 check_style(win, bx, "plain");
161
162 bx = elm_box_add(win);
163 elm_box_horizontal_set(bx, EINA_FALSE);
164 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
165 elm_box_pack_end(bx0, bx);
166 evas_object_show(bx);
167
168 check_style(win, bx, "icon");
169
170 evas_object_show(win);
171 }
172
173 void
test_check_toggle(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)174 test_check_toggle(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
175 {
176 Evas_Object *win, *bx, *ic, *tg;
177 char buf[PATH_MAX];
178
179 win = elm_win_util_standard_add("check-toggle", "Check Toggle");
180 elm_win_autodel_set(win, EINA_TRUE);
181
182 bx = elm_box_add(win);
183 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
184 elm_win_resize_object_add(win, bx);
185 evas_object_show(bx);
186
187 ic = elm_icon_add(win);
188 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
189 elm_image_file_set(ic, buf, NULL);
190 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
191
192 tg = elm_check_add(win);
193 elm_object_style_set(tg, "toggle");
194 elm_object_text_set(tg, "Icon sized to toggle");
195 elm_object_part_content_set(tg, "icon", ic);
196 elm_check_state_set(tg, EINA_TRUE);
197 elm_object_part_text_set(tg, "on", "Yes");
198 elm_object_part_text_set(tg, "off", "No");
199 elm_box_pack_end(bx, tg);
200 evas_object_show(tg);
201 evas_object_show(ic);
202
203 ic = elm_icon_add(win);
204 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
205 elm_image_file_set(ic, buf, NULL);
206 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
207
208 tg = elm_check_add(win);
209 elm_object_style_set(tg, "toggle");
210 elm_object_text_set(tg, "Icon no scale");
211 elm_object_part_content_set(tg, "icon", ic);
212 elm_box_pack_end(bx, tg);
213 evas_object_show(tg);
214 evas_object_show(ic);
215
216 ic = elm_icon_add(win);
217 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
218 elm_image_file_set(ic, buf, NULL);
219 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
220
221 tg = elm_check_add(win);
222 elm_object_style_set(tg, "toggle");
223 elm_object_text_set(tg, "Disabled toggle");
224 elm_object_part_content_set(tg, "icon", ic);
225 elm_object_disabled_set(tg, EINA_TRUE);
226 elm_box_pack_end(bx, tg);
227 evas_object_show(tg);
228 evas_object_show(ic);
229
230 tg = elm_check_add(win);
231 elm_object_style_set(tg, "toggle");
232 elm_object_text_set(tg, "Label Only");
233 elm_object_part_text_set(tg, "on", "Big long fun times label");
234 elm_object_part_text_set(tg, "off", "Small long happy fun label");
235 elm_box_pack_end(bx, tg);
236 evas_object_show(tg);
237
238 ic = elm_icon_add(win);
239 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
240 elm_image_file_set(ic, buf, NULL);
241 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
242
243 tg = elm_check_add(win);
244 elm_object_style_set(tg, "toggle");
245 elm_object_part_content_set(tg, "icon", ic);
246 elm_box_pack_end(bx, tg);
247 evas_object_show(tg);
248 evas_object_show(ic);
249
250 evas_object_show(win);
251 }
252