From 016bf31358596db5504c1e3c338634bd4b91ed35 Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Wed, 26 Mar 2014 11:46:20 +0200 Subject: [PATCH] Eolian: Integration of Slider --- legacy/elementary/src/lib/Makefile.am | 10 +- legacy/elementary/src/lib/elm_slider.c | 563 ++++-------------- legacy/elementary/src/lib/elm_slider.eo | 390 ++++++++++++ legacy/elementary/src/lib/elm_slider_eo.h | 11 +- legacy/elementary/src/lib/elm_widget_slider.h | 6 +- 5 files changed, 515 insertions(+), 465 deletions(-) create mode 100644 legacy/elementary/src/lib/elm_slider.eo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 18f585617a..1cf5b1c653 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -644,7 +644,9 @@ BUILT_SOURCES = \ elm_segment_control.eo.c \ elm_segment_control.eo.h \ elm_separator.eo.c \ - elm_separator.eo.h + elm_separator.eo.h \ + elm_slider.eo.c \ + elm_slider.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -706,7 +708,8 @@ EXTRA_DIST += \ elm_route.eo \ elm_scroller.eo \ elm_segment_control.eo \ - elm_separator.eo + elm_separator.eo \ + elm_slider.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -768,5 +771,6 @@ nodist_includesunstable_HEADERS = \ elm_route.eo.h \ elm_scroller.eo.h \ elm_segment_control.eo.h \ - elm_separator.eo.h + elm_separator.eo.h \ + elm_slider.eo.h diff --git a/legacy/elementary/src/lib/elm_slider.c b/legacy/elementary/src/lib/elm_slider.c index a044277723..26906845c7 100644 --- a/legacy/elementary/src/lib/elm_slider.c +++ b/legacy/elementary/src/lib/elm_slider.c @@ -8,8 +8,6 @@ #include "elm_widget_slider.h" #include "elm_widget_layout.h" -EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_SLIDER_CLASS #define MY_CLASS_NAME "Elm_Slider" @@ -352,21 +350,15 @@ _popup_emit(void *data, } } -static void -_elm_slider_smart_event(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_event(Eo *obj, Elm_Slider_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info) { - Evas_Object *src = va_arg(*list, Evas_Object *); - Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type); - void *event_info = va_arg(*list, void *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Slider_Smart_Data *sd = _pd; Evas_Event_Mouse_Wheel *mev; Evas_Event_Key_Down *ev; - if (ret) *ret = EINA_FALSE; (void) src; - if (elm_widget_disabled_get(obj)) return; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (type == EVAS_CALLBACK_KEY_DOWN) goto key_down; else if (type == EVAS_CALLBACK_KEY_UP) @@ -384,13 +376,13 @@ _elm_slider_smart_event(Eo *obj, void *_pd, va_list *list) (!strcmp(ev_up->key, "KP_Down")))) _popup_hide(obj, NULL, NULL, NULL); - return; + return EINA_FALSE; } else if (type != EVAS_CALLBACK_MOUSE_WHEEL) - return; + return EINA_FALSE; mev = event_info; - if (mev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; + if (mev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; if (mev->z < 0) _drag_up(obj, NULL, NULL, NULL); else _drag_down(obj, NULL, NULL, NULL); @@ -400,12 +392,12 @@ _elm_slider_smart_event(Eo *obj, void *_pd, va_list *list) key_down: ev = event_info; - if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; - if (elm_widget_disabled_get(obj)) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; if ((!strcmp(ev->key, "Left")) || ((!strcmp(ev->key, "KP_Left")) && (!ev->string))) { - if (!sd->horizontal) return; + if (!sd->horizontal) return EINA_FALSE; if (!sd->inverted) _drag_down(obj, NULL, NULL, NULL); else _drag_up(obj, NULL, NULL, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; @@ -414,7 +406,7 @@ key_down: else if ((!strcmp(ev->key, "Right")) || ((!strcmp(ev->key, "KP_Right")) && (!ev->string))) { - if (!sd->horizontal) return; + if (!sd->horizontal) return EINA_FALSE; if (!sd->inverted) _drag_up(obj, NULL, NULL, NULL); else _drag_down(obj, NULL, NULL, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; @@ -423,7 +415,7 @@ key_down: else if ((!strcmp(ev->key, "Up")) || ((!strcmp(ev->key, "KP_Up")) && (!ev->string))) { - if (sd->horizontal) return; + if (sd->horizontal) return EINA_FALSE; if (sd->inverted) _drag_up(obj, NULL, NULL, NULL); else _drag_down(obj, NULL, NULL, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; @@ -432,31 +424,26 @@ key_down: else if ((!strcmp(ev->key, "Down")) || ((!strcmp(ev->key, "KP_Down")) && (!ev->string))) { - if (sd->horizontal) return; + if (sd->horizontal) return EINA_FALSE; if (sd->inverted) _drag_down(obj, NULL, NULL, NULL); else _drag_up(obj, NULL, NULL, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; goto success; } - else return; + else return EINA_FALSE; success: _popup_show(obj, NULL, NULL, NULL); _slider_update(obj, EINA_TRUE); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_slider_smart_activate(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_activate(Eo *obj, Elm_Slider_Data *sd, Elm_Activate act) { - Elm_Activate act = va_arg(*list, Elm_Activate); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; - Elm_Slider_Smart_Data *sd = _pd; - - if (elm_widget_disabled_get(obj)) return; - if (act == ELM_ACTIVATE_DEFAULT) return; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; + if (act == ELM_ACTIVATE_DEFAULT) return EINA_FALSE; if ((act == ELM_ACTIVATE_UP) || (act == ELM_ACTIVATE_RIGHT)) @@ -473,7 +460,7 @@ _elm_slider_smart_activate(Eo *obj, void *_pd, va_list *list) _slider_update(obj, EINA_TRUE); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -510,7 +497,7 @@ _track_resize_cb(void *data, } static void -_popup_add(Elm_Slider_Smart_Data *sd, Eo *obj) +_popup_add(Elm_Slider_Data *sd, Eo *obj) { /* if theme has an overlayed slider mode, then lets support it */ if (!edje_object_part_exists(elm_layout_edje_get(obj), "elm.track.slider")) return; @@ -541,15 +528,12 @@ _popup_add(Elm_Slider_Smart_Data *sd, Eo *obj) elm_layout_content_set(obj, "elm.track.slider", sd->track); } -static void -_elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd) { - Elm_Slider_Smart_Data *sd = _pd; - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret; ELM_LAYOUT_DATA_GET(obj, ld); - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); if (sd->horizontal) { @@ -569,7 +553,7 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list) } eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; if (sd->popup) edje_object_scale_set(sd->popup, elm_widget_scale_get(obj) * @@ -609,11 +593,11 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list) evas_object_smart_changed(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_slider_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_slider_elm_layout_sizing_eval(Eo *obj, Elm_Slider_Data *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Coord minw = -1, minh = -1; @@ -785,11 +769,9 @@ _min_max_set(Evas_Object *obj) } } -static void -_elm_slider_smart_calculate(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_slider_evas_smart_calculate(Eo *obj, Elm_Slider_Data *sd) { - Elm_Slider_Smart_Data *sd = _pd; - elm_layout_freeze(obj); if (sd->horizontal) @@ -843,10 +825,9 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj) return NULL; } -static void -_elm_slider_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_slider_evas_smart_add(Eo *obj, Elm_Slider_Data *priv) { - Elm_Slider_Smart_Data *priv = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); @@ -901,11 +882,9 @@ _elm_slider_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) evas_object_smart_changed(obj); } -static void -_elm_slider_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_slider_evas_smart_del(Eo *obj, Elm_Slider_Data *sd) { - Elm_Slider_Smart_Data *sd = _pd; - eina_stringshare_del(sd->indicator); eina_stringshare_del(sd->units); ecore_timer_del(sd->delay); @@ -914,18 +893,16 @@ _elm_slider_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) eo_do_super(obj, MY_CLASS, evas_obj_smart_del()); } -static void -_elm_slider_smart_text_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static const Elm_Layout_Part_Alias_Description* +_elm_slider_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *_pd EINA_UNUSED) { - const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **); - *aliases = _text_aliases; + return _text_aliases; } -static void -_elm_slider_smart_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static const Elm_Layout_Part_Alias_Description* +_elm_slider_elm_layout_content_aliases_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *_pd EINA_UNUSED) { - const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **); - *aliases = _content_aliases; + return _content_aliases; } EAPI Evas_Object * @@ -937,8 +914,8 @@ elm_slider_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_slider_eo_base_constructor(Eo *obj, Elm_Slider_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, @@ -946,20 +923,9 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL)); } -EAPI void -elm_slider_span_size_set(Evas_Object *obj, - Evas_Coord size) +EOLIAN static void +_elm_slider_span_size_set(Eo *obj, Elm_Slider_Data *sd, Evas_Coord size) { - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_span_size_set(size)); -} - -static void -_elm_slider_span_size_set(Eo *obj, void *_pd, va_list *list) -{ - Evas_Coord size = va_arg(*list, Evas_Coord); - Elm_Slider_Smart_Data *sd = _pd; - if (sd->size == size) return; sd->size = size; @@ -979,36 +945,15 @@ _elm_slider_span_size_set(Eo *obj, void *_pd, va_list *list) evas_object_smart_changed(obj); } -EAPI Evas_Coord -elm_slider_span_size_get(const Evas_Object *obj) +EOLIAN static Evas_Coord +_elm_slider_span_size_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) 0; - Evas_Coord ret; - eo_do((Eo *) obj, elm_obj_slider_span_size_get(&ret)); - return ret; + return sd->size; } -static void -_elm_slider_span_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_unit_format_set(Eo *obj, Elm_Slider_Data *sd, const char *units) { - Evas_Coord *ret = va_arg(*list, Evas_Coord *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->size; -} - -EAPI void -elm_slider_unit_format_set(Evas_Object *obj, - const char *units) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_unit_format_set(units)); -} - -static void -_elm_slider_unit_format_set(Eo *obj, void *_pd, va_list *list) -{ - const char *units = va_arg(*list, const char *); - Elm_Slider_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); eina_stringshare_replace(&sd->units, units); @@ -1029,72 +974,28 @@ _elm_slider_unit_format_set(Eo *obj, void *_pd, va_list *list) evas_object_smart_changed(obj); } -EAPI const char * -elm_slider_unit_format_get(const Evas_Object *obj) +EOLIAN static const char* +_elm_slider_unit_format_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) NULL; - const char *ret; - eo_do((Eo *) obj, elm_obj_slider_unit_format_get(&ret)); - return ret; + return sd->units; } -static void -_elm_slider_unit_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_indicator_format_set(Eo *obj, Elm_Slider_Data *sd, const char *indicator) { - const char **ret = va_arg(*list, const char **); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->units; -} - -EAPI void -elm_slider_indicator_format_set(Evas_Object *obj, - const char *indicator) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_indicator_format_set(indicator)); -} - -static void -_elm_slider_indicator_format_set(Eo *obj, void *_pd, va_list *list) -{ - const char *indicator = va_arg(*list, const char *); - Elm_Slider_Smart_Data *sd = _pd; - eina_stringshare_replace(&sd->indicator, indicator); evas_object_smart_changed(obj); } -EAPI const char * -elm_slider_indicator_format_get(const Evas_Object *obj) +EOLIAN static const char* +_elm_slider_indicator_format_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) NULL; - const char *ret; - eo_do((Eo *) obj, elm_obj_slider_indicator_format_get(&ret)); - return ret; + return sd->indicator; } -static void -_elm_slider_indicator_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_horizontal_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool horizontal) { - const char **ret = va_arg(*list, const char **); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->indicator; -} - -EAPI void -elm_slider_horizontal_set(Evas_Object *obj, - Eina_Bool horizontal) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_horizontal_set(horizontal)); -} - -static void -_elm_slider_horizontal_set(Eo *obj, void *_pd, va_list *list) -{ - Eina_Bool horizontal = va_arg(*list, int); - Elm_Slider_Smart_Data *sd = _pd; - horizontal = !!horizontal; if (sd->horizontal == horizontal) return; sd->horizontal = horizontal; @@ -1102,39 +1003,15 @@ _elm_slider_horizontal_set(Eo *obj, void *_pd, va_list *list) eo_do(obj, elm_obj_widget_theme_apply(NULL)); } -EAPI Eina_Bool -elm_slider_horizontal_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_slider_horizontal_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) EINA_FALSE; - Eina_Bool ret; - eo_do((Eo *) obj, elm_obj_slider_horizontal_get(&ret)); - return ret; + return sd->horizontal; } -static void -_elm_slider_horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_min_max_set(Eo *obj, Elm_Slider_Data *sd, double min, double max) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->horizontal; -} - -EAPI void -elm_slider_min_max_set(Evas_Object *obj, - double min, - double max) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_min_max_set(min, max)); -} - -static void -_elm_slider_min_max_set(Eo *obj, void *_pd, va_list *list) -{ - double min = va_arg(*list, double); - double max = va_arg(*list, double); - Elm_Slider_Smart_Data *sd = _pd; - if ((sd->val_min == min) && (sd->val_max == max)) return; sd->val_min = min; sd->val_max = max; @@ -1144,43 +1021,20 @@ _elm_slider_min_max_set(Eo *obj, void *_pd, va_list *list) _visuals_refresh(obj); } -EAPI void -elm_slider_min_max_get(const Evas_Object *obj, - double *min, - double *max) +EOLIAN static void +_elm_slider_min_max_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, double *min, double *max) { - ELM_SLIDER_CHECK(obj); - eo_do((Eo *) obj, elm_obj_slider_min_max_get(min, max)); -} - -static void -_elm_slider_min_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - double *min = va_arg(*list, double *); - double *max = va_arg(*list, double *); if (min) *min = 0.0; if (max) *max = 0.0; - Elm_Slider_Smart_Data *sd = _pd; if (min) *min = sd->val_min; if (max) *max = sd->val_max; } -EAPI void -elm_slider_value_set(Evas_Object *obj, - double val) +EOLIAN static void +_elm_slider_value_set(Eo *obj, Elm_Slider_Data *sd, double val) { - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_value_set(val)); -} - -static void -_elm_slider_value_set(Eo *obj, void *_pd, va_list *list) -{ - double val = va_arg(*list, double); - Elm_Slider_Smart_Data *sd = _pd; - if (sd->val == val) return; sd->val = val; @@ -1190,36 +1044,15 @@ _elm_slider_value_set(Eo *obj, void *_pd, va_list *list) _visuals_refresh(obj); } -EAPI double -elm_slider_value_get(const Evas_Object *obj) +EOLIAN static double +_elm_slider_value_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) 0.0; - double ret; - eo_do((Eo *) obj, elm_obj_slider_value_get(&ret)); - return ret; + return sd->val; } -static void -_elm_slider_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_inverted_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool inverted) { - double *ret = va_arg(*list, double *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->val; -} - -EAPI void -elm_slider_inverted_set(Evas_Object *obj, - Eina_Bool inverted) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_inverted_set(inverted)); -} - -static void -_elm_slider_inverted_set(Eo *obj, void *_pd, va_list *list) -{ - Eina_Bool inverted = va_arg(*list, int); - Elm_Slider_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); inverted = !!inverted; @@ -1244,80 +1077,32 @@ _elm_slider_inverted_set(Eo *obj, void *_pd, va_list *list) _visuals_refresh(obj); } -EAPI Eina_Bool -elm_slider_inverted_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_slider_inverted_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) EINA_FALSE; - Eina_Bool ret; - eo_do((Eo *) obj, elm_obj_slider_inverted_get(&ret)); - return ret; + return sd->inverted; } -static void -_elm_slider_inverted_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_indicator_format_function_set(Eo *obj, Elm_Slider_Data *sd, slider_func_type func, slider_freefunc_type free_func) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->inverted; -} - -EAPI void -elm_slider_indicator_format_function_set(Evas_Object *obj, - char *(*func)(double), - void (*free_func)(char *)) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_indicator_format_function_set(func, free_func)); -} - -static void -_elm_slider_indicator_format_function_set(Eo *obj, void *_pd, va_list *list) -{ - slider_func_type func = va_arg(*list, slider_func_type); - slider_freefunc_type free_func = va_arg(*list, slider_freefunc_type); - Elm_Slider_Smart_Data *sd = _pd; - sd->indicator_format_func = func; sd->indicator_format_free = free_func; evas_object_smart_changed(obj); } -EAPI void -elm_slider_units_format_function_set(Evas_Object *obj, - char *(*func)(double), - void (*free_func)(char *)) +EOLIAN static void +_elm_slider_units_format_function_set(Eo *obj, Elm_Slider_Data *sd, slider_func_type func, slider_freefunc_type free_func) { - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_units_format_function_set(func, free_func)); -} - -static void -_elm_slider_units_format_function_set(Eo *obj, void *_pd, va_list *list) -{ - slider_func_type func = va_arg(*list, slider_func_type); - slider_freefunc_type free_func = va_arg(*list, slider_freefunc_type); - Elm_Slider_Smart_Data *sd = _pd; - sd->units_format_func = func; sd->units_format_free = free_func; evas_object_smart_changed(obj); } -EAPI void -elm_slider_indicator_show_set(Evas_Object *obj, - Eina_Bool show) +EOLIAN static void +_elm_slider_indicator_show_set(Eo *obj, Elm_Slider_Data *sd, Eina_Bool show) { - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_indicator_show_set(show)); -} - -static void -_elm_slider_indicator_show_set(Eo *obj, void *_pd, va_list *list) -{ - Eina_Bool show = va_arg(*list, int); - Elm_Slider_Smart_Data *sd = _pd; - if (show) { sd->indicator_show = EINA_TRUE; @@ -1336,35 +1121,15 @@ _elm_slider_indicator_show_set(Eo *obj, void *_pd, va_list *list) evas_object_smart_changed(obj); } -EAPI Eina_Bool -elm_slider_indicator_show_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_slider_indicator_show_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) EINA_FALSE; - Eina_Bool ret; - eo_do((Eo *) obj, elm_obj_slider_indicator_show_get(&ret)); - return ret; + return sd->indicator_show; } -static void -_elm_slider_indicator_show_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_step_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, double step) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->indicator_show; -} - -EAPI void -elm_slider_step_set(Evas_Object *obj, double step) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_step_set(step)); -} - -static void -_elm_slider_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - double step = va_arg(*list, double); - Elm_Slider_Smart_Data *sd = _pd; if (sd->step == step) return; if (step < 0.0) step = 0.0; @@ -1373,79 +1138,43 @@ _elm_slider_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) sd->step = step; } -EAPI double -elm_slider_step_get(const Evas_Object *obj) +EOLIAN static double +_elm_slider_step_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) 0.0; - double ret; - eo_do((Eo *) obj, elm_obj_slider_step_get(&ret)); - return ret; + return sd->step; } -static void -_elm_slider_step_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, Eina_Bool flag) { - double *ret = va_arg(*list, double *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->step; -} - -EAPI void -elm_slider_indicator_show_on_focus_set(Evas_Object *obj, Eina_Bool flag) -{ - ELM_SLIDER_CHECK(obj); - eo_do(obj, elm_obj_slider_indicator_show_on_focus_set(flag)); -} - -static void -_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Eina_Bool flag = va_arg(*list, int); - Elm_Slider_Smart_Data *sd = _pd; - if (flag) sd->always_popup_show = EINA_TRUE; else sd->always_popup_show = EINA_FALSE; } -EAPI Eina_Bool -elm_slider_indicator_show_on_focus_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd) { - ELM_SLIDER_CHECK(obj) EINA_FALSE; - Eina_Bool ret; - - eo_do((Eo *) obj, elm_obj_slider_indicator_show_on_focus_get(&ret)); - return ret; + return sd->always_popup_show; } -static void -_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Slider_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Slider_Smart_Data *sd = _pd; - *ret = sd->always_popup_show; + return EINA_FALSE; } -static void -_elm_slider_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Slider_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; + return EINA_FALSE; } -static void -_elm_slider_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) -{ - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; -} - -static void -_elm_slider_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static Eina_Bool +_elm_slider_elm_widget_on_focus(Eo *obj, Elm_Slider_Data *sd) { Eina_Bool int_ret; - Elm_Slider_Smart_Data *sd = _pd; eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret)); @@ -1453,92 +1182,14 @@ _elm_slider_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UN _popup_show(obj, NULL, NULL, NULL); else _popup_hide(obj, NULL, NULL, NULL); + + return int_ret; } -static void -_class_constructor(Eo_Class *klass) +EOLIAN static void +_elm_slider_class_constructor(Eo_Class *klass) { - const Eo_Op_Func_Description func_desc[] = { - EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), - - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_slider_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_slider_smart_del), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _elm_slider_smart_calculate), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_slider_smart_theme), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_slider_smart_event), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACTIVATE), _elm_slider_smart_activate), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_slider_smart_focus_next_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_slider_smart_focus_direction_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ON_FOCUS), _elm_slider_smart_on_focus), - - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_slider_smart_sizing_eval), - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_ALIASES_GET), _elm_slider_smart_text_aliases_get), - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_CONTENT_ALIASES_GET), _elm_slider_smart_content_aliases_get), - - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET), _elm_slider_span_size_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET), _elm_slider_span_size_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET), _elm_slider_unit_format_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET), _elm_slider_unit_format_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET), _elm_slider_indicator_format_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET), _elm_slider_indicator_format_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET), _elm_slider_horizontal_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET), _elm_slider_horizontal_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET), _elm_slider_min_max_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET), _elm_slider_min_max_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET), _elm_slider_value_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET), _elm_slider_value_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET), _elm_slider_inverted_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET), _elm_slider_inverted_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET), _elm_slider_indicator_format_function_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET), _elm_slider_units_format_function_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET), _elm_slider_indicator_show_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET), _elm_slider_indicator_show_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_STEP_SET), _elm_slider_step_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_STEP_GET), _elm_slider_step_get), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_SET), _elm_slider_indicator_show_on_focus_set), - EO_OP_FUNC(ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET), _elm_slider_indicator_show_on_focus_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET, "Set the (exact) length of the bar region of a given slider widget."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_GET, "Get the length set for the bar region of a given slider widget."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_SET, "Set the format string for the unit label."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNIT_FORMAT_GET, "Get the unit label format of the slider."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_SET, "Set the format string for the indicator label."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_GET, "Get the indicator label format of the slider."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_SET, "Set the orientation of a given slider widget."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_HORIZONTAL_GET, "Retrieve the orientation of a given slider widget."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_SET, "Set the minimum and maximum values for the slider."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_MIN_MAX_GET, "Get the minimum and maximum values of the slider."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_VALUE_SET, "Set the value the slider displays."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_VALUE_GET, "Get the value displayed by the spinner."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INVERTED_SET, "Invert a given slider widget's displaying values order."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INVERTED_GET, "Get whether a given slider widget's displaying values are inverted or not."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_FORMAT_FUNCTION_SET, "Set the format function pointer for the indicator label."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_UNITS_FORMAT_FUNCTION_SET, "Set the format function pointer for the units label."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_SET, "Set whether to enlarge slider indicator (augmented knob) or not."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_GET, "Get whether a given slider widget's enlarging indicator or not."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_STEP_SET, "Set the draggable's step size."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_STEP_GET, "Get the draggable's step size."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_SET, "Set the visiblity of slider indicator."), - EO_OP_DESCRIPTION(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET, "Get the visiblity of slider indicator."), - EO_OP_DESCRIPTION_SENTINEL -}; -static const Eo_Class_Description class_desc = { - EO_VERSION, - MY_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_SLIDER_BASE_ID, op_desc, ELM_OBJ_SLIDER_SUB_ID_LAST), - NULL, - sizeof(Elm_Slider_Smart_Data), - _class_constructor, - NULL -}; - -EO_DEFINE_CLASS(elm_obj_slider_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL); +#include "elm_slider.eo.c" diff --git a/legacy/elementary/src/lib/elm_slider.eo b/legacy/elementary/src/lib/elm_slider.eo new file mode 100644 index 0000000000..2bd8d9f273 --- /dev/null +++ b/legacy/elementary/src/lib/elm_slider.eo @@ -0,0 +1,390 @@ +class Elm_Slider (Elm_Layout) +{ + eo_prefix: elm_obj_slider; + properties { + horizontal { + set { + /*@ + Set the orientation of a given slider widget. + + Use this function to change how your slider is to be + disposed: vertically or horizontally. + + By default it's displayed horizontally. + + @see elm_slider_horizontal_get() + + @ingroup Slider */ + } + get { + /*@ + Retrieve the orientation of a given slider widget + + @return @c EINA_TRUE, if @p obj is set to be @b horizontal, + @c EINA_FALSE if it's @b vertical (and on errors). + + @see elm_slider_horizontal_set() for more details. + + @ingroup Slider */ + } + values { + Eina_Bool horizontal; /*@ Use @c EINA_TRUE to make @p obj to be + @b horizontal, @c EINA_FALSE to make it @b vertical. */ + } + } + value { + set { + /*@ + Set the value the slider displays. + + Value will be presented on the unit label following format specified with + elm_slider_unit_format_set() and on indicator with + elm_slider_indicator_format_set(). + + @warning The value must to be between min and max values. This values + are set by elm_slider_min_max_set(). + + @see elm_slider_value_get() + @see elm_slider_unit_format_set() + @see elm_slider_indicator_format_set() + @see elm_slider_min_max_set() + + @ingroup Slider */ + } + get { + /*@ + Get the value displayed by the slider. + + @return The value displayed. + + @see elm_slider_value_set() for details. + + @ingroup Slider */ + } + values { + double val; /*@ The value to be displayed. */ + } + } + indicator_format { + set { + /*@ + Set the format string for the indicator label. + + The slider may display its value somewhere else then unit label, + for example, above the slider knob that is dragged around. This function + sets the format string used for this. + + If @c NULL, indicator label won't be visible. If not it sets the format + string for the label text. To the label text is provided a floating point + value, so the label text can display up to 1 floating point value. + Note that this is optional. + + Use a format string such as "%1.2f meters" for example, and it will + display values like: "3.14 meters" for a value equal to 3.14159. + + Default is indicator label disabled. + + @see elm_slider_indicator_format_get() + + @ingroup Slider */ + } + get { + /*@ + Get the indicator label format of the slider. + + @return The indicator label format string in UTF-8. + + The slider may display its value somewhere else then unit label, + for example, above the slider knob that is dragged around. This function + gets the format string used for this. + + @see elm_slider_indicator_format_set() for more + information on how this works. + + @ingroup Slider */ + } + values { + const char *indicator; /*@ The format string for the indicator display. */ + } + } + inverted { + set { + /*@ + Invert a given slider widget's displaying values order + + A slider may be @b inverted, in which state it gets its + values inverted, with high vales being on the left or top and + low values on the right or bottom, as opposed to normally have + the low values on the former and high values on the latter, + respectively, for horizontal and vertical modes. + + @see elm_slider_inverted_get() + + @ingroup Slider */ + } + get { + /*@ + Get whether a given slider widget's displaying values are + inverted or not. + + @return @c EINA_TRUE, if @p obj has inverted values, + @c EINA_FALSE otherwise (and on errors). + + @see elm_slider_inverted_set() for more details. + + @ingroup Slider */ + } + values { + Eina_Bool inverted; /*@ Use @c EINA_TRUE to make @p obj inverted, + @c EINA_FALSE to bring it back to default, non-inverted values. */ + } + } + indicator_show { + set { + /*@ + Set whether to enlarge slider indicator (augmented knob) or not. + + By default, indicator will be bigger while dragged by the user. + + @warning It won't display values set with + elm_slider_indicator_format_set() if you disable indicator. + + @ingroup Slider */ + } + get { + /*@ + Get whether a given slider widget's enlarging indicator or not. + + @return @c EINA_TRUE, if @p obj is enlarging indicator, or + @c EINA_FALSE otherwise (and on errors). + + @see elm_slider_indicator_show_set() for details. + + @ingroup Slider */ + } + values { + Eina_Bool show; /*@ @c EINA_TRUE will make it enlarge, @c EINA_FALSE will + let the knob always at default size. */ + } + } + min_max { + set { + /*@ + Set the minimum and maximum values for the slider. + + Define the allowed range of values to be selected by the user. + + If actual value is less than @p min, it will be updated to @p min. If it + is bigger then @p max, will be updated to @p max. Actual value can be + get with elm_slider_value_get(). + + By default, min is equal to 0.0, and max is equal to 1.0. + + @warning Maximum must be greater than minimum, otherwise behavior + is undefined. + + @see elm_slider_min_max_get() + + @ingroup Slider */ + } + get { + /*@ + Get the minimum and maximum values of the slider. + + @note If only one value is needed, the other pointer can be passed + as @c NULL. + + @see elm_slider_min_max_set() for details. + + @ingroup Slider */ + } + values { + double min; /*@ The minimum value. */ + double max; /*@ The maximum value. */ + } + } + unit_format { + set { + /*@ + Set the format string for the unit label. + + Unit label is displayed all the time, if set, after slider's bar. + In horizontal mode, at right and in vertical mode, at bottom. + + If @c NULL, unit label won't be visible. If not it sets the format + string for the label text. To the label text is provided a floating point + value, so the label text can display up to 1 floating point value. + Note that this is optional. + + Use a format string such as "%1.2f meters" for example, and it will + display values like: "3.14 meters" for a value equal to 3.14159. + + Default is unit label disabled. + + @see elm_slider_indicator_format_get() + + @ingroup Slider */ + } + get { + /*@ + Get the unit label format of the slider. + + @return The unit label format string in UTF-8. + + Unit label is displayed all the time, if set, after slider's bar. + In horizontal mode, at right and in vertical mode, at bottom. + + @see elm_slider_unit_format_set() for more + information on how this works. + + @ingroup Slider */ + } + values { + const char *units; /*@ The format string for the unit display. */ + } + } + indicator_show_on_focus { + set { + /*@ + Show the indicator of slider on focus + + @ingroup Slider */ + } + get { + /*@ + Get whether the indicator of the slider is set or not + + @return @c EINA_TRUE, if indicator is set + @c EINA_FALSE otherwise. + + @ingroup Slider */ + } + values { + Eina_Bool flag; /*@ @ EINA_TRUE sets the indicator visible */ + } + } + span_size { + set { + /*@ + Set the (exact) length of the bar region of a given slider widget. + + This sets the minimum width (when in horizontal mode) or height + (when in vertical mode) of the actual bar area of the slider + @p obj. This in turn affects the object's minimum size. Use + this when you're not setting other size hints expanding on the + given direction (like weight and alignment hints) and you would + like it to have a specific size. + + @note Icon, end, label, indicator and unit text around @p obj + will require their + own space, which will make @p obj to require more the @p size, + actually. + + @see elm_slider_span_size_get() + + @ingroup Slider */ + } + get { + /*@ + Get the length set for the bar region of a given slider widget + + @return The length of the slider's bar region. + + If that size was not set previously, with + elm_slider_span_size_set(), this call will return @c 0. + + @ingroup Slider */ + } + values { + Evas_Coord size; /*@ The length of the slider's bar region. */ + } + } + step { + set { + /*@ + Set the step by which slider indicator will move. + + This value is used when draggable object is moved automatically i.e., in case + of key event when up/down/left/right key is pressed or in case when + accessibility is set and flick event is used to inc/dec slider values. + By default step value is equal to 0.05. + + @see elm_slider_step_get() for more details. + + @ingroup Slider */ + } + get { + /*@ + Get the step by which slider indicator moves. + + @return The step value. + + @see elm_slider_step_set() for more details. + + @ingroup Slider */ + } + values { + double step; /*@ The step value. */ + } + } + indicator_format_function { + set { + /*@ + Set the format function pointer for the indicator label + + Set the callback function to format the indicator string. + + @see elm_slider_indicator_format_set() for more info on how this works. + + @ingroup Slider */ + } + values { + slider_func_type func; /*@ The indicator format function. */ + slider_freefunc_type free_func; /*@ The freeing function for the format string. */ + } + } + units_format_function { + set { + /*@ + Set the format function pointer for the units label + + Set the callback function to format the units string. + + @see elm_slider_unit_format_set() for more info on how this works. + + @ingroup Slider */ + } + values { + slider_func_type func; /*@ The units format function. */ + slider_freefunc_type free_func; /*@ The freeing function for the format string. */ + } + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::calculate; + Evas_Smart::add; + Evas_Smart::del; + Elm_Widget::theme_apply; + Elm_Widget::activate; + Elm_Widget::focus_next_manager_is; + Elm_Widget::focus_direction_manager_is; + Elm_Widget::on_focus; + Elm_Widget::event; + Elm_Layout::text_aliases::get; + Elm_Layout::content_aliases::get; + Elm_Layout::sizing_eval; + } + events { + changed; + delay,changed; + slider,drag,start; + slider,drag,stop; + language,changed; + access,changed; + focused; + unfocused; + } + +} diff --git a/legacy/elementary/src/lib/elm_slider_eo.h b/legacy/elementary/src/lib/elm_slider_eo.h index fdcc3d5188..b431fdc423 100644 --- a/legacy/elementary/src/lib/elm_slider_eo.h +++ b/legacy/elementary/src/lib/elm_slider_eo.h @@ -1,12 +1,15 @@ +typedef char *(*slider_func_type)(double); +typedef void (*slider_freefunc_type)(char *); + +#include "elm_slider.eo.h" + +#if 0 #define ELM_OBJ_SLIDER_CLASS elm_obj_slider_class_get() const Eo_Class *elm_obj_slider_class_get(void) EINA_CONST; extern EAPI Eo_Op ELM_OBJ_SLIDER_BASE_ID; -typedef char *(*slider_func_type)(double); -typedef void (*slider_freefunc_type)(char *); - enum { ELM_OBJ_SLIDER_SUB_ID_SPAN_SIZE_SET, @@ -356,3 +359,5 @@ enum * @ingroup Slider */ #define elm_obj_slider_indicator_show_on_focus_get(ret) ELM_OBJ_SLIDER_ID(ELM_OBJ_SLIDER_SUB_ID_INDICATOR_SHOW_ON_FOCUS_GET), EO_TYPECHECK(Eina_Bool*, ret) + +#endif diff --git a/legacy/elementary/src/lib/elm_widget_slider.h b/legacy/elementary/src/lib/elm_widget_slider.h index 8f9f14b07b..287ed9f642 100644 --- a/legacy/elementary/src/lib/elm_widget_slider.h +++ b/legacy/elementary/src/lib/elm_widget_slider.h @@ -17,8 +17,8 @@ /** * Base layout smart data extended with slider instance data. */ -typedef struct _Elm_Slider_Smart_Data Elm_Slider_Smart_Data; -struct _Elm_Slider_Smart_Data +typedef struct _Elm_Slider_Data Elm_Slider_Data; +struct _Elm_Slider_Data { Evas_Object *spacer, *popup, *track; Ecore_Timer *delay; @@ -52,7 +52,7 @@ struct _Elm_Slider_Smart_Data */ #define ELM_SLIDER_DATA_GET(o, sd) \ - Elm_Slider_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDER_CLASS) + Elm_Slider_Data * sd = eo_data_scope_get(o, ELM_OBJ_SLIDER_CLASS) #define ELM_SLIDER_DATA_GET_OR_RETURN(o, ptr) \ ELM_SLIDER_DATA_GET(o, ptr); \