Initialize Tizen 2.3
[framework/uifw/elementary.git] / src / bin / test_win_state.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
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
14 static void
15 my_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
23 static void
24 my_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
32 static Eina_Bool
33 _unic(void *data)
34 {
35    printf("activate\n");
36    elm_win_activate(data);
37    return EINA_FALSE;
38 }
39
40 static Eina_Bool
41 _unwith(void *data)
42 {
43    printf("show\n");
44    evas_object_show(data);
45    elm_win_activate(data);
46    return EINA_FALSE;
47 }
48
49 static void
50 my_bt_38_iconify(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
51 {
52    Evas_Object *win = data;
53    printf("iconify, current %i\n", elm_win_iconified_get(win));
54    elm_win_iconified_set(win, EINA_TRUE);
55    ecore_timer_add(10.0, _unic, win);
56 }
57
58 static void
59 my_bt_38_withdraw(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
60 {
61    Evas_Object *win = data;
62    printf("withdraw, current %i\n", elm_win_withdrawn_get(win));
63    elm_win_withdrawn_set(win, EINA_TRUE);
64    ecore_timer_add(10.0, _unwith, win);
65 }
66
67 static void
68 my_ck_38_resize(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
69 {
70 //   Evas_Object *win = data;
71    rotate_with_resize = elm_check_state_get(obj);
72 }
73
74 static void
75 my_bt_38_rot_0(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
76 {
77    Evas_Object *win = data;
78    if (rotate_with_resize)
79      elm_win_rotation_with_resize_set(win, 0);
80    else
81      elm_win_rotation_set(win, 0);
82 }
83
84 static void
85 my_bt_38_rot_90(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
86 {
87    Evas_Object *win = data;
88    if (rotate_with_resize)
89      elm_win_rotation_with_resize_set(win, 90);
90    else
91      elm_win_rotation_set(win, 90);
92 }
93
94 static void
95 my_bt_38_rot_180(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
96 {
97    Evas_Object *win = data;
98    if (rotate_with_resize)
99      elm_win_rotation_with_resize_set(win, 180);
100    else
101      elm_win_rotation_set(win, 180);
102 }
103
104 static void
105 my_bt_38_rot_270(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
106 {
107    Evas_Object *win = data;
108    if (rotate_with_resize)
109      elm_win_rotation_with_resize_set(win, 270);
110    else
111      elm_win_rotation_set(win, 270);
112 }
113
114 static void
115 my_win_move(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
116 {
117    Evas_Coord x, y;
118    elm_win_screen_position_get(obj, &x, &y);
119    printf("MOVE - win geom: %4i %4i\n", x, y);
120 }
121
122 static void
123 _win_resize(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
124 {
125    Evas_Coord w, h;
126    evas_object_geometry_get(obj, NULL, NULL, &w, &h);
127    printf("RESIZE - win geom: %4ix%4i\n", w, h);
128 }
129
130 static void
131 _win_foc_in(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
132 {
133    printf("FOC IN\n");
134 }
135
136 static void
137 _win_foc_out(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
138 {
139    printf("FOC OUT\n");
140 }
141
142 static void
143 _close_win(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
144 {
145    evas_object_del(data);
146 }
147
148 void
149 test_win_state(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
150 {
151    Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
152
153    win = elm_win_add(NULL, "window-states", ELM_WIN_BASIC);
154    elm_win_title_set(win, "Window States");
155    evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
156    evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
157    evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_IN, _win_foc_in, NULL);
158    evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_CANVAS_FOCUS_OUT, _win_foc_out, NULL);
159    elm_win_autodel_set(win, EINA_TRUE);
160
161    bg = elm_bg_add(win);
162    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
163    elm_win_resize_object_add(win, bg);
164    evas_object_show(bg);
165    evas_object_data_set(win, "bg", bg);
166
167    bx = elm_box_add(win);
168    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
169    elm_win_resize_object_add(win, bx);
170    evas_object_show(bx);
171
172    bx2 = elm_box_add(win);
173    elm_box_horizontal_set(bx2, EINA_TRUE);
174    elm_box_homogeneous_set(bx2, EINA_TRUE);
175    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
176    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
177
178    bt = elm_button_add(win);
179    elm_object_text_set(bt, "Alpha On");
180    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
181    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
182    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
183    elm_box_pack_end(bx2, bt);
184    evas_object_show(bt);
185
186    bt = elm_button_add(win);
187    elm_object_text_set(bt, "Alpha Off");
188    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
189    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
190    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
191    elm_box_pack_end(bx2, bt);
192    evas_object_show(bt);
193
194    bt = elm_button_add(win);
195    elm_object_text_set(bt, "Iconify");
196    evas_object_smart_callback_add(bt, "clicked", my_bt_38_iconify, win);
197    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
198    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
199    elm_box_pack_end(bx2, bt);
200    evas_object_show(bt);
201
202    bt = elm_button_add(win);
203    elm_object_text_set(bt, "Withdraw");
204    evas_object_smart_callback_add(bt, "clicked", my_bt_38_withdraw, win);
205    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
206    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
207    elm_box_pack_end(bx2, bt);
208    evas_object_show(bt);
209
210    elm_box_pack_end(bx, bx2);
211    evas_object_show(bx2);
212
213    bx2 = elm_box_add(win);
214    elm_box_horizontal_set(bx2, EINA_TRUE);
215    elm_box_homogeneous_set(bx2, EINA_TRUE);
216    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
217    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
218
219    sl = elm_slider_add(win);
220    elm_object_text_set(sl, "Test");
221    elm_slider_span_size_set(sl, 100);
222    evas_object_size_hint_align_set(sl, 0.5, 0.5);
223    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
224    elm_slider_indicator_format_set(sl, "%3.0f");
225    elm_slider_min_max_set(sl, 50, 150);
226    elm_slider_value_set(sl, 50);
227    elm_slider_inverted_set(sl, EINA_TRUE);
228    elm_box_pack_end(bx2, sl);
229    evas_object_show(sl);
230
231    elm_box_pack_end(bx, bx2);
232    evas_object_show(bx2);
233
234    ck = elm_check_add(win);
235    elm_object_text_set(ck, "resize");
236    elm_check_state_set(ck, rotate_with_resize);
237    evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
238    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
239    evas_object_size_hint_align_set(ck, 0.02, 0.99);
240    evas_object_show(ck);
241    elm_box_pack_end(bx, ck);
242
243    bx2 = elm_box_add(win);
244    elm_box_horizontal_set(bx2, EINA_TRUE);
245    elm_box_homogeneous_set(bx2, EINA_TRUE);
246    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
247    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
248
249    bt = elm_button_add(win);
250    elm_object_text_set(bt, "Rot 0");
251    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
252    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
253    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
254    elm_box_pack_end(bx2, bt);
255    evas_object_show(bt);
256
257    bt = elm_button_add(win);
258    elm_object_text_set(bt, "Rot 90");
259    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
260    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
261    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
262    elm_box_pack_end(bx2, bt);
263    evas_object_show(bt);
264
265    bt = elm_button_add(win);
266    elm_object_text_set(bt, "Rot 180");
267    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
268    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
269    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
270    elm_box_pack_end(bx2, bt);
271    evas_object_show(bt);
272
273    bt = elm_button_add(win);
274    elm_object_text_set(bt, "Rot 270");
275    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
276    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
277    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
278    elm_box_pack_end(bx2, bt);
279    evas_object_show(bt);
280
281    elm_box_pack_end(bx, bx2);
282    evas_object_show(bx2);
283
284    evas_object_resize(win, 280, 400);
285    evas_object_show(win);
286 }
287
288 void
289 test_win_state2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
290 {
291    Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
292    char buf[PATH_MAX];
293
294    win = elm_win_add(NULL, "window-states2", ELM_WIN_BASIC);
295    elm_win_override_set(win, EINA_TRUE);
296    evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
297    evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
298    elm_win_title_set(win, "Window States 2");
299    elm_win_autodel_set(win, EINA_TRUE);
300
301    bg = elm_bg_add(win);
302    snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
303    elm_bg_file_set(bg, buf, NULL);
304    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
305    elm_win_resize_object_add(win, bg);
306    evas_object_show(bg);
307    evas_object_data_set(win, "bg", bg);
308
309    bx = elm_box_add(win);
310    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
311    elm_win_resize_object_add(win, bx);
312    evas_object_show(bx);
313
314    bx2 = elm_box_add(win);
315    elm_box_horizontal_set(bx2, EINA_TRUE);
316    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
317    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
318
319    bt = elm_button_add(win);
320    elm_object_text_set(bt, "Alpha On");
321    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, win);
322    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
323    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
324    elm_box_pack_end(bx2, bt);
325    evas_object_show(bt);
326
327    bt = elm_button_add(win);
328    elm_object_text_set(bt, "Alpha Off");
329    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
330    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
331    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
332    elm_box_pack_end(bx2, bt);
333    evas_object_show(bt);
334
335    bt = elm_button_add(win);
336    elm_object_text_set(bt, "Close");
337    evas_object_smart_callback_add(bt, "clicked", _close_win, win);
338    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
339    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
340    elm_box_pack_end(bx2, bt);
341    evas_object_show(bt);
342
343    elm_box_pack_end(bx, bx2);
344    evas_object_show(bx2);
345
346    bx2 = elm_box_add(win);
347    elm_box_horizontal_set(bx2, EINA_TRUE);
348    elm_box_homogeneous_set(bx2, EINA_TRUE);
349    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
350    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
351
352    sl = elm_slider_add(win);
353    elm_object_text_set(sl, "Override Redirect");
354    elm_slider_span_size_set(sl, 100);
355    evas_object_size_hint_align_set(sl, 0.5, 0.5);
356    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
357    elm_slider_indicator_format_set(sl, "%3.0f");
358    elm_slider_min_max_set(sl, 50, 150);
359    elm_slider_value_set(sl, 50);
360    elm_slider_inverted_set(sl, EINA_TRUE);
361    elm_box_pack_end(bx2, sl);
362    evas_object_show(sl);
363
364    elm_box_pack_end(bx, bx2);
365    evas_object_show(bx2);
366
367    ck = elm_check_add(win);
368    elm_object_text_set(ck, "resize");
369    elm_check_state_set(ck, rotate_with_resize);
370    evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
371    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
372    evas_object_size_hint_align_set(ck, 0.02, 0.99);
373    evas_object_show(ck);
374    elm_box_pack_end(bx, ck);
375
376    bx2 = elm_box_add(win);
377    elm_box_horizontal_set(bx2, EINA_TRUE);
378    elm_box_homogeneous_set(bx2, EINA_TRUE);
379    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
380    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
381
382    bt = elm_button_add(win);
383    elm_object_text_set(bt, "Rot 0");
384    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
385    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
386    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
387    elm_box_pack_end(bx2, bt);
388    evas_object_show(bt);
389
390    bt = elm_button_add(win);
391    elm_object_text_set(bt, "Rot 90");
392    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
393    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
394    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
395    elm_box_pack_end(bx2, bt);
396    evas_object_show(bt);
397
398    bt = elm_button_add(win);
399    elm_object_text_set(bt, "Rot 180");
400    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
401    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
402    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
403    elm_box_pack_end(bx2, bt);
404    evas_object_show(bt);
405
406    bt = elm_button_add(win);
407    elm_object_text_set(bt, "Rot 270");
408    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
409    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
410    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
411    elm_box_pack_end(bx2, bt);
412    evas_object_show(bt);
413
414    elm_box_pack_end(bx, bx2);
415    evas_object_show(bx2);
416
417    evas_object_resize(win, 320, 480);
418    evas_object_show(win);
419 }
420 #endif