forked from enlightenment/efl
Efl.Ui.Slider: implement Slider.part & Ui.format functions
indicator_format_set/get & indicator_format_function_set are now legacy APIs. indicator format can be set by using generic Ui.Format function e.g. efl_ui_format_string_set(efl_part(sliderObj, "indicator"), "1.0%f");
This commit is contained in:
parent
80b0ef7537
commit
d6c9b37925
|
@ -57,6 +57,7 @@ elm_public_eolian_files = \
|
|||
lib/elementary/efl_ui_multibuttonentry_part.eo \
|
||||
lib/elementary/efl_ui_panes_part.eo \
|
||||
lib/elementary/efl_ui_progressbar_part.eo \
|
||||
lib/elementary/efl_ui_slider_part.eo \
|
||||
lib/elementary/efl_ui_textpath_part.eo \
|
||||
lib/elementary/efl_ui_widget_part.eo \
|
||||
lib/elementary/efl_ui_win_part.eo \
|
||||
|
|
|
@ -44,7 +44,7 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_text_set(efl_added, "Horizontal"),
|
||||
efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_NONE),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(160, 0)),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.5f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.5f"),
|
||||
efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
|
||||
efl_pack(bx, efl_added));
|
||||
|
||||
|
@ -53,7 +53,7 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_text_set(efl_added, "Manual step"),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(120, 0)),
|
||||
efl_ui_format_string_set(efl_added, "%1.1f units"),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.1f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.1f"),
|
||||
efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
|
||||
efl_ui_slider_step_set(efl_added, step),
|
||||
efl_pack(bx, efl_added));
|
||||
|
@ -62,7 +62,7 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_text_set(efl_added, "Disabled"),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(120, 0)),
|
||||
efl_ui_format_string_set(efl_added, "%1.0f units"),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.0f"),
|
||||
efl_ui_range_min_max_set(efl_added, 10, 145),
|
||||
efl_ui_slider_interval_value_set(efl_added, 50, 100),
|
||||
efl_ui_slider_step_set(efl_added, step),
|
||||
|
@ -77,7 +77,7 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_text_set(efl_added, "Vertical"),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(0, 160)),
|
||||
efl_ui_format_string_set(efl_added, "%1.0f units"),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.0f"),
|
||||
efl_ui_range_min_max_set(efl_added, 10, 145),
|
||||
efl_ui_slider_interval_value_set(efl_added, 50, 100),
|
||||
efl_ui_slider_step_set(efl_added, step),
|
||||
|
@ -88,9 +88,8 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_text_set(efl_added, "Disabled"),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(0, 160)),
|
||||
efl_ui_format_string_set(efl_added, "%1.0f units"),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.0f"),
|
||||
efl_ui_range_min_max_set(efl_added, 10, 145),
|
||||
efl_ui_slider_interval_value_set(efl_added, 50, 100),
|
||||
efl_ui_slider_step_set(efl_added, step),
|
||||
efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
|
||||
elm_object_disabled_set(efl_added, EINA_TRUE),
|
||||
|
@ -101,7 +100,7 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS),
|
||||
efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(260, 0)),
|
||||
efl_ui_format_string_set(efl_added, "%1.0f units"),
|
||||
efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
|
||||
efl_ui_format_string_set(efl_part(efl_added, "indicator"), "%1.0f"),
|
||||
efl_ui_range_min_max_set(efl_added, 0, 600),
|
||||
efl_ui_slider_interval_value_set(efl_added, 100, 500),
|
||||
efl_ui_slider_step_set(efl_added, step),
|
||||
|
|
|
@ -38,7 +38,7 @@ _default_format_free_cb(void *data)
|
|||
{
|
||||
Efl_Ui_Format_Data *sd = data;
|
||||
|
||||
if (sd->template)
|
||||
if (sd && sd->template)
|
||||
{
|
||||
eina_stringshare_del(sd->template);
|
||||
sd->template = NULL;
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#include "elm_priv.h"
|
||||
#include "efl_ui_slider_private.h"
|
||||
#include "elm_widget_layout.h"
|
||||
|
||||
#include "efl_ui_slider_part.eo.h"
|
||||
#include "elm_part_helper.h"
|
||||
|
||||
#define MY_CLASS EFL_UI_SLIDER_CLASS
|
||||
|
@ -260,54 +262,35 @@ _indicator_set(Evas_Object *obj)
|
|||
{
|
||||
EFL_UI_SLIDER_DATA_GET(obj, sd);
|
||||
|
||||
if (sd->indicator_format_func)
|
||||
{
|
||||
char *buf;
|
||||
Eina_Value val;
|
||||
const char *str;
|
||||
|
||||
buf = sd->indicator_format_func(sd->val);
|
||||
elm_layout_text_set(obj, "elm.indicator", buf);
|
||||
elm_layout_text_set(obj, "elm.dragable.slider:elm.indicator", buf);
|
||||
if (sd->popup)
|
||||
edje_object_part_text_set(sd->popup, "elm.indicator", buf);
|
||||
if (sd->popup2)
|
||||
{
|
||||
if (sd->indicator_format_free) sd->indicator_format_free(buf);
|
||||
buf = sd->indicator_format_func(sd->intvl_to);
|
||||
elm_layout_text_set(obj, "elm.dragable2.slider:elm.indicator", buf);
|
||||
edje_object_part_text_set(sd->popup2, "elm.indicator", buf);
|
||||
}
|
||||
if (!sd->indi_format_cb) return;
|
||||
|
||||
if (sd->indicator_format_free) sd->indicator_format_free(buf);
|
||||
}
|
||||
else if (sd->indicator)
|
||||
{
|
||||
char buf[1024];
|
||||
eina_value_setup(&val, EINA_VALUE_TYPE_DOUBLE);
|
||||
eina_strbuf_reset(sd->indi_format_strbuf);
|
||||
|
||||
snprintf(buf, sizeof(buf), sd->indicator, sd->val);
|
||||
elm_layout_text_set(obj, "elm.indicator", buf);
|
||||
elm_layout_text_set(obj, "elm.dragable.slider:elm.indicator", buf);
|
||||
if (sd->popup)
|
||||
edje_object_part_text_set(sd->popup, "elm.indicator", buf);
|
||||
if (sd->popup2)
|
||||
{
|
||||
memset(buf, 0, 1024);
|
||||
snprintf(buf, sizeof(buf), sd->indicator, sd->intvl_to);
|
||||
elm_layout_text_set(obj, "elm.dragable2.slider:elm.indicator", buf);
|
||||
edje_object_part_text_set(sd->popup2, "elm.indicator", buf);
|
||||
}
|
||||
}
|
||||
else
|
||||
eina_value_set(&val, sd->val);
|
||||
sd->indi_format_cb(sd->indi_format_cb_data, sd->indi_format_strbuf, val);
|
||||
|
||||
str = eina_strbuf_string_get(sd->indi_format_strbuf);
|
||||
|
||||
elm_layout_text_set(obj, "elm.indicator", str);
|
||||
elm_layout_text_set(obj, "elm.dragable.slider:elm.indicator", str);
|
||||
if (sd->popup)
|
||||
edje_object_part_text_set(sd->popup, "elm.indicator", str);
|
||||
|
||||
if (sd->popup2)
|
||||
{
|
||||
elm_layout_text_set(obj, "elm.indicator", NULL);
|
||||
elm_layout_text_set(obj, "elm.dragable.slider:elm.indicator", NULL);
|
||||
if (sd->popup)
|
||||
edje_object_part_text_set(sd->popup, "elm.indicator", NULL);
|
||||
if (sd->popup2)
|
||||
{
|
||||
elm_layout_text_set(obj, "elm.dragable2.slider:elm.indicator", NULL);
|
||||
edje_object_part_text_set(sd->popup2, "elm.indicator", NULL);
|
||||
}
|
||||
eina_strbuf_reset(sd->indi_format_strbuf);
|
||||
eina_value_set(&val, sd->intvl_to);
|
||||
sd->indi_format_cb(sd->indi_format_cb_data, sd->indi_format_strbuf, val);
|
||||
str = eina_strbuf_string_get(sd->indi_format_strbuf);
|
||||
elm_layout_text_set(obj, "elm.dragable2.slider:elm.indicator", str);
|
||||
edje_object_part_text_set(sd->popup2, "elm.indicator", str);
|
||||
}
|
||||
|
||||
eina_value_flush(&val);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1171,12 +1154,14 @@ _efl_ui_slider_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Slider_Data *priv)
|
|||
EOLIAN static void
|
||||
_efl_ui_slider_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Slider_Data *sd)
|
||||
{
|
||||
eina_stringshare_del(sd->indicator);
|
||||
ecore_timer_del(sd->delay);
|
||||
ecore_timer_del(sd->wheel_indicator_timer);
|
||||
evas_object_del(sd->popup);
|
||||
evas_object_del(sd->popup2);
|
||||
|
||||
ELM_SAFE_FREE(sd->indi_template, eina_stringshare_del);
|
||||
eina_strbuf_free(sd->indi_format_strbuf);
|
||||
|
||||
efl_ui_format_cb_set(obj, NULL, NULL, NULL);
|
||||
eina_strbuf_free(sd->format_strbuf);
|
||||
|
||||
|
@ -1208,19 +1193,6 @@ _efl_ui_slider_efl_ui_direction_direction_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider
|
|||
return sd->dir;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_indicator_format_set(Eo *obj, Efl_Ui_Slider_Data *sd, const char *indicator)
|
||||
{
|
||||
eina_stringshare_replace(&sd->indicator, indicator);
|
||||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
EOLIAN static const char*
|
||||
_efl_ui_slider_indicator_format_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd)
|
||||
{
|
||||
return sd->indicator;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_efl_ui_range_range_min_max_set(Eo *obj, Efl_Ui_Slider_Data *sd, double min, double max)
|
||||
{
|
||||
|
@ -1259,14 +1231,6 @@ _efl_ui_slider_efl_ui_range_range_value_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_D
|
|||
return sd->val;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_indicator_format_function_set(Eo *obj, Efl_Ui_Slider_Data *sd, slider_func_type func, slider_freefunc_type free_func)
|
||||
{
|
||||
sd->indicator_format_func = func;
|
||||
sd->indicator_format_free = free_func;
|
||||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_indicator_show_set(Eo *obj, Efl_Ui_Slider_Data *sd, Eina_Bool show)
|
||||
{
|
||||
|
@ -1477,6 +1441,89 @@ _slider_span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, int size)
|
|||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
/* Efl.Part begin */
|
||||
|
||||
EOLIAN static Eo *
|
||||
_efl_ui_slider_efl_part_part(const Eo *obj, Efl_Ui_Slider_Data *sd EINA_UNUSED, const char *part)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
|
||||
|
||||
if (eina_streq(part, "indicator"))
|
||||
return ELM_PART_IMPLEMENT(EFL_UI_SLIDER_PART_CLASS, obj, part);
|
||||
|
||||
return efl_part(efl_super(obj, MY_CLASS), part);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_part_efl_ui_format_format_cb_set(Eo *obj, void *_pd EINA_UNUSED, void *func_data, Efl_Ui_Format_Func_Cb func, Eina_Free_Cb func_free_cb)
|
||||
{
|
||||
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
|
||||
Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
|
||||
|
||||
if (sd->indi_format_cb_data == func_data && sd->indi_format_cb == func)
|
||||
return;
|
||||
|
||||
if (sd->indi_format_cb_data && sd->indi_format_free_cb)
|
||||
sd->indi_format_free_cb(sd->format_cb_data);
|
||||
|
||||
sd->indi_format_cb = func;
|
||||
sd->indi_format_cb_data = func_data;
|
||||
sd->indi_format_free_cb = func_free_cb;
|
||||
if (!sd->indi_format_strbuf) sd->indi_format_strbuf = eina_strbuf_new();
|
||||
|
||||
efl_canvas_group_change(pd->obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_indi_default_format_cb(void *data, Eina_Strbuf *str, const Eina_Value value)
|
||||
{
|
||||
const Eina_Value_Type *type = eina_value_type_get(&value);
|
||||
Efl_Ui_Slider_Data *sd = data;
|
||||
double v;
|
||||
|
||||
if (type != EINA_VALUE_TYPE_DOUBLE) return;
|
||||
|
||||
eina_value_get(&value, &v);
|
||||
eina_strbuf_append_printf(str, sd->indi_template, v);
|
||||
}
|
||||
|
||||
static void
|
||||
_indi_default_format_free_cb(void *data)
|
||||
{
|
||||
Efl_Ui_Slider_Data *sd = data;
|
||||
|
||||
if (sd && sd->indi_template)
|
||||
{
|
||||
eina_stringshare_del(sd->indi_template);
|
||||
sd->indi_template = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_slider_part_efl_ui_format_format_string_set(Eo *obj, void *_pd EINA_UNUSED, const char *template)
|
||||
{
|
||||
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
|
||||
Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
|
||||
|
||||
if (!template) return;
|
||||
eina_stringshare_replace(&sd->indi_template, template);
|
||||
|
||||
efl_ui_format_cb_set(efl_part(pd->obj, "indicator"), sd, _indi_default_format_cb, _indi_default_format_free_cb);
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
_efl_ui_slider_part_efl_ui_format_format_string_get(Eo *obj, void *_pd EINA_UNUSED)
|
||||
{
|
||||
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
|
||||
Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
|
||||
|
||||
return sd->indi_template;
|
||||
}
|
||||
|
||||
#include "efl_ui_slider_part.eo.c"
|
||||
|
||||
/* Efl.Part end */
|
||||
|
||||
/* Legacy APIs */
|
||||
|
||||
EAPI Evas_Object *
|
||||
|
@ -1670,6 +1717,31 @@ elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max)
|
|||
efl_ui_range_min_max_get(obj, min, max);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator)
|
||||
{
|
||||
efl_ui_format_string_set(efl_part(obj, "indicator"), indicator);
|
||||
}
|
||||
|
||||
EAPI const char *
|
||||
elm_slider_indicator_format_get(const Evas *obj)
|
||||
{
|
||||
return efl_ui_format_string_get(efl_part(obj, "indicator"));
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_slider_indicator_format_function_set(Evas_Object *obj, slider_func_type func, slider_freefunc_type free_func)
|
||||
{
|
||||
Slider_Format_Wrapper_Data *sfwd = malloc(sizeof(Slider_Format_Wrapper_Data));
|
||||
|
||||
sfwd->format_cb = func;
|
||||
sfwd->format_free_cb = free_func;
|
||||
|
||||
efl_ui_format_cb_set(efl_part(obj, "indicator"), sfwd,
|
||||
_format_legacy_to_format_eo_cb,
|
||||
_format_legacy_to_format_eo_free_cb);
|
||||
}
|
||||
|
||||
/* Internal EO APIs and hidden overrides */
|
||||
|
||||
ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_slider)
|
||||
|
|
|
@ -8,46 +8,12 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
|
|||
[[Elementary slider class]]
|
||||
legacy_prefix: elm_slider;
|
||||
methods {
|
||||
@property 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 $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.
|
||||
]]
|
||||
}
|
||||
get {
|
||||
[[Get the indicator label format of the slider.
|
||||
|
||||
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.
|
||||
]]
|
||||
}
|
||||
values {
|
||||
indicator: string @nullable; [[The format string for the indicator display.]]
|
||||
}
|
||||
}
|
||||
@property 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 @.indicator_format.set
|
||||
if you disable indicator.
|
||||
]]
|
||||
}
|
||||
get {
|
||||
|
@ -98,18 +64,6 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
|
|||
indicator_visible_mode: Efl.Ui.Slider.Indicator_Visible_Mode; [[The indicator visible mode.]]
|
||||
}
|
||||
}
|
||||
@property indicator_format_function {
|
||||
set {
|
||||
[[Set the format function pointer for the indicator label
|
||||
|
||||
Set the callback function to format the indicator string.
|
||||
]]
|
||||
}
|
||||
values {
|
||||
func: slider_func_type @nullable; [[The indicator format function.]]
|
||||
free_func: slider_freefunc_type @nullable; [[The freeing function for the format string.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
class.constructor;
|
||||
|
@ -130,6 +84,7 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
|
|||
Efl.Text.Markup.markup { get; set; }
|
||||
Efl.Ui.Format.format_cb { set; }
|
||||
Efl.Ui.Translatable.translatable_text { get; set; }
|
||||
Efl.Part.part;
|
||||
}
|
||||
events {
|
||||
changed; [[Called when slider changed]]
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
class Efl.Ui.Slider.Part (Efl.Ui.Layout.Part, Efl.Ui.Format)
|
||||
{
|
||||
[[Elementary slider internal part class]]
|
||||
data: null;
|
||||
implements {
|
||||
Efl.Ui.Format.format_cb { set; }
|
||||
Efl.Ui.Format.format_string { set; get; }
|
||||
}
|
||||
}
|
|
@ -29,11 +29,6 @@ struct _Efl_Ui_Slider_Data
|
|||
Evas_Object *spacer, *popup, *popup2, *track, *track2;
|
||||
Ecore_Timer *delay;
|
||||
|
||||
const char *indicator;
|
||||
|
||||
char *(*indicator_format_func)(double val);
|
||||
void (*indicator_format_free)(char *str);
|
||||
|
||||
double val, val_min, val_max, val2, step;
|
||||
|
||||
Ecore_Timer *wheel_indicator_timer;
|
||||
|
@ -52,6 +47,13 @@ struct _Efl_Ui_Slider_Data
|
|||
void *format_cb_data;
|
||||
Eina_Strbuf *format_strbuf;
|
||||
|
||||
Efl_Ui_Format_Func_Cb indi_format_cb;
|
||||
Eina_Free_Cb indi_format_free_cb;
|
||||
void *indi_format_cb_data;
|
||||
Eina_Strbuf *indi_format_strbuf;
|
||||
const char *indi_template;
|
||||
|
||||
|
||||
Eina_Bool indicator_show : 1;
|
||||
Eina_Bool spacer_down : 1;
|
||||
Eina_Bool frozen : 1;
|
||||
|
|
|
@ -231,4 +231,56 @@ EAPI void elm_slider_range_set(Evas_Object *obj, double from, double to);
|
|||
*/
|
||||
EAPI void elm_slider_range_get(const Evas_Object *obj, double *from, double *to);
|
||||
|
||||
/**
|
||||
* @brief 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.
|
||||
*
|
||||
* @param[in] obj The object.
|
||||
* @param[in] indicator The format string for the indicator display.
|
||||
*
|
||||
* @ingroup Elm_Slider
|
||||
*/
|
||||
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
|
||||
|
||||
/**
|
||||
* @brief Get the indicator label format of the slider.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* @param[in] obj The object.
|
||||
*
|
||||
* @return The format string for the indicator display.
|
||||
*
|
||||
* @ingroup Elm_Slider
|
||||
*/
|
||||
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj);
|
||||
|
||||
/**
|
||||
* @brief Set the format function pointer for the indicator label
|
||||
*
|
||||
* Set the callback function to format the indicator string.
|
||||
*
|
||||
* @param[in] obj The object.
|
||||
* @param[in] func The indicator format function.
|
||||
* @param[in] free_func The freeing function for the format string.
|
||||
*
|
||||
* @ingroup Elm_Slider
|
||||
*/
|
||||
EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, slider_func_type func, slider_freefunc_type free_func);
|
||||
|
||||
#include "efl_ui_slider.eo.legacy.h"
|
||||
|
|
Loading…
Reference in New Issue