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