package upload
[framework/uifw/elementary.git] / src / bin / test_notify.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 static void
8 _bt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
9 {
10    Evas_Object *notify = data;
11    evas_object_show(notify);
12 }
13
14 static void
15 _bt_close(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
16 {
17    Evas_Object *notify = data;
18    evas_object_hide(notify);
19 }
20
21 static void
22 _bt_timer_close(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
23 {
24    Evas_Object *notify = data;
25    elm_notify_timeout_set(notify, 2.0);
26 }
27
28 static void
29 _notify_timeout(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
30 {
31    printf("Notify timed out!\n");
32 }
33
34 static void
35 _notify_block(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
36 {
37    printf("Notify block area clicked!!\n");
38 }
39
40 void
41 test_notify(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
42 {
43    Evas_Object *win, *bx, *tb, *notify, *bt, *lb;
44
45    win = elm_win_util_standard_add("notify", "Notify");
46    elm_win_autodel_set(win, EINA_TRUE);
47
48    tb = elm_table_add(win);
49    elm_win_resize_object_add(win, tb);
50    evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
51    evas_object_show(tb);
52
53    // Notify top
54    notify = elm_notify_add(win);
55    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
56    elm_notify_align_set(notify, 0.5, 0.0);
57
58    bx = elm_box_add(win);
59    elm_object_content_set(notify, bx);
60    elm_box_horizontal_set(bx, EINA_TRUE);
61    evas_object_show(bx);
62
63    lb = elm_label_add(win);
64    elm_object_text_set(lb, "This position is the default.");
65    elm_box_pack_end(bx, lb);
66    evas_object_show(lb);
67
68    bt = elm_button_add(win);
69    elm_object_text_set(bt, "Close");
70    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
71    elm_box_pack_end(bx, bt);
72    evas_object_show(bt);
73
74    bt = elm_button_add(win);
75    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
76    elm_object_text_set(bt, "Top");
77    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
78    elm_table_pack(tb, bt, 2, 1, 1, 1);
79    evas_object_show(bt);
80
81    // Notify bottom
82    notify = elm_notify_add(win);
83    elm_notify_allow_events_set(notify, EINA_FALSE);
84    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
85    elm_notify_align_set(notify, 0.5, 1.0);
86
87    elm_notify_timeout_set(notify, 5.0);
88    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
89    evas_object_smart_callback_add(notify, "block,clicked", _notify_block, NULL);
90
91    bx = elm_box_add(win);
92    elm_object_content_set(notify, bx);
93    elm_box_horizontal_set(bx, EINA_TRUE);
94    evas_object_show(bx);
95
96    lb = elm_label_add(win);
97    elm_object_text_set(lb, "Bottom position. This notify uses a timeout of 5 sec.<br/>"
98          "<b>The events outside the window are blocked.</b>");
99    elm_box_pack_end(bx, lb);
100    evas_object_show(lb);
101
102    bt = elm_button_add(win);
103    elm_object_text_set(bt, "Close");
104    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
105    elm_box_pack_end(bx, bt);
106    evas_object_show(bt);
107
108    bt = elm_button_add(win);
109    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
110    elm_object_text_set(bt, "Bottom");
111    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
112    elm_table_pack(tb, bt, 2, 3, 1, 1);
113    evas_object_show(bt);
114
115    // Notify left
116    notify = elm_notify_add(win);
117    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
118    elm_notify_align_set(notify, 0.0, 0.5);
119    elm_notify_timeout_set(notify, 10.0);
120    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
121
122    bx = elm_box_add(win);
123    elm_object_content_set(notify, bx);
124    elm_box_horizontal_set(bx, EINA_TRUE);
125    evas_object_show(bx);
126
127    lb = elm_label_add(win);
128    elm_object_text_set(lb, "Left position. This notify uses a timeout of 10 sec.");
129    elm_box_pack_end(bx, lb);
130    evas_object_show(lb);
131
132    bt = elm_button_add(win);
133    elm_object_text_set(bt, "Close");
134    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
135    elm_box_pack_end(bx, bt);
136    evas_object_show(bt);
137
138    bt = elm_button_add(win);
139    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
140    elm_object_text_set(bt, "Left");
141    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
142    elm_table_pack(tb, bt, 1, 2, 1, 1);
143    evas_object_show(bt);
144
145    // Notify center
146    notify = elm_notify_add(win);
147    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
148    elm_notify_align_set(notify, 0.5, 0.5);
149    elm_notify_timeout_set(notify, 10.0);
150    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
151
152    bx = elm_box_add(win);
153    elm_object_content_set(notify, bx);
154    elm_box_horizontal_set(bx, EINA_TRUE);
155    evas_object_show(bx);
156
157    lb = elm_label_add(win);
158    elm_object_text_set(lb, "Center position. This notify uses a timeout of 10 sec.");
159    elm_box_pack_end(bx, lb);
160    evas_object_show(lb);
161
162    bt = elm_button_add(win);
163    elm_object_text_set(bt, "Close");
164    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
165    elm_box_pack_end(bx, bt);
166    evas_object_show(bt);
167
168    bt = elm_button_add(win);
169    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
170    elm_object_text_set(bt, "Center");
171    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
172    elm_table_pack(tb, bt, 2, 2, 1, 1);
173    evas_object_show(bt);
174
175    // Notify right
176    notify = elm_notify_add(win);
177    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
178    elm_notify_align_set(notify, 1.0, 0.5);
179
180    bx = elm_box_add(win);
181    elm_object_content_set(notify, bx);
182    elm_box_horizontal_set(bx, EINA_TRUE);
183    evas_object_show(bx);
184
185    lb = elm_label_add(win);
186    elm_object_text_set(lb, "Right position.");
187    elm_box_pack_end(bx, lb);
188    evas_object_show(lb);
189
190    bt = elm_button_add(win);
191    elm_object_text_set(bt, "Close");
192    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
193    elm_box_pack_end(bx, bt);
194    evas_object_show(bt);
195
196    bt = elm_button_add(win);
197    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
198    elm_object_text_set(bt, "Right");
199    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
200    elm_table_pack(tb, bt, 3, 2, 1, 1);
201    evas_object_show(bt);
202
203    // Notify top left
204    notify = elm_notify_add(win);
205    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
206    elm_notify_align_set(notify, 0.0, 0.0);
207
208    bx = elm_box_add(win);
209    elm_object_content_set(notify, bx);
210    elm_box_horizontal_set(bx, EINA_TRUE);
211    evas_object_show(bx);
212
213    lb = elm_label_add(win);
214    elm_object_text_set(lb, "Top Left position.");
215    elm_box_pack_end(bx, lb);
216    evas_object_show(lb);
217
218    bt = elm_button_add(win);
219    elm_object_text_set(bt, "Close");
220    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
221    elm_box_pack_end(bx, bt);
222    evas_object_show(bt);
223
224    bt = elm_button_add(win);
225    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
226    elm_object_text_set(bt, "Top Left");
227    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
228    elm_table_pack(tb, bt, 1, 1, 1, 1);
229    evas_object_show(bt);
230
231    // Notify top right
232    notify = elm_notify_add(win);
233    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
234    elm_notify_align_set(notify, 1.0, 0.0);
235
236    bx = elm_box_add(win);
237    elm_object_content_set(notify, bx);
238    elm_box_horizontal_set(bx, EINA_TRUE);
239    evas_object_show(bx);
240
241    lb = elm_label_add(win);
242    elm_object_text_set(lb, "Top Right position.");
243    elm_box_pack_end(bx, lb);
244    evas_object_show(lb);
245
246    bt = elm_button_add(win);
247    elm_object_text_set(bt, "Close");
248    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
249    elm_box_pack_end(bx, bt);
250    evas_object_show(bt);
251
252    bt = elm_button_add(win);
253    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
254    elm_object_text_set(bt, "Top Right");
255    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
256    elm_table_pack(tb, bt, 3, 1, 1, 1);
257    evas_object_show(bt);
258
259    // Notify bottom left
260    notify = elm_notify_add(win);
261    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
262    elm_notify_align_set(notify, 0.0, 1.0);
263
264    bx = elm_box_add(win);
265    elm_object_content_set(notify, bx);
266    elm_box_horizontal_set(bx, EINA_TRUE);
267    evas_object_show(bx);
268
269    lb = elm_label_add(win);
270    elm_object_text_set(lb, "Bottom Left position.");
271    elm_box_pack_end(bx, lb);
272    evas_object_show(lb);
273
274    bt = elm_button_add(win);
275    elm_object_text_set(bt, "Close");
276    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
277    elm_box_pack_end(bx, bt);
278    evas_object_show(bt);
279
280    bt = elm_button_add(win);
281    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
282    elm_object_text_set(bt, "Bottom Left");
283    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
284    elm_table_pack(tb, bt, 1, 3, 1, 1);
285    evas_object_show(bt);
286
287    // Notify bottom right
288    notify = elm_notify_add(win);
289    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
290    elm_notify_align_set(notify, 1.0, 1.0);
291
292    bx = elm_box_add(win);
293    elm_object_content_set(notify, bx);
294    elm_box_horizontal_set(bx, EINA_TRUE);
295    evas_object_show(bx);
296
297    lb = elm_label_add(win);
298    elm_object_text_set(lb, "Bottom Right position.");
299    elm_box_pack_end(bx, lb);
300    evas_object_show(lb);
301
302    bt = elm_button_add(win);
303    elm_object_text_set(bt, "Close in 2s");
304    evas_object_smart_callback_add(bt, "clicked", _bt_timer_close, notify);
305    elm_box_pack_end(bx, bt);
306    evas_object_show(bt);
307
308    bt = elm_button_add(win);
309    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
310    elm_object_text_set(bt, "Bottom Right");
311    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
312    elm_table_pack(tb, bt, 3, 3, 1, 1);
313    evas_object_show(bt);
314
315    // Notify top fill
316    notify = elm_notify_add(win);
317    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
318    elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, 0.0);
319    elm_notify_timeout_set(notify, 5.0);
320
321    bx = elm_box_add(win);
322    elm_object_content_set(notify, bx);
323    elm_box_horizontal_set(bx, EINA_TRUE);
324    evas_object_show(bx);
325
326    lb = elm_label_add(win);
327    elm_object_text_set(lb, "Fill top. This notify fills horizontal area.<br/>"
328          "<b>elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, 0.0); </b>");
329    elm_box_pack_end(bx, lb);
330    evas_object_show(lb);
331
332    bt = elm_button_add(win);
333    elm_object_text_set(bt, "Close");
334    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
335    elm_box_pack_end(bx, bt);
336    evas_object_show(bt);
337
338    bt = elm_button_add(win);
339    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
340    elm_object_text_set(bt, "Top fill");
341    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
342    elm_table_pack(tb, bt, 1, 0, 3, 1);
343    evas_object_show(bt);
344
345    // Notify bottom fill
346    notify = elm_notify_add(win);
347    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
348    elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, 1.0);
349    elm_notify_timeout_set(notify, 5.0);
350
351    bx = elm_box_add(win);
352    elm_object_content_set(notify, bx);
353    elm_box_horizontal_set(bx, EINA_TRUE);
354    evas_object_show(bx);
355
356    lb = elm_label_add(win);
357    evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
358    evas_object_size_hint_align_set(lb, 0.0, 0.5);
359    elm_object_text_set(lb, "Fill Bottom. This notify fills horizontal area.<br/>"
360          "<b>elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, 1.0); </b>");
361    elm_box_pack_end(bx, lb);
362    evas_object_show(lb);
363
364    bt = elm_button_add(win);
365    elm_object_text_set(bt, "Close");
366    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
367    elm_box_pack_end(bx, bt);
368    evas_object_show(bt);
369
370    bt = elm_button_add(win);
371    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
372    elm_object_text_set(bt, "Bottom fill");
373    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
374    elm_table_pack(tb, bt, 1, 4, 3, 1);
375    evas_object_show(bt);
376
377    // Notify left fill
378    notify = elm_notify_add(win);
379    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
380    elm_notify_align_set(notify, 0.0, EVAS_HINT_FILL);
381    elm_notify_timeout_set(notify, 5.0);
382
383    bx = elm_box_add(win);
384    elm_object_content_set(notify, bx);
385    evas_object_show(bx);
386
387    lb = elm_label_add(win);
388    elm_object_text_set(lb, "Left fill.");
389    elm_box_pack_end(bx, lb);
390    evas_object_show(lb);
391
392    bt = elm_button_add(win);
393    elm_object_text_set(bt, "Close");
394    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
395    elm_box_pack_end(bx, bt);
396    evas_object_show(bt);
397
398    bt = elm_button_add(win);
399    evas_object_size_hint_align_set(bt, 0.5, EVAS_HINT_FILL);
400    elm_object_text_set(bt, "Left fill");
401    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
402    elm_table_pack(tb, bt, 0, 1, 1, 3);
403    evas_object_show(bt);
404
405    // Notify right fill
406    notify = elm_notify_add(win);
407    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
408    elm_notify_align_set(notify, 1.0, EVAS_HINT_FILL);
409    elm_notify_timeout_set(notify, 5.0);
410
411    bx = elm_box_add(win);
412    elm_object_content_set(notify, bx);
413    evas_object_show(bx);
414
415    lb = elm_label_add(win);
416    elm_object_text_set(lb, "Right fill.");
417    elm_box_pack_end(bx, lb);
418    evas_object_show(lb);
419
420    bt = elm_button_add(win);
421    elm_object_text_set(bt, "Close");
422    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
423    elm_box_pack_end(bx, bt);
424    evas_object_show(bt);
425
426    bt = elm_button_add(win);
427    evas_object_size_hint_align_set(bt, 0.5, EVAS_HINT_FILL);
428    elm_object_text_set(bt, "Right fill");
429    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
430    elm_table_pack(tb, bt, 4, 1, 1, 3);
431    evas_object_show(bt);
432
433    evas_object_show(win);
434    evas_object_resize(win, 400, 400);
435 }
436
437 #endif