* Enlightenment SVN <[email protected]> [2010-09-28 08:09:20 -0700]:
Forgot to mention this comes from a set of contributions to Elementary
from Samsung Electronics. Patch revised and modified by Profusion
Embedded Systems.
> Log:
> 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.
>
>
> Author: glima
> Date: 2010-09-28 08:09:19 -0700 (Tue, 28 Sep 2010)
> New Revision: 52852
>
> Modified:
> trunk/TMP/st/elementary/data/themes/default.edc
> trunk/TMP/st/elementary/src/bin/test_slider.c
> trunk/TMP/st/elementary/src/lib/Elementary.h.in
> trunk/TMP/st/elementary/src/lib/elm_slider.c
>
> Modified: trunk/TMP/st/elementary/data/themes/default.edc
> ===================================================================
> --- trunk/TMP/st/elementary/data/themes/default.edc 2010-09-28 14:15:23 UTC
> (rev 52851)
> +++ trunk/TMP/st/elementary/data/themes/default.edc 2010-09-28 15:09:19 UTC
> (rev 52852)
> @@ -11311,6 +11311,40 @@
> 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 @@
> }
> }
> }
> - part { name: "elm.swallow.content";
> + part { name: "elm.swallow.icon";
> type: SWALLOW;
> description { state: "default" 0.0;
> visible: 0;
> @@ -11440,10 +11474,10 @@
> 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 @@
> 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 @@
> 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 @@
> 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,14 +11831,26 @@
> 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";
> source: "elm";
> @@ -11802,27 +11879,34 @@
> 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 @@
>
> 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 @@
> }
> }
> }
> - part { name: "elm.swallow.content";
> + part { name: "elm.swallow.icon";
> type: SWALLOW;
> description { state: "default" 0.0;
> visible: 0;
> @@ -11972,10 +12090,10 @@
> 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 @@
> 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 @@
> 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,14 +12446,26 @@
> 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";
> source: "elm";
> @@ -12337,27 +12494,33 @@
> 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();
> + }
> }
> }
> }
>
> Modified: trunk/TMP/st/elementary/src/bin/test_slider.c
> ===================================================================
> --- trunk/TMP/st/elementary/src/bin/test_slider.c 2010-09-28 14:15:23 UTC
> (rev 52851)
> +++ trunk/TMP/st/elementary/src/bin/test_slider.c 2010-09-28 15:09:19 UTC
> (rev 52852)
> @@ -46,8 +46,14 @@
> 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 @@
> 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);
>
> Modified: trunk/TMP/st/elementary/src/lib/Elementary.h.in
> ===================================================================
> --- trunk/TMP/st/elementary/src/lib/Elementary.h.in 2010-09-28 14:15:23 UTC
> (rev 52851)
> +++ trunk/TMP/st/elementary/src/lib/Elementary.h.in 2010-09-28 15:09:19 UTC
> (rev 52852)
> @@ -1192,26 +1192,32 @@
> * "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
> {
>
> Modified: trunk/TMP/st/elementary/src/lib/elm_slider.c
> ===================================================================
> --- trunk/TMP/st/elementary/src/lib/elm_slider.c 2010-09-28 14:15:23 UTC
> (rev 52851)
> +++ trunk/TMP/st/elementary/src/lib/elm_slider.c 2010-09-28 15:09:19 UTC
> (rev 52852)
> @@ -45,6 +45,7 @@
> {
> Evas_Object *slider;
> Evas_Object *icon;
> + Evas_Object *end;
> Evas_Object *spacer;
> const char *label;
> const char *units;
> @@ -52,6 +53,7 @@
> 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 @@
> 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 @@
> {
> 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 @@
> 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_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 @@
> }
>
> /**
> - * 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_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 @@
> }
>
> /**
> - * 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 @@
> 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 @@
> _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;
> +}
> +
>
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> enlightenment-svn mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
--
Gustavo Lima Chaves
Computer Engineer @ ProFUSION Embedded Systems
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel