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