Merge "[Password]: New design based changes, a new style removed password mode contro...
[framework/uifw/elementary.git] / src / examples / actionslider_example_01.c
1 //Compile with:
2 //gcc -g `pkg-config --cflags --libs elementary` actionslider_example_01.c -o actionslider_example_01
3
4 #include <Elementary.h>
5 #ifdef HAVE_CONFIG_H
6 # include "elementary_config.h"
7 #else
8 # define __UNUSED__
9 #endif
10
11 static void _pos_selected_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
12 {
13    printf("Selection: %s\n", (char *)event_info);
14    printf("Label selected: %s\n", elm_actionslider_selected_label_get(obj));
15 }
16
17 static void
18 _position_change_magnetic_cb(void *data __UNUSED__, Evas_Object * obj, void *event_info)
19 {
20    if (!strcmp((char *)event_info, "left"))
21      elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_LEFT);
22    else if (!strcmp((char *)event_info, "right"))
23      elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_RIGHT);
24 }
25
26 static void
27 _magnet_enable_disable_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
28 {
29    if (!strcmp((char *)event_info, "left"))
30       elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_CENTER);
31    else if (!strcmp((char *)event_info, "right"))
32       elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_NONE);
33 }
34
35 static void
36 on_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
37 {
38    elm_exit();
39 }
40
41 EAPI int
42 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
43 {
44    Evas_Object *win, *bg, *bx, *as;
45
46    win = elm_win_add(NULL, "actionslider", ELM_WIN_BASIC);
47    elm_win_title_set(win, "Actionslider");
48    evas_object_smart_callback_add(win, "delete,request", on_done, NULL);
49
50    bg = elm_bg_add(win);
51    elm_win_resize_object_add(win, bg);
52    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, 0);
53    evas_object_show(bg);
54
55    bx = elm_box_add(win);
56    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0);
57    elm_win_resize_object_add(win, bx);
58    evas_object_show(bx);
59
60    as = elm_actionslider_add(win);
61    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
62    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
63    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
64    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
65    //elm_actionslider_labels_set(as, "Snooze", NULL, "Stop");
66    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
67                                     ELM_ACTIONSLIDER_RIGHT);
68    evas_object_smart_callback_add(as, "pos_changed",
69                                   _position_change_magnetic_cb, NULL);
70    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
71    evas_object_show(as);
72    elm_box_pack_end(bx, as);
73
74    as = elm_actionslider_add(win);
75    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
76    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
77    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
78    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
79    //elm_actionslider_labels_set(as, "Snooze", NULL, "Stop");
80    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
81                                     ELM_ACTIONSLIDER_RIGHT);
82    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
83    evas_object_show(as);
84    elm_box_pack_end(bx, as);
85
86    as = elm_actionslider_add(win);
87    elm_object_style_set(as, "bar");
88    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
89    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
90    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
91    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER|
92                                    ELM_ACTIONSLIDER_RIGHT);
93    elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_CENTER |
94                                     ELM_ACTIONSLIDER_RIGHT);
95    //elm_actionslider_labels_set(as, NULL, "Accept", "Reject");
96    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
97    evas_object_show(as);
98    elm_box_pack_end(bx, as);
99
100    as = elm_actionslider_add(win);
101    elm_object_style_set(as, "bar");
102    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
103    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
104    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
105    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_LEFT);
106    //elm_actionslider_labels_set(as, NULL, "Accept", "Reject");
107    elm_actionslider_indicator_label_set(as, "Go");
108    evas_object_smart_callback_add(as, "pos_changed",
109                                   _position_change_magnetic_cb, NULL);
110    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
111    evas_object_show(as);
112    elm_box_pack_end(bx, as);
113
114
115    as = elm_actionslider_add(win);
116    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
117    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
118    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
119    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_ALL);
120    //elm_actionslider_labels_set(as, "Left", "Center", "Right");
121    elm_actionslider_indicator_label_set(as, "Go");
122    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
123    evas_object_show(as);
124    elm_box_pack_end(bx, as);
125
126    as = elm_actionslider_add(win);
127    evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
128    evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
129    elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
130    elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
131    //elm_actionslider_labels_set(as, "Enable", "Magnet", "Disable");
132    evas_object_smart_callback_add(as, "pos_changed",
133                                   _magnet_enable_disable_cb, NULL);
134    evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
135    evas_object_show(as);
136    elm_box_pack_end(bx, as);
137
138    evas_object_resize(win, 320, 400);
139    evas_object_show(win);
140
141    elm_run();
142    return 0;
143 }
144 ELM_MAIN()