Make it possible to use finger size hint on scrollbars.

With a small rectangle swallowed as a base is now possible to make scrollbars
respect the finger size hint. But it just makes sense when thumbscroll is
disabled, i.e, when scrollbars should be dragable.



SVN revision: 54700
This commit is contained in:
Rafael Fonseca 2010-11-18 18:47:16 +00:00
parent f3ae26ee34
commit acb1ebb41c
1 changed files with 17 additions and 1 deletions

View File

@ -995,9 +995,25 @@ void
elm_smart_scroller_object_theme_set(Evas_Object *parent, Evas_Object *obj, const char *clas, const char *group, const char *style)
{
API_ENTRY return;
Evas_Coord mw, mh;
_elm_theme_object_set(parent, sd->edje_obj, clas, group, style);
if (sd->pan_obj)
edje_object_part_swallow(sd->edje_obj, "elm.swallow.content", sd->pan_obj);
mw = mh = -1;
elm_coords_finger_size_adjust(1, &mw, 1, &mh);
if (edje_object_part_exists(sd->edje_obj, "elm.scrollbar.base"))
{
Evas_Object *base;
base = edje_object_part_swallow_get(sd->edje_obj, "elm.scrollbar.base");
if (!base)
{
base = evas_object_rectangle_add(evas_object_evas_get(sd->edje_obj));
evas_object_color_set(base, 0, 0, 0, 0);
edje_object_part_swallow(sd->edje_obj, "elm.scrollbar.base", base);
}
if (!_elm_config->thumbscroll_enable)
evas_object_size_hint_min_set(base, mw, mh);
}
sd->vbar_visible = !sd->vbar_visible;
sd->hbar_visible = !sd->hbar_visible;
_smart_scrollbar_bar_visibility_adjust(sd);
@ -2291,7 +2307,7 @@ _smart_add(Evas_Object *obj)
evas_object_propagate_events_set(o, 0);
sd->edje_obj = o;
// FIXME: null parent obj ... :(
_elm_theme_object_set(NULL, o, "scroller", "base", "default");
elm_smart_scroller_object_theme_set(NULL, obj, "scroller", "base", "default");
edje_object_signal_callback_add(o, "drag", "elm.dragable.vbar", _smart_edje_drag_v, sd);
edje_object_signal_callback_add(o, "drag,start", "elm.dragable.vbar", _smart_edje_drag_v_start, sd);
edje_object_signal_callback_add(o, "drag,stop", "elm.dragable.vbar", _smart_edje_drag_v_stop, sd);