aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/elementary/src/bin/test_win_state.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/elementary/src/bin/test_win_state.c369
1 files changed, 369 insertions, 0 deletions
diff --git a/libraries/elementary/src/bin/test_win_state.c b/libraries/elementary/src/bin/test_win_state.c
new file mode 100644
index 0000000..e0fb8cc
--- /dev/null
+++ b/libraries/elementary/src/bin/test_win_state.c
@@ -0,0 +1,369 @@
1#ifdef HAVE_CONFIG_H
2# include "elementary_config.h"
3#endif
4#include <Elementary.h>
5#ifndef ELM_LIB_QUICKLAUNCH
6typedef struct _Testitem
7{
8 Elm_Object_Item *item;
9 int mode, onoff;
10} Testitem;
11
12static int rotate_with_resize = 0;
13
14static void
15my_bt_38_alpha_on(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
16{
17 Evas_Object *win = data;
18 Evas_Object *bg = evas_object_data_get(win, "bg");
19 evas_object_hide(bg);
20 elm_win_alpha_set(win, EINA_TRUE);
21}
22
23static void
24my_bt_38_alpha_off(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
25{
26 Evas_Object *win = data;
27 Evas_Object *bg = evas_object_data_get(win, "bg");
28 evas_object_show(bg);
29 elm_win_alpha_set(win, EINA_FALSE);
30}
31
32static void
33my_ck_38_resize(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
34{
35// Evas_Object *win = data;
36 rotate_with_resize = elm_check_state_get(obj);
37}
38
39static void
40my_bt_38_rot_0(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
41{
42 Evas_Object *win = data;
43 if (rotate_with_resize)
44 elm_win_rotation_with_resize_set(win, 0);
45 else
46 elm_win_rotation_set(win, 0);
47}
48
49static void
50my_bt_38_rot_90(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
51{
52 Evas_Object *win = data;
53 if (rotate_with_resize)
54 elm_win_rotation_with_resize_set(win, 90);
55 else
56 elm_win_rotation_set(win, 90);
57}
58
59static void
60my_bt_38_rot_180(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
61{
62 Evas_Object *win = data;
63 if (rotate_with_resize)
64 elm_win_rotation_with_resize_set(win, 180);
65 else
66 elm_win_rotation_set(win, 180);
67}
68
69static void
70my_bt_38_rot_270(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
71{
72 Evas_Object *win = data;
73 if (rotate_with_resize)
74 elm_win_rotation_with_resize_set(win, 270);
75 else
76 elm_win_rotation_set(win, 270);
77}
78
79static void
80my_win_move(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
81{
82 Evas_Coord x, y;
83 elm_win_screen_position_get(obj, &x, &y);
84 printf("MOVE - win geom: %4i %4i\n", x, y);
85}
86
87static void
88_win_resize(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
89{
90 Evas_Coord w, h;
91 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
92 printf("RESIZE - win geom: %4ix%4i\n", w, h);
93}
94
95static void
96_win_foc_in(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
97{
98 printf("FOC IN\n");
99}
100
101static void
102_win_foc_out(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
103{
104 printf("FOC OUT\n");
105}
106
107static void
108_close_win(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
109{
110 evas_object_del(data);
111}
112
113void
114test_win_state(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
115{
116 Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
117
118 win = elm_win_add(NULL, "window-states", ELM_WIN_BASIC);
119 elm_win_title_set(win, "Window States");
120 evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
121 evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
122 evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_IN, _win_foc_in, NULL);
123 evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_OUT, _win_foc_out, NULL);
124 elm_win_autodel_set(win, EINA_TRUE);
125
126 bg = elm_bg_add(win);
127 elm_win_resize_object_add(win, bg);
128 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
129 evas_object_show(bg);
130 evas_object_data_set(win, "bg", bg);
131
132 bx = elm_box_add(win);
133 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
134 elm_win_resize_object_add(win, bx);
135 evas_object_show(bx);
136
137 bx2 = elm_box_add(win);
138 elm_box_horizontal_set(bx2, EINA_TRUE);
139 elm_box_homogeneous_set(bx2, EINA_TRUE);
140 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
141 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
142
143 bt = elm_button_add(win);
144 elm_object_text_set(bt, "Alpha On");
145 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
146 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
147 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
148 elm_box_pack_end(bx2, bt);
149 evas_object_show(bt);
150
151 bt = elm_button_add(win);
152 elm_object_text_set(bt, "Alpha Off");
153 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
154 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
155 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
156 elm_box_pack_end(bx2, bt);
157 evas_object_show(bt);
158
159 elm_box_pack_end(bx, bx2);
160 evas_object_show(bx2);
161
162 bx2 = elm_box_add(win);
163 elm_box_horizontal_set(bx2, EINA_TRUE);
164 elm_box_homogeneous_set(bx2, EINA_TRUE);
165 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
166 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
167
168 sl = elm_slider_add(win);
169 elm_object_text_set(sl, "Test");
170 elm_slider_span_size_set(sl, 100);
171 evas_object_size_hint_align_set(sl, 0.5, 0.5);
172 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
173 elm_slider_indicator_format_set(sl, "%3.0f");
174 elm_slider_min_max_set(sl, 50, 150);
175 elm_slider_value_set(sl, 50);
176 elm_slider_inverted_set(sl, EINA_TRUE);
177 elm_box_pack_end(bx2, sl);
178 evas_object_show(sl);
179
180 elm_box_pack_end(bx, bx2);
181 evas_object_show(bx2);
182
183 ck = elm_check_add(win);
184 elm_object_text_set(ck, "resize");
185 elm_check_state_set(ck, rotate_with_resize);
186 evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
187 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
188 evas_object_size_hint_align_set(ck, 0.02, 0.99);
189 evas_object_show(ck);
190 elm_box_pack_end(bx, ck);
191
192 bx2 = elm_box_add(win);
193 elm_box_horizontal_set(bx2, EINA_TRUE);
194 elm_box_homogeneous_set(bx2, EINA_TRUE);
195 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
196 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
197
198 bt = elm_button_add(win);
199 elm_object_text_set(bt, "Rot 0");
200 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
201 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
202 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
203 elm_box_pack_end(bx2, bt);
204 evas_object_show(bt);
205
206 bt = elm_button_add(win);
207 elm_object_text_set(bt, "Rot 90");
208 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
209 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
210 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
211 elm_box_pack_end(bx2, bt);
212 evas_object_show(bt);
213
214 bt = elm_button_add(win);
215 elm_object_text_set(bt, "Rot 180");
216 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
217 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
218 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
219 elm_box_pack_end(bx2, bt);
220 evas_object_show(bt);
221
222 bt = elm_button_add(win);
223 elm_object_text_set(bt, "Rot 270");
224 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
225 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
226 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
227 elm_box_pack_end(bx2, bt);
228 evas_object_show(bt);
229
230 elm_box_pack_end(bx, bx2);
231 evas_object_show(bx2);
232
233 evas_object_resize(win, 280, 400);
234 evas_object_show(win);
235}
236
237void
238test_win_state2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
239{
240 Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
241 char buf[PATH_MAX];
242
243 win = elm_win_add(NULL, "window-states2", ELM_WIN_BASIC);
244 elm_win_override_set(win, EINA_TRUE);
245 evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
246 evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
247 elm_win_title_set(win, "Window States 2");
248 elm_win_autodel_set(win, EINA_TRUE);
249
250 bg = elm_bg_add(win);
251 snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
252 elm_bg_file_set(bg, buf, NULL);
253 elm_win_resize_object_add(win, bg);
254 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
255 evas_object_show(bg);
256 evas_object_data_set(win, "bg", bg);
257
258 bx = elm_box_add(win);
259 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
260 elm_win_resize_object_add(win, bx);
261 evas_object_show(bx);
262
263 bx2 = elm_box_add(win);
264 elm_box_horizontal_set(bx2, EINA_TRUE);
265 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
266 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
267
268 bt = elm_button_add(win);
269 elm_object_text_set(bt, "Alpha On");
270 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
271 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
272 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
273 elm_box_pack_end(bx2, bt);
274 evas_object_show(bt);
275
276 bt = elm_button_add(win);
277 elm_object_text_set(bt, "Alpha Off");
278 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
279 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
280 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
281 elm_box_pack_end(bx2, bt);
282 evas_object_show(bt);
283
284 bt = elm_button_add(win);
285 elm_object_text_set(bt, "Close");
286 evas_object_smart_callback_add(bt, "clicked", _close_win, win);
287 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
288 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
289 elm_box_pack_end(bx2, bt);
290 evas_object_show(bt);
291
292 elm_box_pack_end(bx, bx2);
293 evas_object_show(bx2);
294
295 bx2 = elm_box_add(win);
296 elm_box_horizontal_set(bx2, EINA_TRUE);
297 elm_box_homogeneous_set(bx2, EINA_TRUE);
298 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
299 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
300
301 sl = elm_slider_add(win);
302 elm_object_text_set(sl, "Override Redirect");
303 elm_slider_span_size_set(sl, 100);
304 evas_object_size_hint_align_set(sl, 0.5, 0.5);
305 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
306 elm_slider_indicator_format_set(sl, "%3.0f");
307 elm_slider_min_max_set(sl, 50, 150);
308 elm_slider_value_set(sl, 50);
309 elm_slider_inverted_set(sl, EINA_TRUE);
310 elm_box_pack_end(bx2, sl);
311 evas_object_show(sl);
312
313 elm_box_pack_end(bx, bx2);
314 evas_object_show(bx2);
315
316 ck = elm_check_add(win);
317 elm_object_text_set(ck, "resize");
318 elm_check_state_set(ck, rotate_with_resize);
319 evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
320 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
321 evas_object_size_hint_align_set(ck, 0.02, 0.99);
322 evas_object_show(ck);
323 elm_box_pack_end(bx, ck);
324
325 bx2 = elm_box_add(win);
326 elm_box_horizontal_set(bx2, EINA_TRUE);
327 elm_box_homogeneous_set(bx2, EINA_TRUE);
328 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
329 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
330
331 bt = elm_button_add(win);
332 elm_object_text_set(bt, "Rot 0");
333 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
334 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
335 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
336 elm_box_pack_end(bx2, bt);
337 evas_object_show(bt);
338
339 bt = elm_button_add(win);
340 elm_object_text_set(bt, "Rot 90");
341 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
342 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
343 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
344 elm_box_pack_end(bx2, bt);
345 evas_object_show(bt);
346
347 bt = elm_button_add(win);
348 elm_object_text_set(bt, "Rot 180");
349 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
350 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
351 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
352 elm_box_pack_end(bx2, bt);
353 evas_object_show(bt);
354
355 bt = elm_button_add(win);
356 elm_object_text_set(bt, "Rot 270");
357 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
358 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
359 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
360 elm_box_pack_end(bx2, bt);
361 evas_object_show(bt);
362
363 elm_box_pack_end(bx, bx2);
364 evas_object_show(bx2);
365
366 evas_object_resize(win, 320, 480);
367 evas_object_show(win);
368}
369#endif