[Elementary] For icon/end elements, use swallow parts in the scroller theme instead...
authorLeandro Pereira <leandro@profusion.mobi>
Thu, 23 Sep 2010 22:30:47 +0000 (22:30 +0000)
committerLeandro Pereira <leandro@profusion.mobi>
Thu, 23 Sep 2010 22:30:47 +0000 (22:30 +0000)
This defines a new theme group for elm_scrolled_entry:
"elm/scroller/entry/$THEME".  Themes that wants to support the icon/end
feature in scrolled entry should implement parts "elm.swallow.icon" and
"elm.swallow.end".  Black&White theme has been changed, Effeniht changes
to come on a later commit.

SVN revision: 52657

data/themes/default.edc
src/bin/test_entry.c
src/lib/elc_scrolled_entry.c
src/lib/elm_priv.h
src/lib/elm_scroller.c

index ec8d8b4..d63d571 100644 (file)
@@ -710,6 +710,565 @@ collections {
    }
 
 ///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/scroller/entry/default";
+
+      script {
+        public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+        public timer0(val) {
+           new v;
+           v = get_int(sbvis_v);
+           if (v) {
+               v = get_int(sbalways_v);
+               if (!v) {
+                  emit("do-hide-vbar", "");
+                  set_int(sbvis_v, 0);
+               }
+           }
+           v = get_int(sbvis_h);
+           if (v) {
+               v = get_int(sbalways_h);
+               if (!v) {
+                  emit("do-hide-hbar", "");
+                  set_int(sbvis_h, 0);
+               }
+           }
+           set_int(sbvis_timer, 0);
+           return 0;
+        }
+      }
+      images {
+        image: "shelf_inset.png" COMP;
+        image: "bt_sm_base2.png" COMP;
+        image: "bt_sm_shine.png" COMP;
+        image: "bt_sm_hilight.png" COMP;
+        image: "sb_runnerh.png" COMP;
+        image: "sb_runnerv.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+           type: RECT;
+           description { state: "default" 0.0;
+              rel1.offset: 2 2;
+              rel2.offset: -3 -3;
+           }
+        }
+        part { name: "clipper";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "bg";
+              rel2.to: "bg";
+              rel1.offset: 2 2;
+              rel2.offset: -3 -3;
+           }
+        }
+        part { name: "contentclipper";
+           type: RECT;
+           mouse_events: 0;
+           clip_to: "clipper";
+           description { state: "default" 0.0;
+              rel1.to: "elm.swallow.icon";
+              rel1.relative: 1.0 0.0;
+              rel2.to: "elm.swallow.end";
+              rel2.relative: 0.0 1.0;
+           }
+        }
+        part { name: "elm.swallow.icon";
+           type: SWALLOW;
+           clip_to: "clipper";
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              rel1 {
+                 to: "bg";
+                 relative: 0.0 0.0;
+                 offset: 0 0;
+              }
+              rel2 {
+                 to: "bg";
+                 relative: 0.0 1.0;
+                 offset: -1 -1;
+              }
+              visible: 0;
+           }
+           description { state: "visible" 0.0;
+              fixed: 1 1;
+              align: 0.0 1.0;
+              rel1 {
+                 to: "bg";
+                 relative: 0.0 0.0;
+                 offset: 0 0;
+              }
+              rel2 {
+                 to: "bg";
+                 relative: 0.0 1.0;
+                 offset: -1 -1;
+              }
+              visible: 1;
+           }
+        }
+        part { name: "elm.swallow.end";
+           type: SWALLOW;
+           clip_to: "clipper";
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              rel1 {
+                 to: "bg";
+                 relative: 1.0 0.0;
+                 offset: 0 0;
+              }
+              rel2 {
+                 to: "bg";
+                 relative: 1.0 1.0;
+                 offset: -1 -1;
+              }
+              visible: 0;
+           }
+           description { state: "visible" 0.0;
+              fixed: 1 1;
+              align: 1.0 1.0;
+              rel1 {
+                 to: "bg";
+                 relative: 1.0 0.0;
+                 offset: 0 0;
+              }
+              rel2 {
+                 to: "bg";
+                 relative: 1.0 1.0;
+                 offset: -1 -1;
+              }
+              visible: 1;
+           }
+        }
+        part { name: "conf_over";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              rel1.to: "bg";
+              rel2.to: "bg";
+              image {
+                 normal: "shelf_inset.png";
+                 border: 7 7 7 7;
+                 middle: 0;
+              }
+              fill.smooth : 0;
+           }
+        }
+        part { name: "elm.swallow.content";
+           clip_to: "contentclipper";
+           type: SWALLOW;
+           description { state: "default" 0.0;
+              rel1 {
+               to: "elm.swallow.icon";
+               relative: 1.0 0.0;
+               offset: 4 4;
+              }
+              rel2 {
+               to: "elm.swallow.end";
+               relative: 0.0 1.0;
+               offset: -5 -5;
+              }
+           }
+        }
+        part { name: "sb_vbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_vbar_clip";
+            clip_to: "sb_vbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_vbar";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              visible: 0;
+              min: 17 17;
+              align: 1.0 0.0;
+              rel1 {
+                 relative: 0.0 0.0;
+                 offset:   -2 2;
+                 to_y:     "elm.swallow.content";
+                 to_x:     "elm.swallow.end";
+              }
+              rel2 {
+                 relative: 0.0 0.0;
+                 offset:   -2 -1;
+                 to_y:     "sb_hbar";
+                 to_x:     "elm.swallow.end";
+              }
+           }
+        }
+        part { name: "sb_vbar_runner";
+           clip_to: "sb_vbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              min: 3 3;
+              max: 3 99999;
+              rel1.to:       "sb_vbar";
+              rel2.to:       "sb_vbar";
+              image {
+                 normal: "sb_runnerv.png";
+                 border: 0 0 4 4;
+              }
+              fill.smooth: 0;
+           }
+        }
+        part { name: "elm.dragable.vbar";
+           clip_to: "sb_vbar_clip";
+           mouse_events: 0;
+           dragable {
+              x: 0 0 0;
+              y: 1 1 0;
+              confine: "sb_vbar";
+           }
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              min: 17 17;
+              rel1 {
+                 relative: 0.5  0.5;
+                 offset:   0    0;
+                 to: "sb_vbar";
+              }
+              rel2 {
+                 relative: 0.5  0.5;
+                 offset:   0    0;
+                 to: "sb_vbar";
+              }
+              image {
+                 normal: "bt_sm_base2.png";
+                 border: 6 6 6 6;
+              }
+               image.middle: SOLID;
+           }
+        }
+        part { name: "sb_vbar_over1";
+           clip_to: "sb_vbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "elm.dragable.vbar";
+              rel2.relative: 1.0 0.5;
+              rel2.to: "elm.dragable.vbar";
+              image {
+                 normal: "bt_sm_hilight.png";
+                 border: 6 6 6 0;
+              }
+           }
+        }
+        part { name: "sb_vbar_over2";
+           clip_to: "sb_vbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "elm.dragable.vbar";
+              rel2.to: "elm.dragable.vbar";
+              image {
+                 normal: "bt_sm_shine.png";
+                 border: 6 6 6 0;
+              }
+           }
+        }
+
+        part { name: "sb_hbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_hbar_clip";
+            clip_to: "sb_hbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_hbar";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              visible: 0;
+              min: 17 17;
+              align: 0.0 1.0;
+              rel1 {
+                 relative: 0.0 1.0;
+                 offset:   2 -2;
+                 to_x:     "elm.swallow.content";
+              }
+              rel2 {
+                 relative: 0.0 1.0;
+                 offset:   -1 -2;
+                 to_x:     "sb_vbar";
+              }
+           }
+        }
+        part { name: "sb_hbar_runner";
+           clip_to: "sb_hbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              min: 3 3;
+              max: 99999 3;
+              rel1.to:       "sb_hbar";
+              rel2.to:       "sb_hbar";
+              image {
+                 normal: "sb_runnerh.png";
+                 border: 4 4 0 0;
+              }
+              fill.smooth: 0;
+           }
+        }
+        part { name: "elm.dragable.hbar";
+           clip_to: "sb_hbar_clip";
+           mouse_events: 0;
+           dragable {
+              x: 1 1 0;
+              y: 0 0 0;
+              confine: "sb_hbar";
+           }
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              min: 17 17;
+              rel1 {
+                 relative: 0.5  0.5;
+                 offset:   0    0;
+                 to: "sb_hbar";
+              }
+              rel2 {
+                 relative: 0.5  0.5;
+                 offset:   0    0;
+                 to: "sb_hbar";
+              }
+              image {
+                 normal: "bt_sm_base2.png";
+                 border: 6 6 6 6;
+              }
+               image.middle: SOLID;
+           }
+        }
+        part { name: "sb_hbar_over1";
+           clip_to: "sb_hbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "elm.dragable.hbar";
+              rel2.relative: 1.0 0.5;
+              rel2.to: "elm.dragable.hbar";
+              image {
+                 normal: "bt_sm_hilight.png";
+                 border: 6 6 6 0;
+              }
+           }
+        }
+        part { name: "sb_hbar_over2";
+           clip_to: "sb_hbar_clip";
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "elm.dragable.hbar";
+              rel2.to: "elm.dragable.hbar";
+              image {
+                 normal: "bt_sm_shine.png";
+                 border: 6 6 6 0;
+              }
+           }
+        }
+      }
+      programs {
+        program { name: "load";
+           signal: "load";
+           source: "";
+           script {
+              set_state(PART:"sb_hbar_clip", "hidden", 0.0);
+              set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+              set_int(sbvis_h, 0);
+              set_int(sbvis_v, 0);
+              set_int(sbalways_v, 0);
+              set_int(sbalways_h, 0);
+              set_int(sbvis_timer, 0);
+           }
+        }
+        program { name: "icon_show";
+           signal: "elm,action,show,icon";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           target: "elm.swallow.icon";
+        }
+        program { name: "icon_hide";
+           signal: "elm,action,hide,icon";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           target: "elm.swallow.icon";
+        }
+        program { name: "end_show";
+           signal: "elm,action,show,end";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           target: "elm.swallow.end";
+        }
+        program { name: "end_hide";
+           signal: "elm,action,hide,end";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           target: "elm.swallow.end";
+        }
+        program { name: "vbar_show";
+           signal: "elm,action,show,vbar";
+           source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "sb_vbar_clip_master";
+        }
+        program { name: "vbar_hide";
+           signal: "elm,action,hide,vbar";
+           source: "elm";
+            action:  STATE_SET "hidden" 0.0;
+            target: "sb_vbar_clip_master";
+        }
+        program { name: "vbar_show_always";
+           signal: "elm,action,show_always,vbar";
+           source: "elm";
+            script {
+               new v;
+               v = get_int(sbvis_v);
+               v |= get_int(sbalways_v);
+               if (!v) {
+                  set_int(sbalways_v, 1);
+                  emit("do-show-vbar", "");
+                  set_int(sbvis_v, 1);
+               }
+            }
+        }
+        program { name: "vbar_show_notalways";
+           signal: "elm,action,show_notalways,vbar";
+           source: "elm";
+            script {
+               new v;
+               v = get_int(sbalways_v);
+               if (v) {
+                  set_int(sbalways_v, 0);
+                  v = get_int(sbvis_v);
+                  if (!v) {
+                     emit("do-hide-vbar", "");
+                     set_int(sbvis_v, 0);
+                  }
+               }
+            }
+        }
+        program { name: "sb_vbar_show";
+           signal: "do-show-vbar";
+           source: "";
+           action:  STATE_SET "default" 0.0;
+           transition: LINEAR 1.0;
+           target: "sb_vbar_clip";
+        }
+        program { name: "sb_vbar_hide";
+           signal: "do-hide-vbar";
+           source: "";
+           action:  STATE_SET "hidden" 0.0;
+           transition: LINEAR 1.0;
+           target: "sb_vbar_clip";
+        }
+
+        program { name: "hbar_show";
+           signal: "elm,action,show,hbar";
+           source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "sb_hbar_clip_master";
+        }
+        program { name: "hbar_hide";
+           signal: "elm,action,hide,hbar";
+           source: "elm";
+            action:  STATE_SET "hidden" 0.0;
+            target: "sb_hbar_clip_master";
+        }
+        program { name: "hbar_show_always";
+           signal: "elm,action,show_always,hbar";
+           source: "elm";
+            script {
+               new v;
+               v = get_int(sbvis_h);
+               v |= get_int(sbalways_h);
+               if (!v) {
+                  set_int(sbalways_h, 1);
+                  emit("do-show-hbar", "");
+                  set_int(sbvis_h, 1);
+               }
+            }
+        }
+        program { name: "hbar_show_notalways";
+           signal: "elm,action,show_notalways,hbar";
+           source: "elm";
+            script {
+               new v;
+               v = get_int(sbalways_h);
+               if (v) {
+                  set_int(sbalways_h, 0);
+                  v = get_int(sbvis_h);
+                  if (!v) {
+                     emit("do-hide-hbar", "");
+                     set_int(sbvis_h, 0);
+                  }
+               }
+            }
+        }
+        program { name: "sb_hbar_show";
+           signal: "do-show-hbar";
+           source: "";
+           action:  STATE_SET "default" 0.0;
+           transition: LINEAR 1.0;
+           target: "sb_hbar_clip";
+        }
+        program { name: "sb_hbar_hide";
+           signal: "do-hide-hbar";
+           source: "";
+           action:  STATE_SET "hidden" 0.0;
+           transition: LINEAR 1.0;
+           target: "sb_hbar_clip";
+        }
+
+        program { name: "scroll";
+           signal: "elm,action,scroll";
+           source: "elm";
+           script {
+              new v;
+              v = get_int(sbvis_v);
+               v |= get_int(sbalways_v);
+              if (!v) {
+                  emit("do-show-vbar", "");
+                  set_int(sbvis_v, 1);
+              }
+              v = get_int(sbvis_h);
+               v |= get_int(sbalways_h);
+              if (!v) {
+                  emit("do-show-hbar", "");
+                  set_int(sbvis_h, 1);
+              }
+              v = get_int(sbvis_timer);
+              if (v > 0) cancel_timer(v);
+              v = timer(2.0, "timer0", 0);
+              set_int(sbvis_timer, v);
+           }
+        }
+      }
+   }
+
+///////////////////////////////////////////////////////////////////////////////
    group { name: "elm/label/base/default";
       data.item: "default_font_size" "24";
       data.item: "min_font_size" "8";
index 4fc84d5..1575c16 100644 (file)
@@ -293,8 +293,8 @@ test_entry_scrolled(void *data, Evas_Object *obj, void *event_info)
    en = elm_scrolled_entry_add(win);
    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
-   elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
    elm_scrolled_entry_entry_set(en, "This is a single line");
+   elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
    elm_scrolled_entry_single_line_set(en, 1);
    elm_scrolled_entry_select_all(en);
    evas_object_show(en);
@@ -313,15 +313,20 @@ test_entry_scrolled(void *data, Evas_Object *obj, void *event_info)
 
    /* scrolled entry with icon/end widgets*/
    en = elm_scrolled_entry_add(win);
+   elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
    elm_scrolled_entry_single_line_set(en, 1);
    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   bt = elm_button_add(win);
-   elm_button_label_set(bt, "left");
+   bt = elm_icon_add(win);
+   elm_icon_standard_set(bt, "home");
+   evas_object_size_hint_min_set(bt, 48, 48);
+   evas_object_color_set(bt, 255, 0, 0, 128);
    evas_object_show(bt);
    elm_scrolled_entry_icon_set(en, bt);
-   bt = elm_button_add(win);
-   elm_button_label_set(bt, "right");
+   bt = elm_icon_add(win);
+   elm_icon_standard_set(bt, "delete");
+   evas_object_color_set(bt, 255, 0, 0, 128);
+   evas_object_size_hint_min_set(bt, 48, 48);
    evas_object_show(bt);
    elm_scrolled_entry_end_set(en, bt);
    elm_scrolled_entry_entry_set(en, "scrolled entry with icon and end objects");
index 050008d..50c96b0 100644 (file)
@@ -35,7 +35,6 @@ typedef struct _Widget_Data Widget_Data;
 struct _Widget_Data
 {
    Evas_Object *scroller;
-   Evas_Object *box;
    Evas_Object *entry;
    Evas_Object *icon;
    Evas_Object *end;
@@ -287,17 +286,12 @@ elm_scrolled_entry_add(Evas_Object *parent)
    elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook);
    elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook);
 
-   wd->box = elm_box_add(parent);
-   elm_widget_resize_object_set(obj, wd->box);
-   elm_box_horizontal_set(wd->box, EINA_TRUE);
-   elm_box_homogenous_set(wd->box, EINA_FALSE);
-   evas_object_show(wd->box);
-
    wd->scroller = elm_scroller_add(parent);
+   elm_scroller_custom_widget_base_theme_set(wd->scroller, "scroller", "entry");
+   elm_widget_resize_object_set(obj, wd->scroller);
    evas_object_size_hint_weight_set(wd->scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(wd->scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_scroller_bounce_set(wd->scroller, 0, 0);
-   elm_box_pack_start(wd->box, wd->scroller);
    evas_object_show(wd->scroller);
 
    wd->entry = elm_entry_add(parent);
@@ -348,10 +342,15 @@ elm_scrolled_entry_icon_set(Evas_Object *obj, Evas_Object *icon)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
+   Evas_Object *edje;
    if (!wd || !icon) return;
+   if (wd->icon == icon) return;
    if (wd->icon) evas_object_del(wd->icon);
    wd->icon = icon;
-   elm_box_pack_before(wd->box, wd->icon, wd->scroller);
+   edje = _elm_scroller_edje_object_get(wd->scroller);
+   if (!edje) return;
+   edje_object_part_swallow(edje, "elm.swallow.icon", wd->icon);
+   edje_object_signal_emit(edje, "elm,action,show,icon", "elm");
    _sizing_eval(obj);
 }
 
@@ -388,8 +387,12 @@ elm_scrolled_entry_icon_unset(Evas_Object *obj)
    if (!wd) return NULL;
    if (wd->icon)
      {
+       Evas_Object *edje = _elm_scroller_edje_object_get(wd->scroller);
+       if (!edje) return NULL;
        ret = wd->icon;
-       elm_box_unpack(wd->box, wd->icon);
+       edje_object_part_unswallow(edje, wd->icon);
+       edje_object_signal_emit(edje, "elm,action,hide,icon", "elm");
+       wd->icon = NULL;
        _sizing_eval(obj);
      }
    return ret;
@@ -432,10 +435,15 @@ elm_scrolled_entry_end_set(Evas_Object *obj, Evas_Object *end)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
+   Evas_Object *edje;
    if (!wd || !end) return;
+   if (wd->end == end) return;
    if (wd->end) evas_object_del(wd->end);
    wd->end = end;
-   elm_box_pack_after(wd->box, wd->end, wd->scroller);
+   edje = _elm_scroller_edje_object_get(wd->scroller);
+   if (!edje) return;
+   edje_object_part_swallow(edje, "elm.swallow.end", wd->end);
+   edje_object_signal_emit(edje, "elm,action,show,end", "elm");
    _sizing_eval(obj);
 }
 
@@ -472,8 +480,12 @@ elm_scrolled_entry_end_unset(Evas_Object *obj)
    if (!wd) return NULL;
    if (wd->end)
      {
+       Evas_Object *edje = _elm_scroller_edje_object_get(wd->scroller);
+       if (!edje) return NULL;
        ret = wd->end;
-       elm_box_unpack(wd->box, wd->end);
+       edje_object_part_unswallow(edje, wd->end);
+       edje_object_signal_emit(edje, "elm,action,hide,end", "elm");
+       wd->end = NULL;
        _sizing_eval(obj);
      }
    return ret;
index cb4d8e5..0ee0530 100644 (file)
@@ -142,6 +142,8 @@ void                 elm_object_sub_tooltip_content_cb_set(Evas_Object *eventare
 
 Eina_Bool           _elm_dangerous_call_check(const char *call);
 
+Evas_Object        *_elm_scroller_edje_object_get(Evas_Object *obj);
+
 extern char        *_elm_appname;
 extern Elm_Config  *_elm_config;
 extern const char  *_elm_data_dir;
index 6d402fe..19d4e04 100644 (file)
@@ -378,6 +378,14 @@ elm_scroller_add(Evas_Object *parent)
    return obj;
 }
 
+Evas_Object *
+_elm_scroller_edje_object_get(Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return NULL;
+   return elm_smart_scroller_edje_object_get(wd->scr);
+}
 
 /**
  * Set the content of the scroller widget (the object to be scrolled around).