1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5
6 typedef struct _Testitem
7 {
8 Elm_Object_Item *item;
9 int mode, onoff;
10 } Testitem;
11
12 static int rotate_with_resize = 0;
13 static Eina_Bool fullscreen = EINA_FALSE;
14 static Eina_Bool floating = EINA_FALSE;
15
16 static void
my_bt_38_alpha_on(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)17 my_bt_38_alpha_on(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
18 {
19 Evas_Object *win = data;
20 Evas_Object *bg = evas_object_data_get(win, "bg");
21 evas_object_hide(bg);
22 elm_win_alpha_set(win, EINA_TRUE);
23 }
24
25 static void
my_bt_38_alpha_off(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)26 my_bt_38_alpha_off(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
27 {
28 Evas_Object *win = data;
29 Evas_Object *bg = evas_object_data_get(win, "bg");
30 evas_object_show(bg);
31 elm_win_alpha_set(win, EINA_FALSE);
32 }
33
34 static Eina_Bool
_activate_timer_cb(void * data)35 _activate_timer_cb(void *data)
36 {
37 printf("Activate window\n");
38 elm_win_activate(data);
39 return ECORE_CALLBACK_CANCEL;
40 }
41
42 static Eina_Bool
_deiconify_timer_cb(void * data)43 _deiconify_timer_cb(void *data)
44 {
45 printf("Deiconify window\n");
46 elm_win_iconified_set(data, EINA_FALSE);
47 return ECORE_CALLBACK_CANCEL;
48 }
49
50 static Eina_Bool
_unwith(void * data)51 _unwith(void *data)
52 {
53 printf("show\n");
54 evas_object_show(data);
55 elm_win_activate(data);
56 return EINA_FALSE;
57 }
58
59 static void
my_bt_38_withdraw(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)60 my_bt_38_withdraw(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
61 {
62 Evas_Object *win = data;
63 printf("withdraw, current %i\n", elm_win_withdrawn_get(win));
64 elm_win_withdrawn_set(win, EINA_TRUE);
65 ecore_timer_add(10.0, _unwith, win);
66 }
67
68 static void
my_bt_38_massive(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)69 my_bt_38_massive(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
70 {
71 Evas_Object *win = data;
72 evas_object_resize(win, 4000, 2400);
73 }
74
75 static void
my_ck_38_resize(void * data EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)76 my_ck_38_resize(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
77 {
78 rotate_with_resize = elm_check_state_get(obj);
79 }
80
81 static void
my_bt_38_rot_0(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)82 my_bt_38_rot_0(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
83 {
84 Evas_Object *win = data;
85 if (rotate_with_resize)
86 elm_win_rotation_with_resize_set(win, 0);
87 else
88 elm_win_rotation_set(win, 0);
89 }
90
91 static void
my_bt_38_rot_90(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)92 my_bt_38_rot_90(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
93 {
94 Evas_Object *win = data;
95 if (rotate_with_resize)
96 elm_win_rotation_with_resize_set(win, 90);
97 else
98 elm_win_rotation_set(win, 90);
99 }
100
101 static void
my_bt_38_rot_180(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)102 my_bt_38_rot_180(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
103 {
104 Evas_Object *win = data;
105 if (rotate_with_resize)
106 elm_win_rotation_with_resize_set(win, 180);
107 else
108 elm_win_rotation_set(win, 180);
109 }
110
111 static void
my_bt_38_rot_270(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)112 my_bt_38_rot_270(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
113 {
114 Evas_Object *win = data;
115 if (rotate_with_resize)
116 elm_win_rotation_with_resize_set(win, 270);
117 else
118 elm_win_rotation_set(win, 270);
119 }
120
121 static void
my_ck_38_fullscreen(void * data,Evas_Object * obj,void * event_info EINA_UNUSED)122 my_ck_38_fullscreen(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
123 {
124 Evas_Object *win = data;
125 fullscreen = elm_check_state_get(obj);
126 elm_win_fullscreen_set(win, fullscreen);
127 }
128
129 static void
my_ck_38_borderless(void * data,Evas_Object * obj,void * event_info EINA_UNUSED)130 my_ck_38_borderless(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
131 {
132 Evas_Object *win = data;
133 Eina_Bool borderless = elm_check_state_get(obj);
134 elm_win_borderless_set(win, borderless);
135 }
136
137 static void
my_ck_38_floating(void * data,Evas_Object * obj,void * event_info EINA_UNUSED)138 my_ck_38_floating(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
139 {
140 Evas_Object *win = data;
141 floating = elm_check_state_get(obj);
142 elm_win_floating_mode_set(win, floating);
143 }
144
145 static void
my_win_move(void * data EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)146 my_win_move(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
147 {
148 Evas_Coord x, y;
149 elm_win_screen_position_get(obj, &x, &y);
150 printf("MOVE - win geom: %4i %4i\n", x, y);
151 }
152
153 static void
_win_resize(void * data EINA_UNUSED,Evas * e EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)154 _win_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
155 {
156 Evas_Coord w, h;
157 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
158 printf("RESIZE - win geom: %4ix%4i\n", w, h);
159 }
160
161 static void
_win_foc_in(void * data EINA_UNUSED,Evas * e EINA_UNUSED,void * event_info EINA_UNUSED)162 _win_foc_in(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED)
163 {
164 printf("FOC IN\n");
165 }
166
167 static void
_win_foc_out(void * data EINA_UNUSED,Evas * e EINA_UNUSED,void * event_info EINA_UNUSED)168 _win_foc_out(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED)
169 {
170 printf("FOC OUT\n");
171 }
172
173 static void
_close_win(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)174 _close_win(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
175 {
176 evas_object_del(data);
177 }
178
179 static void
_move_20_20(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)180 _move_20_20(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
181 {
182 evas_object_move(data, 20, 20);
183 }
184
185 static void
_move_0_0(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)186 _move_0_0(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
187 {
188 evas_object_move(data, 0, 0);
189 }
190
191 static void
_bt_win_lower(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)192 _bt_win_lower(void *data, Evas_Object *obj EINA_UNUSED,
193 void *event_info EINA_UNUSED)
194 {
195 printf("Lower window\n");
196 elm_win_lower(data);
197 }
198
199 static void
_bt_win_iconify_and_activate(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)200 _bt_win_iconify_and_activate(void *data, Evas_Object *obj EINA_UNUSED,
201 void *event_info EINA_UNUSED)
202 {
203 printf("Iconify window. (current status: %i)\n", elm_win_iconified_get(data));
204 elm_win_iconified_set(data, EINA_TRUE);
205
206 printf("This window will be activated in 5 seconds.\n");
207 ecore_timer_add(5.0, _activate_timer_cb, data);
208 }
209
210 static void
_bt_win_iconify_and_deiconify(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)211 _bt_win_iconify_and_deiconify(void *data, Evas_Object *obj EINA_UNUSED,
212 void *event_info EINA_UNUSED)
213 {
214 printf("Iconify window. (current status: %i)\n", elm_win_iconified_get(data));
215 elm_win_iconified_set(data, EINA_TRUE);
216
217 printf("This window will be deiconified in 5 seconds.\n");
218 ecore_timer_add(5.0, _deiconify_timer_cb, data);
219 }
220
221 static void
_bt_win_center_cb(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)222 _bt_win_center_cb(void *data, Evas_Object *obj EINA_UNUSED,
223 void *event_info EINA_UNUSED)
224 {
225 printf("Center window.\n");
226 elm_win_center(data, EINA_TRUE, EINA_TRUE);
227 }
228
229 static void
_bt_win_maximize(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)230 _bt_win_maximize(void *data, Evas_Object *obj EINA_UNUSED,
231 void *event_info EINA_UNUSED)
232 {
233 printf("Maximize\n");
234 elm_win_maximized_set(data, EINA_TRUE);
235 }
236
237 static void
_bt_win_unmaximize(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)238 _bt_win_unmaximize(void *data, Evas_Object *obj EINA_UNUSED,
239 void *event_info EINA_UNUSED)
240 {
241 printf("Unmaximize\n");
242 elm_win_maximized_set(data, EINA_FALSE);
243 }
244
245 static void
_win_state_print_cb(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)246 _win_state_print_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
247 {
248 printf("WIN: %s\n", (char *)data);
249 }
250
251 static void
_win_state_focus_cb(void * data,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)252 _win_state_focus_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
253 {
254 printf("WIN FOCUS: %s\n", (char *)data);
255 }
256
257 static void
_win_show(void * data EINA_UNUSED,Evas * e EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)258 _win_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
259 {
260 printf("win: show\n");
261 }
262
263 static void
_win_hide(void * data EINA_UNUSED,Evas * e EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)264 _win_hide(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
265 {
266 printf("win: hide\n");
267 }
268
269 static void
_bt_pressed(void * data,Evas_Object * obj,void * event_info EINA_UNUSED)270 _bt_pressed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
271 {
272 int param = (int)(uintptr_t)(data);
273 Eina_Bool res = EINA_FALSE;
274 Evas_Object *win = efl_key_wref_get(obj, "win");
275
276 printf("pressed event on Button:%d\n", param);
277
278 switch (param)
279 {
280 case 1:
281 printf("Top Left\n");
282 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_TOP | ELM_WIN_MOVE_RESIZE_LEFT);
283 break;
284 case 2:
285 printf("Top\n");
286 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_TOP);
287 break;
288 case 3:
289 printf("Top Right\n");
290 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_TOP | ELM_WIN_MOVE_RESIZE_RIGHT);
291 break;
292 case 4:
293 printf("Left\n");
294 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_LEFT);
295 break;
296 case 5:
297 printf("Move win\n");
298 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_MOVE);
299 break;
300 case 6:
301 printf("Right\n");
302 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_RIGHT);
303 break;
304 case 7:
305 printf("Bottom Left\n");
306 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_BOTTOM | ELM_WIN_MOVE_RESIZE_LEFT);
307 break;
308 case 8:
309 printf("Bottom\n");
310 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_BOTTOM);
311 break;
312 case 9:
313 printf("Bottom Right\n");
314 res = elm_win_move_resize_start(win, ELM_WIN_MOVE_RESIZE_BOTTOM | ELM_WIN_MOVE_RESIZE_RIGHT);
315 break;
316 default:
317 printf("No action\n");
318 break;
319 }
320 printf("result = %d\n", res);
321 fflush(stdout);
322 }
323
324 void
test_win_state(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)325 test_win_state(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
326 {
327 Evas_Object *bg, *sl, *bx, *bx2, *bt, *ck, *tb, *win;
328
329 win = elm_win_add(NULL, "window-states", ELM_WIN_BASIC);
330 elm_win_title_set(win, "Window States");
331 evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
332 evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
333 evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_IN, _win_foc_in, NULL);
334 evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_OUT, _win_foc_out, NULL);
335 evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, _win_show, NULL);
336 evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, _win_hide, NULL);
337 evas_object_smart_callback_add(win, "withdrawn", _win_state_print_cb, "withdrawn");
338 evas_object_smart_callback_add(win, "iconified", _win_state_print_cb, "iconified");
339 evas_object_smart_callback_add(win, "normal", _win_state_print_cb, "normal");
340 evas_object_smart_callback_add(win, "stick", _win_state_print_cb, "stick");
341 evas_object_smart_callback_add(win, "unstick", _win_state_print_cb, "unstick");
342 evas_object_smart_callback_add(win, "fullscreen", _win_state_print_cb, "fullscreen");
343 evas_object_smart_callback_add(win, "unfullscreen", _win_state_print_cb, "unfullscreen");
344 evas_object_smart_callback_add(win, "maximized", _win_state_print_cb, "maximized");
345 evas_object_smart_callback_add(win, "unmaximized", _win_state_print_cb, "unmaximized");
346 evas_object_smart_callback_add(win, "ioerr", _win_state_print_cb, "ioerr");
347 evas_object_smart_callback_add(win, "indicator,prop,changed", _win_state_print_cb, "indicator,prop,changed");
348 evas_object_smart_callback_add(win, "rotation,changed", _win_state_print_cb, "rotation,changed");
349 evas_object_smart_callback_add(win, "profile,changed", _win_state_print_cb, "profile,changed");
350 evas_object_smart_callback_add(win, "focused", _win_state_focus_cb, "focused");
351 evas_object_smart_callback_add(win, "unfocused", _win_state_focus_cb, "unfocused");
352 evas_object_smart_callback_add(win, "focus,out", _win_state_focus_cb, "focus,out");
353 evas_object_smart_callback_add(win, "focus,in", _win_state_focus_cb, "focus,in");
354 evas_object_smart_callback_add(win, "delete,request", _win_state_print_cb, "delete,request");
355 evas_object_smart_callback_add(win, "wm,rotation,changed", _win_state_print_cb, "wm,rotation,changed");
356 elm_win_autodel_set(win, EINA_TRUE);
357
358 bg = elm_bg_add(win);
359 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
360 elm_win_resize_object_add(win, bg);
361 evas_object_show(bg);
362 evas_object_data_set(win, "bg", bg);
363
364 bx = elm_box_add(win);
365 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
366 elm_win_resize_object_add(win, bx);
367 evas_object_show(bx);
368
369 bx2 = elm_box_add(win);
370 elm_box_horizontal_set(bx2, EINA_TRUE);
371 elm_box_homogeneous_set(bx2, EINA_TRUE);
372 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
373 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
374
375 bt = elm_button_add(win);
376 elm_object_text_set(bt, "Alpha On");
377 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
378 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
379 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
380 elm_box_pack_end(bx2, bt);
381 evas_object_show(bt);
382
383 bt = elm_button_add(win);
384 elm_object_text_set(bt, "Alpha Off");
385 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
386 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
387 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
388 elm_box_pack_end(bx2, bt);
389 evas_object_show(bt);
390
391 bt = elm_button_add(win);
392 elm_object_text_set(bt, "Withdraw");
393 evas_object_smart_callback_add(bt, "clicked", my_bt_38_withdraw, win);
394 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
395 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
396 elm_box_pack_end(bx2, bt);
397 evas_object_show(bt);
398
399 bt = elm_button_add(win);
400 elm_object_text_set(bt, "Massive");
401 evas_object_smart_callback_add(bt, "clicked", my_bt_38_massive, win);
402 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
403 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
404 elm_box_pack_end(bx2, bt);
405 evas_object_show(bt);
406
407 bt = elm_button_add(win);
408 elm_object_text_set(bt, "Move 20 20");
409 evas_object_smart_callback_add(bt, "clicked", _move_20_20, win);
410 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
411 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
412 elm_box_pack_end(bx2, bt);
413 evas_object_show(bt);
414
415 elm_box_pack_end(bx, bx2);
416 evas_object_show(bx2);
417
418 bx2 = elm_box_add(win);
419 elm_box_horizontal_set(bx2, EINA_TRUE);
420 elm_box_homogeneous_set(bx2, EINA_TRUE);
421 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
422 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
423
424 bt = elm_button_add(win);
425 elm_object_text_set(bt, "Lower");
426 evas_object_smart_callback_add(bt, "clicked", _bt_win_lower, win);
427 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
428 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
429 elm_box_pack_end(bx2, bt);
430 evas_object_show(bt);
431
432 bt = elm_button_add(win);
433 elm_object_text_set(bt, "Iconify + Act");
434 evas_object_smart_callback_add(bt, "clicked",
435 _bt_win_iconify_and_activate, win);
436 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
437 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
438 elm_box_pack_end(bx2, bt);
439 evas_object_show(bt);
440
441 bt = elm_button_add(bx2);
442 elm_object_text_set(bt, "Iconify + De");
443 evas_object_smart_callback_add(bt, "clicked",
444 _bt_win_iconify_and_deiconify, win);
445 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
446 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
447 elm_box_pack_end(bx2, bt);
448 evas_object_show(bt);
449
450 bt = elm_button_add(bx2);
451 elm_object_text_set(bt, "Maximize");
452 evas_object_smart_callback_add(bt, "clicked",
453 _bt_win_maximize, win);
454 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
455 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
456 elm_box_pack_end(bx2, bt);
457 evas_object_show(bt);
458
459 bt = elm_button_add(bx2);
460 elm_object_text_set(bt, "Unmaximize");
461 evas_object_smart_callback_add(bt, "clicked",
462 _bt_win_unmaximize, win);
463 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
464 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
465 elm_box_pack_end(bx2, bt);
466 evas_object_show(bt);
467
468 bt = elm_button_add(win);
469 elm_object_text_set(bt, "Center");
470 evas_object_smart_callback_add(bt, "clicked",
471 _bt_win_center_cb, win);
472 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
473 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
474 elm_box_pack_end(bx2, bt);
475 evas_object_show(bt);
476
477 elm_box_pack_end(bx, bx2);
478 evas_object_show(bx2);
479
480 bx2 = elm_box_add(win);
481 elm_box_horizontal_set(bx2, EINA_TRUE);
482 elm_box_homogeneous_set(bx2, EINA_TRUE);
483 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
484 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
485
486 sl = elm_slider_add(win);
487 elm_object_text_set(sl, "Test");
488 elm_slider_span_size_set(sl, 100);
489 evas_object_size_hint_align_set(sl, 0.5, 0.5);
490 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
491 elm_slider_indicator_format_set(sl, "%3.0f");
492 elm_slider_min_max_set(sl, 50, 150);
493 elm_slider_value_set(sl, 50);
494 elm_slider_inverted_set(sl, EINA_TRUE);
495 elm_box_pack_end(bx2, sl);
496 evas_object_show(sl);
497
498 elm_box_pack_end(bx, bx2);
499 evas_object_show(bx2);
500
501 ck = elm_check_add(win);
502 elm_object_text_set(ck, "resize");
503 elm_check_state_set(ck, rotate_with_resize);
504 evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
505 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
506 evas_object_size_hint_align_set(ck, 0.02, 0.99);
507 evas_object_show(ck);
508 elm_box_pack_end(bx, ck);
509
510 ck = elm_check_add(win);
511 elm_object_text_set(ck, "fullscreen");
512 elm_check_state_set(ck, fullscreen);
513 evas_object_smart_callback_add(ck, "changed", my_ck_38_fullscreen, win);
514 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
515 evas_object_size_hint_align_set(ck, 0.02, 0.99);
516 evas_object_show(ck);
517 elm_box_pack_end(bx, ck);
518
519 ck = elm_check_add(win);
520 elm_object_text_set(ck, "borderless");
521 elm_check_state_set(ck, fullscreen);
522 evas_object_smart_callback_add(ck, "changed", my_ck_38_borderless, win);
523 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
524 evas_object_size_hint_align_set(ck, 0.02, 0.99);
525 evas_object_show(ck);
526 elm_box_pack_end(bx, ck);
527
528 ck = elm_check_add(win);
529 elm_object_text_set(ck, "floating");
530 elm_check_state_set(ck, floating);
531 evas_object_smart_callback_add(ck, "changed", my_ck_38_floating, win);
532 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
533 evas_object_size_hint_align_set(ck, 0.02, 0.99);
534 evas_object_show(ck);
535 elm_box_pack_end(bx, ck);
536
537 bx2 = elm_box_add(win);
538 elm_box_horizontal_set(bx2, EINA_TRUE);
539 elm_box_homogeneous_set(bx2, EINA_TRUE);
540 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
541 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
542
543 bt = elm_button_add(win);
544 elm_object_text_set(bt, "Rot 0");
545 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
546 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
547 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
548 elm_box_pack_end(bx2, bt);
549 evas_object_show(bt);
550
551 bt = elm_button_add(win);
552 elm_object_text_set(bt, "Rot 90");
553 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
554 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
555 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
556 elm_box_pack_end(bx2, bt);
557 evas_object_show(bt);
558
559 bt = elm_button_add(win);
560 elm_object_text_set(bt, "Rot 180");
561 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
562 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
563 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
564 elm_box_pack_end(bx2, bt);
565 evas_object_show(bt);
566
567 bt = elm_button_add(win);
568 elm_object_text_set(bt, "Rot 270");
569 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
570 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
571 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
572 elm_box_pack_end(bx2, bt);
573 evas_object_show(bt);
574
575 bt = elm_button_add(win);
576 elm_object_text_set(bt, "Move 0 0");
577 evas_object_smart_callback_add(bt, "clicked", _move_0_0, win);
578 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
579 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
580 elm_box_pack_end(bx2, bt);
581 evas_object_show(bt);
582
583 elm_box_pack_end(bx, bx2);
584 evas_object_show(bx2);
585
586 tb = elm_table_add(win);
587 evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
588 evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
589
590 evas_object_show(tb);
591
592 #define INTPTR(i) (void *)(intptr_t)(i)
593
594 bt = elm_button_add(win);
595 elm_object_text_set(bt, "Top Left");
596 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
597 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
598 efl_key_wref_set(bt, "win", win);
599 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(1));
600 elm_table_pack(tb, bt, 0, 0, 1, 1);
601 efl_key_wref_set(bt, "win", win);
602 evas_object_show(bt);
603
604 bt = elm_button_add(win);
605 elm_object_text_set(bt, "Top");
606 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
607 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
608 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(2));
609 elm_table_pack(tb, bt, 1, 0, 1, 1);
610 efl_key_wref_set(bt, "win", win);
611 evas_object_show(bt);
612
613 bt = elm_button_add(win);
614 elm_object_text_set(bt, "Top Right");
615 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
616 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
617 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(3));
618 elm_table_pack(tb, bt, 2, 0, 1, 1);
619 efl_key_wref_set(bt, "win", win);
620 evas_object_show(bt);
621
622 bt = elm_button_add(win);
623 elm_object_text_set(bt, "Left");
624 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
625 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
626 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(4));
627 elm_table_pack(tb, bt, 0, 1, 1, 1);
628 efl_key_wref_set(bt, "win", win);
629 evas_object_show(bt);
630
631 bt = elm_button_add(win);
632 elm_object_text_set(bt, "Move");
633 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
634 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
635 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(5));
636 elm_table_pack(tb, bt, 1, 1, 1, 1);
637 efl_key_wref_set(bt, "win", win);
638 evas_object_show(bt);
639
640 bt = elm_button_add(win);
641 elm_object_text_set(bt, "Right");
642 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
643 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
644 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(6));
645 elm_table_pack(tb, bt, 2, 1, 1, 1);
646 efl_key_wref_set(bt, "win", win);
647 evas_object_show(bt);
648
649 bt = elm_button_add(win);
650 elm_object_text_set(bt, "Bot Left");
651 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
652 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
653 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(7));
654 elm_table_pack(tb, bt, 0, 2, 1, 1);
655 efl_key_wref_set(bt, "win", win);
656 evas_object_show(bt);
657
658 bt = elm_button_add(win);
659 elm_object_text_set(bt, "Bottom");
660 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
661 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
662 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(8));
663 elm_table_pack(tb, bt, 1, 2, 1, 1);
664 efl_key_wref_set(bt, "win", win);
665 evas_object_show(bt);
666
667 bt = elm_button_add(win);
668 elm_object_text_set(bt, "Bot Right");
669 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
670 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
671 evas_object_smart_callback_add(bt, "pressed", _bt_pressed, INTPTR(9));
672 elm_table_pack(tb, bt, 2, 2, 1, 1);
673 efl_key_wref_set(bt, "win", win);
674 evas_object_show(bt);
675
676 #undef I
677
678 elm_box_pack_end(bx, tb);
679
680 evas_object_resize(win, 280, 400);
681 evas_object_show(win);
682 }
683
684 void
test_win_state2(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)685 test_win_state2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
686 {
687 Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
688 char buf[PATH_MAX];
689
690 win = elm_win_add(NULL, "window-states2", ELM_WIN_BASIC);
691 elm_win_override_set(win, EINA_TRUE);
692 evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
693 evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
694 elm_win_title_set(win, "Window States 2");
695 elm_win_autodel_set(win, EINA_TRUE);
696
697 bg = elm_bg_add(win);
698 snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
699 elm_bg_file_set(bg, buf, NULL);
700 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
701 elm_win_resize_object_add(win, bg);
702 evas_object_show(bg);
703 evas_object_data_set(win, "bg", bg);
704
705 bx = elm_box_add(win);
706 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
707 elm_win_resize_object_add(win, bx);
708 evas_object_show(bx);
709
710 bx2 = elm_box_add(win);
711 elm_box_horizontal_set(bx2, EINA_TRUE);
712 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
713 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
714
715 bt = elm_button_add(win);
716 elm_object_text_set(bt, "Alpha On");
717 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
718 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
719 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
720 elm_box_pack_end(bx2, bt);
721 evas_object_show(bt);
722
723 bt = elm_button_add(win);
724 elm_object_text_set(bt, "Alpha Off");
725 evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
726 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
727 evas_object_size_hint_weight_set(bt, 0.0, 0.0);
728 elm_box_pack_end(bx2, bt);
729 evas_object_show(bt);
730
731 bt = elm_button_add(win);
732 elm_object_text_set(bt, "Close");
733 evas_object_smart_callback_add(bt, "clicked", _close_win, win);
734 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
735 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
736 elm_box_pack_end(bx2, bt);
737 evas_object_show(bt);
738
739 bt = elm_button_add(win);
740 elm_object_text_set(bt, "Move 20 20");
741 evas_object_smart_callback_add(bt, "clicked", _move_20_20, win);
742 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
743 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
744 elm_box_pack_end(bx2, bt);
745 evas_object_show(bt);
746
747 elm_box_pack_end(bx, bx2);
748 evas_object_show(bx2);
749
750 bx2 = elm_box_add(win);
751 elm_box_horizontal_set(bx2, EINA_TRUE);
752 elm_box_homogeneous_set(bx2, EINA_TRUE);
753 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
754 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
755
756 sl = elm_slider_add(win);
757 elm_object_text_set(sl, "Override Redirect");
758 elm_slider_span_size_set(sl, 100);
759 evas_object_size_hint_align_set(sl, 0.5, 0.5);
760 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
761 elm_slider_indicator_format_set(sl, "%3.0f");
762 elm_slider_min_max_set(sl, 50, 150);
763 elm_slider_value_set(sl, 50);
764 elm_slider_inverted_set(sl, EINA_TRUE);
765 elm_box_pack_end(bx2, sl);
766 evas_object_show(sl);
767
768 elm_box_pack_end(bx, bx2);
769 evas_object_show(bx2);
770
771 ck = elm_check_add(win);
772 elm_object_text_set(ck, "resize");
773 elm_check_state_set(ck, rotate_with_resize);
774 evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
775 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
776 evas_object_size_hint_align_set(ck, 0.02, 0.99);
777 evas_object_show(ck);
778 elm_box_pack_end(bx, ck);
779
780 bx2 = elm_box_add(win);
781 elm_box_horizontal_set(bx2, EINA_TRUE);
782 elm_box_homogeneous_set(bx2, EINA_TRUE);
783 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
784 evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
785
786 bt = elm_button_add(win);
787 elm_object_text_set(bt, "Rot 0");
788 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
789 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
790 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
791 elm_box_pack_end(bx2, bt);
792 evas_object_show(bt);
793
794 bt = elm_button_add(win);
795 elm_object_text_set(bt, "Rot 90");
796 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
797 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
798 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
799 elm_box_pack_end(bx2, bt);
800 evas_object_show(bt);
801
802 bt = elm_button_add(win);
803 elm_object_text_set(bt, "Rot 180");
804 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
805 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
806 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
807 elm_box_pack_end(bx2, bt);
808 evas_object_show(bt);
809
810 bt = elm_button_add(win);
811 elm_object_text_set(bt, "Rot 270");
812 evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
813 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
814 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
815 elm_box_pack_end(bx2, bt);
816 evas_object_show(bt);
817
818 bt = elm_button_add(win);
819 elm_object_text_set(bt, "Move 0 0");
820 evas_object_smart_callback_add(bt, "clicked", _move_0_0, win);
821 evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
822 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
823 elm_box_pack_end(bx2, bt);
824 evas_object_show(bt);
825
826 elm_box_pack_end(bx, bx2);
827 evas_object_show(bx2);
828
829 evas_object_resize(win, 320, 480);
830 evas_object_show(win);
831 }
832