EAPI void elm_scroller_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
EAPI void elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
EAPI void elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
+ EAPI void elm_scroller_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set);
/* smart callbacks called:
* "edge,left"
* "edge,right"
EAPI void elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
EAPI void elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
+ EAPI void elm_list_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set);
/* smart callbacks called:
* "clicked" - when the user double-clicked an item
* "selected" - when the user selected an item
EAPI void elm_genlist_block_count_set(Evas_Object *obj, int n);
EAPI void elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
EAPI void elm_genlist_set_edit_mode(Evas_Object *obj, int emode, Elm_Genlist_Edit_Class *ec);
+ EAPI void elm_genlist_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set);
EAPI Evas_Object *elm_check_add(Evas_Object *parent);
EAPI void elm_check_label_set(Evas_Object *obj, const char *label);
if (wd->calc_job) ecore_job_del(wd->calc_job);
wd->calc_job = ecore_job_add(_calc_job, wd);
}
+
+/**
+ * Set Scrollbar Handler mode
+ *
+ * This will activate the scrollbar handler mode for the genlist.
+ *
+ * @param obj The genlist object
+ * @param set if EINA_TRUE, activate handler.
+ *
+ * @ingroup Genlist
+ */
+
+EAPI void
+elm_genlist_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if(!set) return;
+ elm_smart_scroller_bounce_allow_set(wd->scr, 0, 0);
+ elm_smart_scroller_handler_set(wd->scr);
+}
dist = 0x7fffffff;
evas_object_geometry_get(wd->bx[i], &bx, &by, &bw, &bh);
dmin = (double)(wd->min_1st_level_obj_height*wd->tot_items_count[1])/(2*(double)bh);
- dmax = 1-dmin;
+ dmax = 1.0-dmin-0.08;
EINA_LIST_FOREACH(wd->items, l, it)
{
if (!((it->level == i) && (it->base))) continue;
if (wd->scr)
elm_scroller_policy_get(wd->scr, policy_h, policy_v);
}
+
+/**
+ * Set Scrollbar Handler mode
+ *
+ * This will activate the scrollbar handler mode for the list.
+ *
+ * @param obj The list object
+ * @param set if EINA_TRUE, activate handler.
+ *
+ * @ingroup Genlist
+ */
+EAPI void
+elm_list_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if(!set) return;
+
+ elm_scroller_bounce_set(wd->scr, 0, 0);
+ elm_scroller_scrollbar_handler_set(wd->scr, set);
+}
elm_smart_scroller_page_move_set(wd->scr, set);
}
+
+/**
+ * Set scrollbar handler
+ *
+ * @param obj The scroller object
+ * @param set Flag
+ *
+ * @ingroup Scroller
+ */
+EAPI void
+elm_scroller_scrollbar_handler_set(Evas_Object *obj, Eina_Bool set)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ if(!set) return;
+ elm_smart_scroller_handler_set(wd->scr);
+}
Evas_Object *event_obj;
Evas_Object *widget;
-
+
Elm_Smart_Scroller_Policy hbar_flags, vbar_flags;
struct {
sd->widget = wid;
}
+EAPI void
+elm_smart_scroller_handler_set(Evas_Object *obj)
+{
+ API_ENTRY return;
+ Elm_Smart_Scroller_Policy *policy_h, *policy_v;
+ policy_h = ELM_SMART_SCROLLER_POLICY_OFF;
+ policy_v = ELM_SMART_SCROLLER_POLICY_OFF;
+
+ elm_smart_scroller_policy_get(obj, &policy_h, &policy_v);
+
+ if(policy_v != ELM_SMART_SCROLLER_POLICY_ON)
+ elm_smart_scroller_policy_set(obj, ELM_SMART_SCROLLER_POLICY_OFF, ELM_SMART_SCROLLER_POLICY_AUTO);
+
+ edje_object_signal_emit(sd->edje_obj, "elm,activate,handler", "elm");
+}
+
/* local subsystem functions */
static void
_smart_edje_drag_v_start(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
sd = data;
ev = event_info;
sd->down.hold_parent = 0;
+
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
evas_post_event_callback_push(e, _smart_event_post_up, sd);
// FIXME: respect elm_widget_scroll_hold_get of parent container
sd = data;
ev = event_info;
+
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) sd->down.hold_parent = 1;
evas_post_event_callback_push(e, _smart_event_post_move, sd);
void elm_smart_scroller_region_bring_in (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
void elm_smart_scroller_widget_set (Evas_Object *obj, Evas_Object *wid);
void elm_smart_scroller_page_move_set (Evas_Object *obj, Eina_Bool set);
+void elm_smart_scroller_handler_set (Evas_Object *obj);