elm_slider: remove dependency with efl_ui_slider
Summary: This commit includes follwoing works. 1. change parent class from EFL_UI_SLIDER_INTERVAL to EFL_UI_LAYOUT_BASE 2. get all necessary codes from efl_ui_slider and efl_ui_slider_interval to elm_slider 3. add callbacks to slider test code ref T7893 Test Plan: 1. elementary_test 2. slider 3. operate sliders on the window Reviewers: bu5hm4n, segfaultxavi, eagleeye, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7893 Differential Revision: https://phab.enlightenment.org/D9623
This commit is contained in:
parent
81a7b79235
commit
ebae12f06a
|
@ -24,6 +24,18 @@ _change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|||
elm_slider_value_set(data, val);
|
||||
}
|
||||
|
||||
void
|
||||
_drag_start_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
printf("drag,started! slider value : %d\n", (int)round(elm_slider_value_get(obj)));
|
||||
}
|
||||
|
||||
void
|
||||
_drag_stop_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
printf("drag,stopped! slider value : %d\n", (int)round(elm_slider_value_get(obj)));
|
||||
}
|
||||
|
||||
static void
|
||||
_ok_btn_clicked(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
|
@ -244,6 +256,10 @@ test_slider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
|
|||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
evas_object_smart_callback_add(sl, "slider,drag,start", _drag_start_cb, NULL);
|
||||
evas_object_smart_callback_add(sl, "slider,drag,stop", _drag_stop_cb, NULL);
|
||||
|
||||
|
||||
// horizontally inverted slider
|
||||
ic = elm_icon_add(bx);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -86,4 +86,4 @@ static const Efl_Class_Description _elm_slider_class_desc = {
|
|||
NULL
|
||||
};
|
||||
|
||||
EFL_DEFINE_CLASS(elm_slider_class_get, &_elm_slider_class_desc, EFL_UI_SLIDER_INTERVAL_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, EFL_TEXT_INTERFACE, EFL_TEXT_MARKUP_INTERFACE, EFL_UI_FORMAT_MIXIN, NULL);
|
||||
EFL_DEFINE_CLASS(elm_slider_class_get, &_elm_slider_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, EFL_TEXT_INTERFACE, EFL_TEXT_MARKUP_INTERFACE, EFL_UI_FORMAT_MIXIN, NULL);
|
||||
|
|
|
@ -26,10 +26,18 @@
|
|||
typedef struct _Elm_Slider_Data Elm_Slider_Data;
|
||||
struct _Elm_Slider_Data
|
||||
{
|
||||
Evas_Object *popup, *popup2, *track, *track2;
|
||||
Evas_Object *popup, *popup2, *track, *track2, *spacer;
|
||||
|
||||
double val, val_min, val_max, step;
|
||||
double intvl_from, intvl_to;
|
||||
double wheel_indicator_duration;
|
||||
int intvl_flag;
|
||||
|
||||
Evas_Coord downx, downy;
|
||||
Efl_Ui_Layout_Orientation dir;
|
||||
|
||||
Ecore_Timer *wheel_indicator_timer, *delay;
|
||||
double wheel_indicator_duration;
|
||||
|
||||
Elm_Slider_Indicator_Visible_Mode indicator_visible_mode; /**< indicator_visible_mode of the slider.
|
||||
This indicates when to show an indicator */
|
||||
|
||||
|
@ -52,6 +60,7 @@ struct _Elm_Slider_Data
|
|||
Eina_Bool popup_visible : 1;
|
||||
Eina_Bool intvl_enable : 1;
|
||||
Eina_Bool spacer_down : 1;
|
||||
Eina_Bool frozen : 1;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -98,6 +98,10 @@ slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_U
|
|||
if (event_counter == 1)
|
||||
evas_object_smart_callback_del(obj, "changed", slider_changed);
|
||||
else if (event_counter == 2)
|
||||
evas_object_smart_callback_del(obj, "slider,drag,start", slider_changed);
|
||||
else if (event_counter == 3)
|
||||
evas_object_smart_callback_del(obj, "slider,drag,stop", slider_changed);
|
||||
else if (event_counter == 4)
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
|
@ -112,6 +116,8 @@ EFL_START_TEST(elm_slider_events)
|
|||
slider = elm_slider_add(win);
|
||||
evas_object_smart_callback_add(slider, "changed", slider_changed, NULL);
|
||||
evas_object_smart_callback_add(slider, "delay,changed", slider_changed, NULL);
|
||||
evas_object_smart_callback_add(slider, "slider,drag,start", slider_changed, NULL);
|
||||
evas_object_smart_callback_add(slider, "slider,drag,stop", slider_changed, NULL);
|
||||
evas_object_show(slider);
|
||||
evas_object_show(win);
|
||||
evas_object_resize(slider, 400, 100);
|
||||
|
@ -131,7 +137,7 @@ EFL_START_TEST(elm_slider_events)
|
|||
evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL);
|
||||
evas_event_feed_mouse_up(e, 1, 0, 0, NULL);
|
||||
ecore_main_loop_begin();
|
||||
ck_assert_int_eq(event_counter, 2);
|
||||
ck_assert_int_eq(event_counter, 4);
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
|
|
Loading…
Reference in New Issue