Eolian: Integration of Slider
This commit is contained in:
parent
8fa7b368be
commit
016bf31358
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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); \
|
||||
|
|
Loading…
Reference in New Issue