[map] Urgent: Add New APIs & Add New Signal
[framework/uifw/elementary.git] / src / bin / test_actionslider.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 _pos_selected_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
8 {
9    Elm_Actionslider_Pos ipos, mpos, epos;
10
11    printf("Selection: %s\n", (char *)event_info);
12    printf("Label selected: %s\n", elm_actionslider_selected_label_get(obj));
13
14    ipos = elm_actionslider_indicator_pos_get(obj);
15
16    switch (ipos)
17      {
18       case ELM_ACTIONSLIDER_NONE:
19          printf("actionslider indicator pos: none!\n");
20          break;
21       case ELM_ACTIONSLIDER_LEFT:
22          printf("actionslider indicator pos: left!\n");
23          break;
24       case ELM_ACTIONSLIDER_CENTER:
25          printf("actionslider indicator pos: center!\n");
26          break;
27       case ELM_ACTIONSLIDER_RIGHT:
28          printf("actionslider indicator pos: right!\n");
29          break;
30       case ELM_ACTIONSLIDER_ALL:
31          printf("actionslider indicator pos: all!\n");
32          break;
33      }
34
35    mpos = elm_actionslider_magnet_pos_get(obj);
36
37    switch (mpos)
38      {
39       case ELM_ACTIONSLIDER_NONE:
40          printf("actionslider magnet pos: none!\n");
41          break;
42       case ELM_ACTIONSLIDER_LEFT:
43          printf("actionslider magnet pos: left!\n");
44          break;
45       case ELM_ACTIONSLIDER_CENTER:
46          printf("actionslider magnet pos: center!\n");
47          break;
48       case ELM_ACTIONSLIDER_RIGHT:
49          printf("actionslider magnet pos: right!\n");
50          break;
51       case ELM_ACTIONSLIDER_ALL:
52          printf("actionslider magnet pos: all!\n");
53          break;
54      }
55
56    epos = elm_actionslider_enabled_pos_get(obj);
57
58    if (epos)
59      {
60         printf("actionslider enabled pos: ");
61         if (epos & ELM_ACTIONSLIDER_LEFT)
62           printf("left ");
63         if (epos & ELM_ACTIONSLIDER_CENTER)
64           printf("center ");
65         if (epos & ELM_ACTIONSLIDER_RIGHT)
66           printf("right ");
67         printf("\n");
68      }
69 }
70
71 static void
72 _position_change_magnetic_cb(void *data __UNUSED__, Evas_Object * obj, void *event_info)
73 {
74    if (!strcmp((char *)event_info, "left"))
75      elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_LEFT);
76    else if (!strcmp((char *)event_info, "right"))
77      elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_RIGHT);
78 }
79
80 static void
81 _magnet_enable_disable_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
82 {
83    if (!strcmp((char *)event_info, "left"))
84       elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_CENTER);
85    else if (!strcmp((char *)event_info, "right"))
86       elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_NONE);
87 }
88
89 void
90 test_actionslider(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info __UNUSED__)
91 {
92    Evas_Object *win, *bx, *as;
93
94    win = elm_win_util_standard_add("actionslider", "Actionslider");
95    elm_win_autodel_set(win, EINA_TRUE);
96
97    bx = elm_box_add(win);
98    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0);
99    elm_win_resize_object_add(win, bx);
100    evas_object_show(bx);
101
102    as = elm_actionslider_add(win);
103    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
104    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
105    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
106    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
107    elm_object_part_text_set(as, "left", "Snooze");
108    elm_object_part_text_set(as, "center", NULL);
109    elm_object_part_text_set(as, "right", "Stop");
110    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
111                                     ELM_ACTIONSLIDER_RIGHT);
112    evas_object_smart_callback_add(as, "pos_changed",
113                                   _position_change_magnetic_cb, NULL);
114    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
115    evas_object_show(as);
116    elm_box_pack_end(bx, as);
117
118    as = elm_actionslider_add(win);
119    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
120    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
121    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
122    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
123    elm_object_part_text_set(as, "left", "Snooze");
124    elm_object_part_text_set(as, "center", NULL);
125    elm_object_part_text_set(as, "right", "Stop");
126    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
127                                     ELM_ACTIONSLIDER_RIGHT);
128    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
129    evas_object_show(as);
130    elm_box_pack_end(bx, as);
131
132    as = elm_actionslider_add(win);
133    elm_object_style_set(as, "bar");
134    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
135    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
136    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
137    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER|
138                                    ELM_ACTIONSLIDER_RIGHT);
139    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_CENTER |
140                                     ELM_ACTIONSLIDER_RIGHT);
141    elm_object_part_text_set(as, "left", NULL);
142    elm_object_part_text_set(as, "center", "Accept");
143    elm_object_part_text_set(as, "right", "Reject");
144    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
145    evas_object_show(as);
146    elm_box_pack_end(bx, as);
147
148    as = elm_actionslider_add(win);
149    elm_object_style_set(as, "bar");
150    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
151    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
152    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
153    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_LEFT);
154    elm_object_part_text_set(as, "left", NULL);
155    elm_object_part_text_set(as, "center", "Accept");
156    elm_object_part_text_set(as, "right", "Reject");
157    elm_object_text_set(as, "Go");
158    evas_object_smart_callback_add(as, "pos_changed",
159                                   _position_change_magnetic_cb, NULL);
160    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
161    evas_object_show(as);
162    elm_box_pack_end(bx, as);
163
164
165    as = elm_actionslider_add(win);
166    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
167    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
168    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
169    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_ALL);
170    elm_object_part_text_set(as, "left", "Left");
171    elm_object_part_text_set(as, "center", "Center");
172    elm_object_part_text_set(as, "right", "Right");
173    elm_object_text_set(as, "Go");
174    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
175    evas_object_show(as);
176    elm_box_pack_end(bx, as);
177
178    as = elm_actionslider_add(win);
179    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
180    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
181    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
182    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
183    elm_object_part_text_set(as, "left", "Enable");
184    elm_object_part_text_set(as, "center", "Magnet");
185    elm_object_part_text_set(as, "right", "Disable");
186    evas_object_smart_callback_add(as, "pos_changed",
187                                   _magnet_enable_disable_cb, NULL);
188    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
189    evas_object_show(as);
190    elm_box_pack_end(bx, as);
191
192    evas_object_resize(win, 320, 400);
193    evas_object_show(win);
194 }
195 #endif