Initialize Tizen 2.3
[framework/uifw/elementary.git] / wearable / src / bin / test_progressbar.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
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 static char *
72 my_progressbar_format_cb(double val)
73 {
74    char buf[1024];
75    int files;
76
77    files = (1-val)*14000;
78    if(snprintf(buf, 30, "%i files left", files) > 0)
79      return strdup(buf);
80    return NULL;
81 }
82
83 void
84 test_progressbar(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
85 {
86    Evas_Object *win, *pb, *bx, *hbx, *bt, *bt_bx, *ic1, *ic2;
87    char buf[PATH_MAX];
88
89    win = elm_win_util_standard_add("progressbar", "Progressbar");
90    evas_object_smart_callback_add(win, "delete,request",
91                                   my_progressbar_destroy, NULL);
92
93    bx = elm_box_add(win);
94    elm_win_resize_object_add(win, bx);
95    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
96    evas_object_show(bx);
97
98    pb = elm_progressbar_add(win);
99    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
100    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
101    elm_box_pack_end(bx, pb);
102 //   elm_progressbar_horizontal_set(pb, EINA_TRUE);
103 //   elm_object_text_set(pb, "Progression %");
104    elm_progressbar_unit_format_function_set(pb, my_progressbar_format_cb,
105                                             (void (*)(char *)) free);
106    evas_object_show(pb);
107    _test_progressbar.pb1 = pb;
108
109    pb = elm_progressbar_add(win);
110    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
111    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
112    elm_object_text_set(pb, "Infinite bounce");
113    elm_progressbar_pulse_set(pb, EINA_TRUE);
114    elm_box_pack_end(bx, pb);
115    evas_object_show(pb);
116    _test_progressbar.pb2 = pb;
117
118    ic1 = elm_icon_add(win);
119    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
120    elm_image_file_set(ic1, buf, NULL);
121    evas_object_size_hint_aspect_set(ic1, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
122
123    pb = elm_progressbar_add(win);
124    elm_object_text_set(pb, "Label");
125    elm_object_part_content_set(pb, "icon", ic1);
126    elm_progressbar_inverted_set(pb, 1);
127    elm_progressbar_unit_format_set(pb, "%1.1f units");
128    elm_progressbar_span_size_set(pb, 200);
129    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
130    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
131    elm_box_pack_end(bx, pb);
132    evas_object_show(ic1);
133    evas_object_show(pb);
134    _test_progressbar.pb3 = pb;
135
136    hbx = elm_box_add(win);
137    elm_box_horizontal_set(hbx, EINA_TRUE);
138    evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
139    evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL);
140    elm_box_pack_end(bx, hbx);
141    evas_object_show(hbx);
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, EVAS_HINT_FILL);
146    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
147    elm_box_pack_end(hbx, pb);
148    elm_progressbar_span_size_set(pb, 60);
149    elm_object_text_set(pb, "percent");
150    evas_object_show(pb);
151    _test_progressbar.pb4 = pb;
152
153    pb = elm_progressbar_add(win);
154    elm_progressbar_horizontal_set(pb, EINA_FALSE);
155    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
156    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
157    elm_progressbar_span_size_set(pb, 80);
158    elm_progressbar_pulse_set(pb, EINA_TRUE);
159    elm_progressbar_unit_format_set(pb, NULL);
160    elm_object_text_set(pb, "Infinite bounce");
161    elm_box_pack_end(hbx, pb);
162    evas_object_show(pb);
163    _test_progressbar.pb5 = pb;
164
165    ic2 = elm_icon_add(win);
166    elm_image_file_set(ic2, buf, NULL);
167    evas_object_size_hint_aspect_set(ic2, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
168
169    pb = elm_progressbar_add(win);
170    elm_progressbar_horizontal_set(pb, EINA_FALSE);
171    elm_object_text_set(pb, "Label");
172    elm_object_part_content_set(pb, "icon", ic2);
173    elm_progressbar_inverted_set(pb, 1);
174    elm_progressbar_unit_format_set(pb, "%1.2f%%");
175    elm_progressbar_span_size_set(pb, 200);
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(hbx, pb);
179    evas_object_show(ic2);
180    evas_object_show(pb);
181    _test_progressbar.pb6 = pb;
182
183    pb = elm_progressbar_add(win);
184    elm_object_style_set(pb, "wheel");
185    elm_object_text_set(pb, "Style: wheel");
186    evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
187    evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
188    elm_box_pack_end(bx, pb);
189    evas_object_show(pb);
190    _test_progressbar.pb7 = pb;
191
192    bt_bx = elm_box_add(win);
193    elm_box_horizontal_set(bt_bx, EINA_TRUE);
194    evas_object_size_hint_weight_set(bt_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
195    elm_box_pack_end(bx, bt_bx);
196    evas_object_show(bt_bx);
197
198    bt = elm_button_add(win);
199    elm_object_text_set(bt, "Start");
200    evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_start, NULL);
201    elm_box_pack_end(bt_bx, bt);
202    evas_object_show(bt);
203
204    bt = elm_button_add(win);
205    elm_object_text_set(bt, "Stop");
206    evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_stop, NULL);
207    elm_box_pack_end(bt_bx, bt);
208    evas_object_show(bt);
209
210    evas_object_show(win);
211 }
212 #endif