New API functions for elm slider.
EAPI void elm_slider_end_set(Evas_Object *obj, Evas_Object *end); will set a *right* aligned sub-object relative to the slider. EAPI const Evas_Object *elm_slider_end_get(const Evas_Object *obj); Getter for that object. EAPI Evas_Object *elm_slider_end_unset(Evas_Object *obj); Unparent a previously set end object. EAPI Evas_Object *elm_slider_icon_unset(Evas_Object *obj); The same for the icon sub-object. EAPI void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show); EAPI Eina_Bool elm_slider_indicator_show_get(const Evas_Object *obj); Set/get whether the slider should display the augmented knob (indicator) at mouse drag at all. SVN revision: 52852
This commit is contained in:
parent
a0541d1687
commit
e930af1ad9
|
@ -11311,6 +11311,40 @@ collections {
|
|||
image: "sl_bt2_2.png" COMP;
|
||||
image: "sl_units.png" COMP;
|
||||
}
|
||||
script {
|
||||
public value_hide = 0;
|
||||
public set_value_show() {
|
||||
set_int(value_hide, 0);
|
||||
}
|
||||
public set_value_hide() {
|
||||
set_int(value_hide, 1);
|
||||
}
|
||||
public thumb_down() {
|
||||
if (get_int(value_hide) == 1) {
|
||||
set_state(PART:"elm.indicator", "default", 0.0);
|
||||
set_state(PART:"button3", "default", 0.0);
|
||||
set_state(PART:"button4", "default", 0.0);
|
||||
set_state(PART:"button5", "default", 0.0);
|
||||
set_state(PART:"button6", "default", 0.0);
|
||||
set_state(PART:"button7", "default", 0.0);
|
||||
} else {
|
||||
set_state(PART:"elm.indicator", "visible", 0.0);
|
||||
set_state(PART:"button3", "visible", 0.0);
|
||||
set_state(PART:"button4", "visible", 0.0);
|
||||
set_state(PART:"button5", "visible", 0.0);
|
||||
set_state(PART:"button6", "visible", 0.0);
|
||||
set_state(PART:"button7", "visible", 0.0);
|
||||
}
|
||||
}
|
||||
public thumb_up() {
|
||||
set_state(PART:"elm.indicator", "default", 0.0);
|
||||
set_state(PART:"button3", "default", 0.0);
|
||||
set_state(PART:"button4", "default", 0.0);
|
||||
set_state(PART:"button5", "default", 0.0);
|
||||
set_state(PART:"button6", "default", 0.0);
|
||||
set_state(PART:"button7", "default", 0.0);
|
||||
}
|
||||
}
|
||||
parts {
|
||||
part { name: "base";
|
||||
mouse_events: 0;
|
||||
|
@ -11409,7 +11443,7 @@ collections {
|
|||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.content";
|
||||
part { name: "elm.swallow.icon";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
visible: 0;
|
||||
|
@ -11440,10 +11474,10 @@ collections {
|
|||
visible: 0;
|
||||
fixed: 1 1;
|
||||
align: 0.0 0.5;
|
||||
rel1.to_x: "elm.swallow.content";
|
||||
rel1.to_x: "elm.swallow.icon";
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel1.offset: -1 4;
|
||||
rel2.to_x: "elm.swallow.content";
|
||||
rel2.to_x: "elm.swallow.icon";
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.offset: -1 -5;
|
||||
color: 0 0 0 255;
|
||||
|
@ -11462,6 +11496,31 @@ collections {
|
|||
rel2.offset: 0 -5;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "elm.swallow.end";
|
||||
type: SWALLOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
visible: 0;
|
||||
align: 1.0 0.5;
|
||||
rel1 {
|
||||
offset: -4 0;
|
||||
relative: 1.0 0.0;
|
||||
to_y: "elm.swallow.bar";
|
||||
}
|
||||
rel2 {
|
||||
offset: -3 -1;
|
||||
to_y: "elm.swallow.bar";
|
||||
}
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
aspect: 1.0 1.0;
|
||||
aspect_preference: VERTICAL;
|
||||
rel2.offset: -4 -1;
|
||||
}
|
||||
}
|
||||
part { name: "units";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
|
@ -11470,6 +11529,10 @@ collections {
|
|||
to_x: "elm.units";
|
||||
offset: 0 5;
|
||||
}
|
||||
rel2 {
|
||||
to_x: "elm.units";
|
||||
offset: 5 -3;
|
||||
}
|
||||
image {
|
||||
normal: "sl_units.png";
|
||||
border: 0 5 3 8;
|
||||
|
@ -11489,9 +11552,11 @@ collections {
|
|||
visible: 0;
|
||||
fixed: 1 1;
|
||||
align: 1.0 0.5;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel1.offset: 0 8;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel1.to_x: "elm.swallow.end";
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel1.offset: 0 8;
|
||||
rel2.to_x: "elm.swallow.end";
|
||||
rel2.relative: 0.0 1.0;
|
||||
rel2.offset: 0 -9;
|
||||
color: 0 0 0 255;
|
||||
text {
|
||||
|
@ -11766,13 +11831,25 @@ collections {
|
|||
signal: "elm,state,icon,visible";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.content";
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "icon_hide";
|
||||
signal: "elm,state,icon,hidden";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.content";
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "end_show";
|
||||
signal: "elm,state,end,visible";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "end_hide";
|
||||
signal: "elm,state,end,hidden";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "units_show";
|
||||
signal: "elm,state,units,visible";
|
||||
|
@ -11802,27 +11879,34 @@ collections {
|
|||
target: "level";
|
||||
target: "level2";
|
||||
}
|
||||
program { name: "set_val_show";
|
||||
signal: "elm,state,val,show";
|
||||
source: "elm";
|
||||
script {
|
||||
set_value_show();
|
||||
}
|
||||
}
|
||||
program { name: "set_val_hide";
|
||||
signal: "elm,state,val,hide";
|
||||
source: "elm";
|
||||
script {
|
||||
set_value_hide();
|
||||
}
|
||||
}
|
||||
program { name: "val_show";
|
||||
signal: "mouse,down,*";
|
||||
source: "elm.dragable.slider";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.indicator";
|
||||
target: "button3";
|
||||
target: "button4";
|
||||
target: "button5";
|
||||
target: "button6";
|
||||
target: "button7";
|
||||
script {
|
||||
thumb_down();
|
||||
}
|
||||
|
||||
}
|
||||
program { name: "val_hide";
|
||||
signal: "mouse,up,*";
|
||||
source: "elm.dragable.slider";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.indicator";
|
||||
target: "button3";
|
||||
target: "button4";
|
||||
target: "button5";
|
||||
target: "button6";
|
||||
target: "button7";
|
||||
script {
|
||||
thumb_up();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11843,6 +11927,40 @@ collections {
|
|||
|
||||
image: "slv_units.png" COMP;
|
||||
}
|
||||
script {
|
||||
public value_hide = 0;
|
||||
public set_value_show() {
|
||||
set_int(value_hide, 0);
|
||||
}
|
||||
public set_value_hide() {
|
||||
set_int(value_hide, 1);
|
||||
}
|
||||
public thumb_down() {
|
||||
if (get_int(value_hide) == 1) {
|
||||
set_state(PART:"elm.indicator", "default", 0.0);
|
||||
set_state(PART:"button3", "default", 0.0);
|
||||
set_state(PART:"button4", "default", 0.0);
|
||||
set_state(PART:"button5", "default", 0.0);
|
||||
set_state(PART:"button6", "default", 0.0);
|
||||
set_state(PART:"button7", "default", 0.0);
|
||||
} else {
|
||||
set_state(PART:"elm.indicator", "visible", 0.0);
|
||||
set_state(PART:"button3", "visible", 0.0);
|
||||
set_state(PART:"button4", "visible", 0.0);
|
||||
set_state(PART:"button5", "visible", 0.0);
|
||||
set_state(PART:"button6", "visible", 0.0);
|
||||
set_state(PART:"button7", "visible", 0.0);
|
||||
}
|
||||
}
|
||||
public thumb_up() {
|
||||
set_state(PART:"elm.indicator", "default", 0.0);
|
||||
set_state(PART:"button3", "default", 0.0);
|
||||
set_state(PART:"button4", "default", 0.0);
|
||||
set_state(PART:"button5", "default", 0.0);
|
||||
set_state(PART:"button6", "default", 0.0);
|
||||
set_state(PART:"button7", "default", 0.0);
|
||||
}
|
||||
}
|
||||
parts {
|
||||
part { name: "base";
|
||||
mouse_events: 0;
|
||||
|
@ -11941,7 +12059,7 @@ collections {
|
|||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.content";
|
||||
part { name: "elm.swallow.icon";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
visible: 0;
|
||||
|
@ -11972,10 +12090,10 @@ collections {
|
|||
visible: 0;
|
||||
fixed: 1 1;
|
||||
align: 0.5 0.0;
|
||||
rel1.to_y: "elm.swallow.content";
|
||||
rel1.to_y: "elm.swallow.icon";
|
||||
rel1.relative: 0.5 1.0;
|
||||
rel1.offset: 0 -1;
|
||||
rel2.to_y: "elm.swallow.content";
|
||||
rel2.to_y: "elm.swallow.icon";
|
||||
rel2.relative: 0.5 1.0;
|
||||
rel2.offset: -1 -1;
|
||||
color: 0 0 0 255;
|
||||
|
@ -11994,6 +12112,31 @@ collections {
|
|||
rel2.offset: -5 0;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "elm.swallow.end";
|
||||
type: SWALLOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
visible: 0;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
offset: 0 -4;
|
||||
relative: 0.0 1.0;
|
||||
to_x: "elm.swallow.bar";
|
||||
}
|
||||
rel2 {
|
||||
offset: -1 -3;
|
||||
to_x: "elm.swallow.bar";
|
||||
}
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
aspect: 1.0 1.0;
|
||||
aspect_preference: HORIZONTAL;
|
||||
rel2.offset: -1 -4;
|
||||
}
|
||||
}
|
||||
part { name: "units";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
|
@ -12025,9 +12168,11 @@ collections {
|
|||
visible: 0;
|
||||
fixed: 1 1;
|
||||
align: 0.5 1.0;
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel1.to_y: "elm.swallow.end";
|
||||
rel1.offset: 8 0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.to_y: "elm.swallow.end";
|
||||
rel2.offset: -9 0;
|
||||
color: 0 0 0 255;
|
||||
text {
|
||||
|
@ -12301,13 +12446,25 @@ collections {
|
|||
signal: "elm,state,icon,visible";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.content";
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "icon_hide";
|
||||
signal: "elm,state,icon,hidden";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.content";
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "end_show";
|
||||
signal: "elm,state,end,visible";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "end_hide";
|
||||
signal: "elm,state,end,hidden";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "units_show";
|
||||
signal: "elm,state,units,visible";
|
||||
|
@ -12337,27 +12494,33 @@ collections {
|
|||
target: "level";
|
||||
target: "level2";
|
||||
}
|
||||
program { name: "set_val_show";
|
||||
signal: "elm,state,val,show";
|
||||
source: "elm";
|
||||
script {
|
||||
set_value_show();
|
||||
}
|
||||
}
|
||||
program { name: "set_val_hide";
|
||||
signal: "elm,state,val,hide";
|
||||
source: "elm";
|
||||
script {
|
||||
set_value_hide();
|
||||
}
|
||||
}
|
||||
program { name: "val_show";
|
||||
signal: "mouse,down,*";
|
||||
source: "elm.dragable.slider";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.indicator";
|
||||
target: "button3";
|
||||
target: "button4";
|
||||
target: "button5";
|
||||
target: "button6";
|
||||
target: "button7";
|
||||
script {
|
||||
thumb_down();
|
||||
}
|
||||
}
|
||||
program { name: "val_hide";
|
||||
signal: "mouse,up,*";
|
||||
source: "elm.dragable.slider";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.indicator";
|
||||
target: "button3";
|
||||
target: "button4";
|
||||
target: "button5";
|
||||
target: "button6";
|
||||
target: "button7";
|
||||
script {
|
||||
thumb_up();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,8 +46,14 @@ test_slider(void *data, Evas_Object *obj, void *event_info)
|
|||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_slider_label_set(sl, "Label 2");
|
||||
elm_slider_end_set(sl, ic);
|
||||
elm_slider_span_size_set(sl, 80);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
@ -62,8 +68,9 @@ test_slider(void *data, Evas_Object *obj, void *event_info)
|
|||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_slider_indicator_show_set(sl, EINA_FALSE);
|
||||
elm_slider_label_set(sl, "Label 3");
|
||||
elm_slider_unit_format_set(sl, "units");
|
||||
elm_slider_unit_format_set(sl, "%3.0f units");
|
||||
elm_slider_span_size_set(sl, 40);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
|
|
@ -1192,26 +1192,32 @@ extern "C" {
|
|||
* "clicked" - when the user clicks on a carousel item and becomes selected
|
||||
*/
|
||||
|
||||
EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
|
||||
EAPI void elm_slider_label_set(Evas_Object *obj, const char *label);
|
||||
EAPI const char *elm_slider_label_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon);
|
||||
EAPI Evas_Object *elm_slider_icon_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
|
||||
EAPI Evas_Coord elm_slider_span_size_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_unit_format_set(Evas_Object *obj, const char *format);
|
||||
EAPI const char *elm_slider_unit_format_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
|
||||
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val));
|
||||
EAPI void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
|
||||
EAPI Eina_Bool elm_slider_horizontal_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max);
|
||||
EAPI void elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
|
||||
EAPI void elm_slider_value_set(Evas_Object *obj, double val);
|
||||
EAPI double elm_slider_value_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
|
||||
EAPI Eina_Bool elm_slider_inverted_get(const Evas_Object *obj);
|
||||
EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
|
||||
EAPI void elm_slider_label_set(Evas_Object *obj, const char *label);
|
||||
EAPI const char *elm_slider_label_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon);
|
||||
EAPI Evas_Object *elm_slider_icon_unset(Evas_Object *obj);
|
||||
EAPI const Evas_Object *elm_slider_icon_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_end_set(Evas_Object *obj, Evas_Object *end);
|
||||
EAPI Evas_Object *elm_slider_end_unset(Evas_Object *obj);
|
||||
EAPI const Evas_Object *elm_slider_end_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
|
||||
EAPI Evas_Coord elm_slider_span_size_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_unit_format_set(Evas_Object *obj, const char *format);
|
||||
EAPI const char *elm_slider_unit_format_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
|
||||
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val));
|
||||
EAPI void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
|
||||
EAPI Eina_Bool elm_slider_horizontal_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max);
|
||||
EAPI void elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
|
||||
EAPI void elm_slider_value_set(Evas_Object *obj, double val);
|
||||
EAPI double elm_slider_value_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
|
||||
EAPI Eina_Bool elm_slider_inverted_get(const Evas_Object *obj);
|
||||
EAPI void elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
|
||||
EAPI Eina_Bool elm_slider_indicator_show_get(const Evas_Object *obj);
|
||||
|
||||
typedef enum _Elm_Genlist_Item_Flags
|
||||
{
|
||||
|
|
|
@ -45,6 +45,7 @@ struct _Widget_Data
|
|||
{
|
||||
Evas_Object *slider;
|
||||
Evas_Object *icon;
|
||||
Evas_Object *end;
|
||||
Evas_Object *spacer;
|
||||
const char *label;
|
||||
const char *units;
|
||||
|
@ -52,6 +53,7 @@ struct _Widget_Data
|
|||
const char *(*indicator_format_func)(double val);
|
||||
Eina_Bool horizontal : 1;
|
||||
Eina_Bool inverted : 1;
|
||||
Eina_Bool indicator_show : 1;
|
||||
double val, val_min, val_max;
|
||||
Ecore_Timer *delay;
|
||||
Evas_Coord size;
|
||||
|
@ -170,6 +172,10 @@ _theme_hook(Evas_Object *obj)
|
|||
edje_object_part_swallow(wd->slider, "elm.swallow.content", wd->icon);
|
||||
edje_object_signal_emit(wd->slider, "elm,state,icon,visible", "elm");
|
||||
}
|
||||
if (wd->end)
|
||||
edje_object_signal_emit(wd->slider, "elm,state,end,visible", "elm");
|
||||
else
|
||||
edje_object_signal_emit(wd->slider, "elm,state,end,hidden", "elm");
|
||||
if (wd->label)
|
||||
{
|
||||
edje_object_part_text_set(wd->slider, "elm.text", wd->label);
|
||||
|
@ -214,7 +220,7 @@ _changed_size_hints(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *even
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
if (obj != wd->icon) return;
|
||||
if ((obj != wd->icon) && (obj != wd->end)) return;
|
||||
_sizing_eval(data);
|
||||
}
|
||||
|
||||
|
@ -233,6 +239,16 @@ _sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
|||
edje_object_message_signal_process(wd->slider);
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
if (sub == wd->end)
|
||||
{
|
||||
edje_object_signal_emit(wd->slider, "elm,state,end,hidden", "elm");
|
||||
evas_object_event_callback_del_full(sub,
|
||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints, obj);
|
||||
wd->end = NULL;
|
||||
edje_object_message_signal_process(wd->slider);
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -388,6 +404,7 @@ elm_slider_add(Evas_Object *parent)
|
|||
elm_widget_event_hook_set(obj, _event_hook);
|
||||
|
||||
wd->horizontal = EINA_TRUE;
|
||||
wd->indicator_show = EINA_TRUE;
|
||||
wd->val = 0.0;
|
||||
wd->val_min = 0.0;
|
||||
wd->val_max = 1.0;
|
||||
|
@ -468,13 +485,16 @@ elm_slider_label_get(const Evas_Object *obj)
|
|||
}
|
||||
|
||||
/**
|
||||
* Set the icon object of the slider object
|
||||
* Set the icon object (leftmost widget) of the slider object.
|
||||
*
|
||||
* Once the icon object is set, a previously set one will be deleted.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @param icon The icon object
|
||||
*
|
||||
* @note If the object being set does not have minimum size hints set,
|
||||
* it won't get properly displayed.
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI void
|
||||
|
@ -491,7 +511,7 @@ elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
elm_widget_sub_object_add(obj, icon);
|
||||
evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints, obj);
|
||||
edje_object_part_swallow(wd->slider, "elm.swallow.content", icon);
|
||||
edje_object_part_swallow(wd->slider, "elm.swallow.icon", icon);
|
||||
edje_object_signal_emit(wd->slider, "elm,state,icon,visible", "elm");
|
||||
edje_object_message_signal_process(wd->slider);
|
||||
}
|
||||
|
@ -499,14 +519,46 @@ elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
}
|
||||
|
||||
/**
|
||||
* Get the icon object of the slider object
|
||||
* Unset the leftmost widget of the slider, unparenting and
|
||||
* returning it.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @return the previously set icon sub-object of this slider, on
|
||||
* success.
|
||||
*
|
||||
* @see elm_slider_icon_set()
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
elm_slider_icon_unset(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *ret = NULL;
|
||||
if (!wd) return NULL;
|
||||
if (wd->icon)
|
||||
{
|
||||
elm_widget_sub_object_del(obj, wd->icon);
|
||||
ret = wd->icon;
|
||||
edje_object_part_unswallow(wd->slider, wd->icon);
|
||||
edje_object_signal_emit(wd->slider, "elm,state,icon,hidden", "elm");
|
||||
wd->icon = NULL;
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the icon object of the slider object. This object is owned by
|
||||
* the scrolled entry and should not be modified.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @return The icon object
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
EAPI const Evas_Object *
|
||||
elm_slider_icon_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
|
@ -540,6 +592,10 @@ elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size)
|
|||
evas_object_size_hint_min_set(wd->spacer, (double)wd->size * elm_widget_scale_get(obj) * _elm_config->scale, 1);
|
||||
else
|
||||
evas_object_size_hint_min_set(wd->spacer, 1, (double)wd->size * elm_widget_scale_get(obj) * _elm_config->scale);
|
||||
if (wd->indicator_show)
|
||||
edje_object_signal_emit(wd->slider, "elm,state,val,show", "elm");
|
||||
else
|
||||
edje_object_signal_emit(wd->slider, "elm,state,val,hide", "elm");
|
||||
edje_object_part_swallow(wd->slider, "elm.swallow.bar", wd->spacer);
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
@ -862,3 +918,131 @@ elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(d
|
|||
_indicator_set(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the end object (rightmost widget) of the slider object.
|
||||
*
|
||||
* Once the end object is set, a previously set one will be deleted.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @param end The end object
|
||||
*
|
||||
* @note If the object being set does not have minimum size hints set,
|
||||
* it won't get properly displayed.
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI void
|
||||
elm_slider_end_set(Evas_Object *obj, Evas_Object *end)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->end == end) return;
|
||||
if (wd->end) evas_object_del(wd->end);
|
||||
wd->end = end;
|
||||
if (end)
|
||||
{
|
||||
elm_widget_sub_object_add(obj, end);
|
||||
evas_object_event_callback_add(end, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints, obj);
|
||||
edje_object_part_swallow(wd->slider, "elm.swallow.end", end);
|
||||
edje_object_signal_emit(wd->slider, "elm,state,end,visible", "elm");
|
||||
edje_object_message_signal_process(wd->slider);
|
||||
}
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unset the rightmost widget of the slider, unparenting and
|
||||
* returning it.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @return the previously set end sub-object of this slider, on
|
||||
* success.
|
||||
*
|
||||
* @see elm_slider_end_set()
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
elm_slider_end_unset(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *ret = NULL;
|
||||
if (!wd) return NULL;
|
||||
if (wd->end)
|
||||
{
|
||||
elm_widget_sub_object_del(obj, wd->end);
|
||||
ret = wd->end;
|
||||
edje_object_part_unswallow(wd->slider, wd->end);
|
||||
edje_object_signal_emit(wd->slider, "elm,state,end,hidden", "elm");
|
||||
wd->end = NULL;
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the end icon object of the slider object. This object is owned
|
||||
* by the scrolled entry and should not be modified.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @return The end icon object
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI const Evas_Object *
|
||||
elm_slider_end_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
return wd->end;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether to the slider indicator (augmented knob) at all.
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @param show @c EINA_TRUE will make it show it, @c EINA_FALSE will
|
||||
* let the knob alwayes at default size.
|
||||
*
|
||||
* @note It will conflict with elm_slider_indicator_format_set(), if
|
||||
* you wanted those effects.
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI void
|
||||
elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (show) {
|
||||
wd->indicator_show = EINA_TRUE;
|
||||
edje_object_signal_emit(wd->slider, "elm,state,val,show", "elm");
|
||||
}
|
||||
else {
|
||||
wd->indicator_show = EINA_FALSE;
|
||||
edje_object_signal_emit(wd->slider, "elm,state,val,hide", "elm");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the state of indicator in the slider (if it's being shown or
|
||||
* not).
|
||||
*
|
||||
* @param obj The slider object
|
||||
* @return @c EINA_TRUE if the indicator is being shown, @c EINA_FALSE
|
||||
* otherwise.
|
||||
*
|
||||
* @ingroup Slider
|
||||
*/
|
||||
EAPI Eina_Bool
|
||||
elm_slider_indicator_show_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return wd->indicator_show;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue