EAPI void elm_scroller_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
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);
/* smart callbacks called:
* "edge,left"
* "edge,right"
if (wd->scr)
elm_smart_scroller_region_bring_in(wd->scr, x, y, w, h);
}
+
+/**
+ * Set scroll only one page
+ *
+ * @param obj The scroller object
+ * @param set Flag
+ *
+ * @ingroup Scroller
+ */
+EAPI void
+elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ elm_smart_scroller_page_move_set(wd->scr, set);
+}
double pagerel_h, pagerel_v;
Evas_Coord pagesize_h, pagesize_v;
-
+ Eina_Bool one_page :1;
unsigned char hbar_visible : 1;
unsigned char vbar_visible : 1;
unsigned char extern_pan : 1;
_smart_page_x_get(Smart_Data *sd, int offset)
{
Evas_Coord x, y, w, h, cw, ch;
+ Evas_Coord t;
elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y);
elm_smart_scroller_child_viewport_size_get(sd->smart_obj, &w, &h);
sd->pan_func.child_size_get(sd->pan_obj, &cw, &ch);
+ t = x;
x += offset;
if (sd->pagerel_h > 0.0)
x = x + (w * sd->pagerel_h * 0.5);
x = x / (w * sd->pagerel_h);
x = x * (w * sd->pagerel_h);
+
+ if(sd->one_page){
+ if(offset == 0){
+ if(t > x) x = x + (w * sd->pagerel_h);
+ if(t < x) x = x - (w * sd->pagerel_h);
+ }
+ if(offset > 0){
+ if(t > x) x = x + (w * sd->pagerel_h);
+ }
+ if(offset < 0){
+ if(t < x) x = x - (w * sd->pagerel_h);
+ }
+ }
}
else if (sd->pagesize_h > 0)
{
x = x + (sd->pagesize_h * 0.5);
x = x / (sd->pagesize_h);
x = x * (sd->pagesize_h);
+
+ if(sd->one_page){
+ if(offset == 0){
+ if(t > x) x = x + (sd->pagesize_h);
+ if(t < x) x = x - (sd->pagesize_h);
+ }
+ if(offset > 0){
+ if(t > x) x = x + (sd->pagesize_h);
+ }
+ if(offset < 0){
+ if(t < x) x = x - (sd->pagesize_h);
+ }
+ }
}
if (x < 0) x = 0;
else if ((x + w) > cw) x = cw - w;
}
void
+elm_smart_scroller_page_move_set(Evas_Object *obj, Eina_Bool set)
+{
+ API_ENTRY return;
+ sd->one_page = set;
+}
+
+void
elm_smart_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
{
Evas_Coord mx = 0, my = 0, cw = 0, ch = 0, px = 0, py = 0, nx, ny;
at *= 4.0;
dx = ev->canvas.x - ax;
dy = ev->canvas.y - ay;
+ if(sd->one_page) at = 0.4;
+
if (at > 0)
{
vel = sqrt((dx * dx) + (dy * dy)) / at;
+
+ if(sd->one_page) {
+ if(vel < _elm_config->thumbscroll_momentum_threshhold)
+ vel = _elm_config->thumbscroll_momentum_threshhold +1;
+ }
+
if ((_elm_config->thumbscroll_friction > 0.0) &&
(vel > _elm_config->thumbscroll_momentum_threshhold) &&
(!sd->freeze))
void elm_smart_scroller_paging_set (Evas_Object *obj, double pagerel_h, double pagerel_v, Evas_Coord pagesize_h, Evas_Coord pagesize_v);
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);