Merge remote-tracking branch 'remotes/origin/upstream'
[framework/uifw/elementary.git] / src / bin / test_win_state.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
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 void
33 my_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
39 static void
40 my_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
49 static void
50 my_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
59 static void
60 my_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
69 static void
70 my_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
79 static void
80 my_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
87 static 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
95 static void
96 _win_foc_in(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
97 {
98    printf("FOC IN\n");
99 }
100
101 static void
102 _win_foc_out(void *data __UNUSED__, Evas *e __UNUSED__, void *event_info __UNUSED__)
103 {
104    printf("FOC OUT\n");
105 }
106
107 static void
108 _close_win(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
109 {
110    evas_object_del(data);
111 }
112
113 void
114 test_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 <<<<<<< HEAD
177    elm_slider_inverted_set(sl, 1);
178 =======
179    elm_slider_inverted_set(sl, EINA_TRUE);
180 >>>>>>> remotes/origin/upstream
181    elm_box_pack_end(bx2, sl);
182    evas_object_show(sl);
183
184    elm_box_pack_end(bx, bx2);
185    evas_object_show(bx2);
186
187    ck = elm_check_add(win);
188    elm_object_text_set(ck, "resize");
189    elm_check_state_set(ck, rotate_with_resize);
190    evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
191    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
192    evas_object_size_hint_align_set(ck, 0.02, 0.99);
193    evas_object_show(ck);
194    elm_box_pack_end(bx, ck);
195
196    bx2 = elm_box_add(win);
197    elm_box_horizontal_set(bx2, EINA_TRUE);
198    elm_box_homogeneous_set(bx2, EINA_TRUE);
199    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
200    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
201
202    bt = elm_button_add(win);
203    elm_object_text_set(bt, "Rot 0");
204    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, 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    bt = elm_button_add(win);
211    elm_object_text_set(bt, "Rot 90");
212    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
213    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
214    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
215    elm_box_pack_end(bx2, bt);
216    evas_object_show(bt);
217
218    bt = elm_button_add(win);
219    elm_object_text_set(bt, "Rot 180");
220    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
221    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
222    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
223    elm_box_pack_end(bx2, bt);
224    evas_object_show(bt);
225
226    bt = elm_button_add(win);
227    elm_object_text_set(bt, "Rot 270");
228    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
229    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
230    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
231    elm_box_pack_end(bx2, bt);
232    evas_object_show(bt);
233
234    elm_box_pack_end(bx, bx2);
235    evas_object_show(bx2);
236
237    evas_object_resize(win, 280, 400);
238    evas_object_show(win);
239 }
240
241 void
242 test_win_state2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
243 {
244    Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck;
245    char buf[PATH_MAX];
246
247    win = elm_win_add(NULL, "window-states2", ELM_WIN_BASIC);
248 <<<<<<< HEAD
249    elm_win_override_set(win, 1);
250 =======
251    elm_win_override_set(win, EINA_TRUE);
252 >>>>>>> remotes/origin/upstream
253    evas_object_smart_callback_add(win, "moved", my_win_move, NULL);
254    evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize, NULL);
255    elm_win_title_set(win, "Window States 2");
256    elm_win_autodel_set(win, EINA_TRUE);
257
258    bg = elm_bg_add(win);
259    snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
260    elm_bg_file_set(bg, buf, NULL);
261    elm_win_resize_object_add(win, bg);
262    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
263    evas_object_show(bg);
264    evas_object_data_set(win, "bg", bg);
265
266    bx = elm_box_add(win);
267    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
268    elm_win_resize_object_add(win, bx);
269    evas_object_show(bx);
270
271    bx2 = elm_box_add(win);
272    elm_box_horizontal_set(bx2, EINA_TRUE);
273    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
274    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
275
276    bt = elm_button_add(win);
277    elm_object_text_set(bt, "Alpha On");
278    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_on, 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, "Alpha Off");
286    evas_object_smart_callback_add(bt, "clicked", my_bt_38_alpha_off, win);
287    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
288    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
289    elm_box_pack_end(bx2, bt);
290    evas_object_show(bt);
291
292    bt = elm_button_add(win);
293    elm_object_text_set(bt, "Close");
294    evas_object_smart_callback_add(bt, "clicked", _close_win, win);
295    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
296    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
297    elm_box_pack_end(bx2, bt);
298    evas_object_show(bt);
299
300    elm_box_pack_end(bx, bx2);
301    evas_object_show(bx2);
302
303    bx2 = elm_box_add(win);
304    elm_box_horizontal_set(bx2, EINA_TRUE);
305    elm_box_homogeneous_set(bx2, EINA_TRUE);
306    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
307    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
308
309    sl = elm_slider_add(win);
310    elm_object_text_set(sl, "Override Redirect");
311    elm_slider_span_size_set(sl, 100);
312    evas_object_size_hint_align_set(sl, 0.5, 0.5);
313    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
314    elm_slider_indicator_format_set(sl, "%3.0f");
315    elm_slider_min_max_set(sl, 50, 150);
316    elm_slider_value_set(sl, 50);
317 <<<<<<< HEAD
318    elm_slider_inverted_set(sl, 1);
319 =======
320    elm_slider_inverted_set(sl, EINA_TRUE);
321 >>>>>>> remotes/origin/upstream
322    elm_box_pack_end(bx2, sl);
323    evas_object_show(sl);
324
325    elm_box_pack_end(bx, bx2);
326    evas_object_show(bx2);
327
328    ck = elm_check_add(win);
329    elm_object_text_set(ck, "resize");
330    elm_check_state_set(ck, rotate_with_resize);
331    evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win);
332    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
333    evas_object_size_hint_align_set(ck, 0.02, 0.99);
334    evas_object_show(ck);
335    elm_box_pack_end(bx, ck);
336
337    bx2 = elm_box_add(win);
338    elm_box_horizontal_set(bx2, EINA_TRUE);
339    elm_box_homogeneous_set(bx2, EINA_TRUE);
340    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
341    evas_object_size_hint_fill_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
342
343    bt = elm_button_add(win);
344    elm_object_text_set(bt, "Rot 0");
345    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_0, win);
346    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
347    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
348    elm_box_pack_end(bx2, bt);
349    evas_object_show(bt);
350
351    bt = elm_button_add(win);
352    elm_object_text_set(bt, "Rot 90");
353    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_90, win);
354    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
355    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
356    elm_box_pack_end(bx2, bt);
357    evas_object_show(bt);
358
359    bt = elm_button_add(win);
360    elm_object_text_set(bt, "Rot 180");
361    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_180, win);
362    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
363    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
364    elm_box_pack_end(bx2, bt);
365    evas_object_show(bt);
366
367    bt = elm_button_add(win);
368    elm_object_text_set(bt, "Rot 270");
369    evas_object_smart_callback_add(bt, "clicked", my_bt_38_rot_270, win);
370    evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
371    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
372    elm_box_pack_end(bx2, bt);
373    evas_object_show(bt);
374
375    elm_box_pack_end(bx, bx2);
376    evas_object_show(bx2);
377
378    evas_object_resize(win, 320, 480);
379    evas_object_show(win);
380 }
381 #endif