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