f0c24c5bb1be7745d7e11b64aed81d09a4122bd1
[framework/uifw/elementary.git] / src / bin / test_progressbar.c
1 #include <Elementary.h>
2 #ifndef ELM_LIB_QUICKLAUNCH
3 typedef struct Progressbar
4 {
5    Evas_Object *pb1;
6    Evas_Object *pb2;
7    Evas_Object *pb3;
8    Evas_Object *pb4;
9    Evas_Object *pb5;
10    Evas_Object *pb6;
11    Evas_Object *pb7;
12    Eina_Bool run;
13    Ecore_Timer *timer;
14 } Progressbar;
15
16 static Progressbar _test_progressbar;
17
18 static int
19 _my_progressbar_value_set (void *data)
20 {
21    double progress;
22
23    progress = elm_progressbar_value_get (_test_progressbar.pb1);
24    if (progress < 1.0) progress += 0.0123;
25    else progress = 0.0;
26    elm_progressbar_value_set(_test_progressbar.pb1, progress);
27    elm_progressbar_value_set(_test_progressbar.pb4, progress);
28    elm_progressbar_value_set(_test_progressbar.pb3, progress);
29    elm_progressbar_value_set(_test_progressbar.pb6, progress);
30    if (progress < 1.0) return ECORE_CALLBACK_RENEW;
31    _test_progressbar.run = 0;
32    return ECORE_CALLBACK_CANCEL;
33 }
34
35 static void
36 my_progressbar_test_start(void *data, Evas_Object *obj, void *event_info)
37 {
38    elm_progressbar_pulse(_test_progressbar.pb2, EINA_TRUE);
39    elm_progressbar_pulse(_test_progressbar.pb5, EINA_TRUE);
40    elm_progressbar_pulse(_test_progressbar.pb7, EINA_TRUE);
41    if (!_test_progressbar.run)
42      {
43         _test_progressbar.timer = ecore_timer_add(0.1, _my_progressbar_value_set, NULL);
44         _test_progressbar.run = EINA_TRUE;
45      }
46 }
47
48 static void
49 my_progressbar_test_stop(void *data, Evas_Object *obj, void *event_info)
50 {
51    elm_progressbar_pulse(_test_progressbar.pb2, EINA_FALSE);
52    elm_progressbar_pulse(_test_progressbar.pb5, EINA_FALSE);
53    elm_progressbar_pulse(_test_progressbar.pb7, EINA_FALSE);
54    if (_test_progressbar.run)
55      {
56         ecore_timer_del(_test_progressbar.timer);
57         _test_progressbar.run = EINA_FALSE;
58      }
59 }
60
61 static void
62 my_progressbar_destroy(void *data, Evas_Object *obj, void *event_info)
63 {
64    my_progressbar_test_stop(NULL, NULL, NULL);
65    evas_object_del(obj);
66 }
67
68 void
69 test_progressbar(void *data, Evas_Object *obj, void *event_info)
70 {
71    Evas_Object *win, *bg, *pb, *bx, *hbx, *bt, *bt_bx, *ic1, *ic2;
72    char buf[PATH_MAX];
73
74    win = elm_win_add(NULL, "progressbar", ELM_WIN_BASIC);
75    elm_win_title_set(win, "Progressbar");
76    evas_object_smart_callback_add(win, "delete,request", 
77                                   my_progressbar_destroy, NULL);
78
79    bg = elm_bg_add(win);
80    elm_win_resize_object_add(win, bg);
81    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
82    evas_object_show(bg);
83
84    bx = elm_box_add(win);
85    elm_win_resize_object_add(win, bx);
86    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
87    evas_object_show(bx);
88
89    pb = elm_progressbar_add(win);
90    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
91    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
92    elm_box_pack_end(bx, pb);
93 //   elm_progressbar_horizontal_set(pb, EINA_TRUE);
94 //   elm_progressbar_label_set(pb, "Progression %");
95 //   elm_progressbar_unit_format_set(pb, NULL);
96    evas_object_show(pb);
97    _test_progressbar.pb1 = pb;
98
99    pb = elm_progressbar_add(win);
100    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
101    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
102    elm_progressbar_label_set(pb, "Infinite bounce");
103    elm_progressbar_pulse_set(pb, EINA_TRUE);
104    elm_box_pack_end(bx, pb);
105    evas_object_show(pb);
106    _test_progressbar.pb2 = pb;
107
108    ic1 = elm_icon_add(win);
109    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
110    elm_icon_file_set(ic1, buf, NULL);
111    evas_object_size_hint_aspect_set(ic1, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
112
113    pb = elm_progressbar_add(win);
114    elm_progressbar_label_set(pb, "Label");
115    elm_progressbar_icon_set(pb, ic1);
116    elm_progressbar_inverted_set(pb, 1);
117    elm_progressbar_unit_format_set(pb, "%1.1f units");
118    elm_progressbar_span_size_set(pb, 200);
119    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
120    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
121    elm_box_pack_end(bx, pb);
122    evas_object_show(ic1);
123    evas_object_show(pb);
124    _test_progressbar.pb3 = pb;
125
126    hbx = elm_box_add(win);
127    elm_box_horizontal_set(hbx, EINA_TRUE);
128    evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
129    evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL);
130    elm_box_pack_end(bx, hbx);
131    evas_object_show(hbx);
132
133    pb = elm_progressbar_add(win);
134    elm_progressbar_horizontal_set(pb, EINA_FALSE);
135    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, EVAS_HINT_FILL);
136    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
137    elm_box_pack_end(hbx, pb);
138    elm_progressbar_span_size_set(pb, 60);
139    elm_progressbar_label_set(pb, "percent");
140    evas_object_show(pb);
141    _test_progressbar.pb4 = pb;
142
143    pb = elm_progressbar_add(win);
144    elm_progressbar_horizontal_set(pb, EINA_FALSE);
145    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
146    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
147    elm_progressbar_span_size_set(pb, 80);
148    elm_progressbar_pulse_set(pb, EINA_TRUE);
149    elm_progressbar_unit_format_set(pb, NULL);
150    elm_progressbar_label_set(pb, "Infinite bounce");
151    elm_box_pack_end(hbx, pb);
152    evas_object_show(pb);
153    _test_progressbar.pb5 = pb;
154
155    ic2 = elm_icon_add(win);
156    elm_icon_file_set(ic2, buf, NULL);
157    evas_object_size_hint_aspect_set(ic2, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
158
159    pb = elm_progressbar_add(win);
160    elm_progressbar_horizontal_set(pb, EINA_FALSE);
161    elm_progressbar_label_set(pb, "Label");
162    elm_progressbar_icon_set(pb, ic2);
163    elm_progressbar_inverted_set(pb, 1);
164    elm_progressbar_unit_format_set(pb, "%1.2f%%");
165    elm_progressbar_span_size_set(pb, 200);
166    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
167    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
168    elm_box_pack_end(hbx, pb);
169    evas_object_show(ic2);
170    evas_object_show(pb);
171    _test_progressbar.pb6 = pb;
172
173    pb = elm_progressbar_add(win);
174    elm_object_style_set(pb, "wheel");
175    elm_progressbar_label_set(pb, "Style: wheel");
176    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
177    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
178    elm_box_pack_end(bx, pb);
179    evas_object_show(pb);
180    _test_progressbar.pb7 = pb;
181
182    bt_bx = elm_box_add(win);
183    elm_box_horizontal_set(bt_bx, 1);
184    evas_object_size_hint_weight_set(bt_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
185    elm_box_pack_end(bx, bt_bx);
186    evas_object_show(bt_bx);
187
188    bt = elm_button_add(win);
189    elm_button_label_set(bt, "Start");
190    evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_start, NULL);
191    elm_box_pack_end(bt_bx, bt);
192    evas_object_show(bt);
193
194    bt = elm_button_add(win);
195    elm_button_label_set(bt, "Stop");
196    evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_stop, NULL);
197    elm_box_pack_end(bt_bx, bt);
198    evas_object_show(bt);
199
200    evas_object_show(win);
201 }
202 #endif