move elementary to trunk base. out of TMP/st.
[framework/uifw/elementary.git] / src / bin / test_notify.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
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, *bg, *bx, *tb, *notify, *bt, *lb;
44
45    win = elm_win_add(NULL, "Notify", ELM_WIN_BASIC);
46    elm_win_title_set(win, "Notify");
47    elm_win_autodel_set(win, 1);
48
49    bg = elm_bg_add(win);
50    elm_win_resize_object_add(win, bg);
51    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
52    evas_object_show(bg);
53
54    tb = elm_table_add(win);
55    elm_win_resize_object_add(win, tb);
56    evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
57    evas_object_show(tb);
58
59    notify = elm_notify_add(win);
60    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
61
62    bx = elm_box_add(win);
63    elm_notify_content_set(notify, bx);
64    elm_box_horizontal_set(bx, 1);
65    evas_object_show(bx);
66
67    lb = elm_label_add(win);
68    elm_label_label_set(lb, "This position is the default.");
69    elm_box_pack_end(bx, lb);
70    evas_object_show(lb);
71
72    bt = elm_button_add(win);
73    elm_button_label_set(bt, "Close");
74    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
75    elm_box_pack_end(bx, bt);
76    evas_object_show(bt);
77
78    bt = elm_button_add(win);
79    elm_button_label_set(bt, "Top");
80    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
81    elm_table_pack(tb, bt, 1, 0, 1, 1);
82    evas_object_show(bt);
83
84    notify = elm_notify_add(win);
85    elm_notify_repeat_events_set(notify, EINA_FALSE);
86    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
87    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
88    elm_notify_timeout_set(notify, 5.0);
89    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
90    evas_object_smart_callback_add(notify, "block,clicked", _notify_block, NULL);
91
92    bx = elm_box_add(win);
93    elm_notify_content_set(notify, bx);
94    elm_box_horizontal_set(bx, 1);
95    evas_object_show(bx);
96
97    lb = elm_label_add(win);
98    elm_label_label_set(lb, "Bottom position. This notify use a timeout of 5 sec.<br>"
99          "<b>The events outside the window are blocked.</b>");
100    elm_box_pack_end(bx, lb);
101    evas_object_show(lb);
102
103    bt = elm_button_add(win);
104    elm_button_label_set(bt, "Close");
105    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
106    elm_box_pack_end(bx, bt);
107    evas_object_show(bt);
108
109    bt = elm_button_add(win);
110    elm_button_label_set(bt, "Bottom");
111    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
112    elm_table_pack(tb, bt, 1, 2, 1, 1);
113    evas_object_show(bt);
114
115    notify = elm_notify_add(win);
116    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
117    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_LEFT);
118    elm_notify_timeout_set(notify, 10.0);
119    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
120
121    bx = elm_box_add(win);
122    elm_notify_content_set(notify, bx);
123    elm_box_horizontal_set(bx, 1);
124    evas_object_show(bx);
125
126    lb = elm_label_add(win);
127    elm_label_label_set(lb, "Left position. This notify use a timeout of 10 sec.");
128    elm_box_pack_end(bx, lb);
129    evas_object_show(lb);
130
131    bt = elm_button_add(win);
132    elm_button_label_set(bt, "Close");
133    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
134    elm_box_pack_end(bx, bt);
135    evas_object_show(bt);
136
137    bt = elm_button_add(win);
138    elm_button_label_set(bt, "Left");
139    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
140    elm_table_pack(tb, bt, 0, 1, 1, 1);
141    evas_object_show(bt);
142
143    notify = elm_notify_add(win);
144    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
145    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_CENTER);
146    elm_notify_timeout_set(notify, 10);
147    elm_notify_timeout_set(notify, 10.0);
148    evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
149
150    bx = elm_box_add(win);
151    elm_notify_content_set(notify, bx);
152    elm_box_horizontal_set(bx, 1);
153    evas_object_show(bx);
154
155    lb = elm_label_add(win);
156    elm_label_label_set(lb, "Center position. This notify use a timeout of 10 sec.");
157    elm_box_pack_end(bx, lb);
158    evas_object_show(lb);
159
160    bt = elm_button_add(win);
161    elm_button_label_set(bt, "Close");
162    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
163    elm_box_pack_end(bx, bt);
164    evas_object_show(bt);
165
166    bt = elm_button_add(win);
167    elm_button_label_set(bt, "Center");
168    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
169    elm_table_pack(tb, bt, 1, 1, 1, 1);
170    evas_object_show(bt);
171
172    notify = elm_notify_add(win);
173    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
174    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_RIGHT);
175
176    bx = elm_box_add(win);
177    elm_notify_content_set(notify, bx);
178    elm_box_horizontal_set(bx, 1);
179    evas_object_show(bx);
180
181    lb = elm_label_add(win);
182    elm_label_label_set(lb, "Right position.");
183    elm_box_pack_end(bx, lb);
184    evas_object_show(lb);
185
186    bt = elm_button_add(win);
187    elm_button_label_set(bt, "Close");
188    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
189    elm_box_pack_end(bx, bt);
190    evas_object_show(bt);
191
192    bt = elm_button_add(win);
193    elm_button_label_set(bt, "Right");
194    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
195    elm_table_pack(tb, bt, 2, 1, 1, 1);
196    evas_object_show(bt);
197
198    notify = elm_notify_add(win);
199    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
200    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_TOP_LEFT);
201
202    bx = elm_box_add(win);
203    elm_notify_content_set(notify, bx);
204    elm_box_horizontal_set(bx, 1);
205    evas_object_show(bx);
206
207    lb = elm_label_add(win);
208    elm_label_label_set(lb, "Top Left position.");
209    elm_box_pack_end(bx, lb);
210    evas_object_show(lb);
211
212    bt = elm_button_add(win);
213    elm_button_label_set(bt, "Close");
214    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
215    elm_box_pack_end(bx, bt);
216    evas_object_show(bt);
217
218    bt = elm_button_add(win);
219    elm_button_label_set(bt, "Top Left");
220    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
221    elm_table_pack(tb, bt, 0, 0, 1, 1);
222    evas_object_show(bt);
223
224    notify = elm_notify_add(win);
225    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
226    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_TOP_RIGHT);
227
228    bx = elm_box_add(win);
229    elm_notify_content_set(notify, bx);
230    elm_box_horizontal_set(bx, 1);
231    evas_object_show(bx);
232
233    lb = elm_label_add(win);
234    elm_label_label_set(lb, "Top Right position.");
235    elm_box_pack_end(bx, lb);
236    evas_object_show(lb);
237
238    bt = elm_button_add(win);
239    elm_button_label_set(bt, "Close");
240    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
241    elm_box_pack_end(bx, bt);
242    evas_object_show(bt);
243
244    bt = elm_button_add(win);
245    elm_button_label_set(bt, "Top Right");
246    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
247    elm_table_pack(tb, bt, 2, 0, 1, 1);
248    evas_object_show(bt);
249
250    notify = elm_notify_add(win);
251    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
252    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM_LEFT);
253
254    bx = elm_box_add(win);
255    elm_notify_content_set(notify, bx);
256    elm_box_horizontal_set(bx, 1);
257    evas_object_show(bx);
258
259    lb = elm_label_add(win);
260    elm_label_label_set(lb, "Bottom Left position.");
261    elm_box_pack_end(bx, lb);
262    evas_object_show(lb);
263
264    bt = elm_button_add(win);
265    elm_button_label_set(bt, "Close");
266    evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
267    elm_box_pack_end(bx, bt);
268    evas_object_show(bt);
269
270    bt = elm_button_add(win);
271    elm_button_label_set(bt, "Bottom Left");
272    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
273    elm_table_pack(tb, bt, 0, 2, 1, 1);
274    evas_object_show(bt);
275
276    notify = elm_notify_add(win);
277    evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
278    elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM_RIGHT);
279
280    bx = elm_box_add(win);
281    elm_notify_content_set(notify, bx);
282    elm_box_horizontal_set(bx, 1);
283    evas_object_show(bx);
284
285    lb = elm_label_add(win);
286    elm_label_label_set(lb, "Bottom Right position.");
287    elm_box_pack_end(bx, lb);
288    evas_object_show(lb);
289
290    bt = elm_button_add(win);
291    elm_button_label_set(bt, "Close in 2s");
292    evas_object_smart_callback_add(bt, "clicked", _bt_timer_close, notify);
293    elm_box_pack_end(bx, bt);
294    evas_object_show(bt);
295
296    bt = elm_button_add(win);
297    elm_button_label_set(bt, "Bottom Right");
298    evas_object_smart_callback_add(bt, "clicked", _bt, notify);
299    elm_table_pack(tb, bt, 2, 2, 1, 1);
300    evas_object_show(bt);
301
302    evas_object_show(win);
303    evas_object_resize(win, 300, 350);
304 }
305
306 #endif
307