Summary:
when scroller page is enabled and key is pressed,
scroller will move in page by page.
Test Plan: elementary_test -> scroller
Reviewers: woohyun, cedric, jaehwan, raster, Hermet
Subscribers: akanad, jpeg
Differential Revision: https://phab.enlightenment.org/D4425
Change-Id: I7446d4fb62944e7107dde790c57bb0fbf02684fd
Evas_Coord f_y = 0;
Evas_Coord f_w = 0;
Evas_Coord f_h = 0;
Evas_Coord f_y = 0;
Evas_Coord f_w = 0;
Evas_Coord f_h = 0;
+ Evas_Coord pagesize_h = 0, pagesize_v = 0;
+ Evas_Coord pagenumber_h = 0, pagenumber_v = 0;
eo_do(obj,
elm_interface_scrollable_content_pos_get(&x, &y),
eo_do(obj,
elm_interface_scrollable_content_pos_get(&x, &y),
eina_list_free(can_focus_list);
eina_list_free(can_focus_list);
+ eo_do(obj,
+ elm_interface_scrollable_paging_get(NULL, NULL, &pagesize_h, &pagesize_v),
+ elm_interface_scrollable_current_page_get(&pagenumber_h, &pagenumber_v));
+
if (!strcmp(dir, "left"))
{
if ((x <= 0) && (!sd->loop_h)) return EINA_FALSE;
if (!strcmp(dir, "left"))
{
if ((x <= 0) && (!sd->loop_h)) return EINA_FALSE;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h - 1, pagenumber_v));
+ return EINA_TRUE;
+ }
+ else
+ x -= step_x;
}
else if (!strcmp(dir, "right"))
{
if ((x >= (max_x - v_w)) && (!sd->loop_h)) return EINA_FALSE;
}
else if (!strcmp(dir, "right"))
{
if ((x >= (max_x - v_w)) && (!sd->loop_h)) return EINA_FALSE;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h + 1, pagenumber_v));
+ return EINA_TRUE;
+ }
+ else
+ x += step_x;
}
else if (!strcmp(dir, "up"))
{
if ((y <= 0) && (!sd->loop_v)) return EINA_FALSE;
}
else if (!strcmp(dir, "up"))
{
if ((y <= 0) && (!sd->loop_v)) return EINA_FALSE;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h, pagenumber_v - 1));
+ return EINA_TRUE;
+ }
+ else
+ y -= step_y;
}
else if (!strcmp(dir, "down"))
{
if ((y >= (max_y - v_h)) && (!sd->loop_v)) return EINA_FALSE;
}
else if (!strcmp(dir, "down"))
{
if ((y >= (max_y - v_h)) && (!sd->loop_v)) return EINA_FALSE;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h, pagenumber_v + 1));
+ return EINA_TRUE;
+ }
+ else
+ y += step_y;
}
else if (!strcmp(dir, "first"))
{
}
else if (!strcmp(dir, "first"))
{
}
else if (!strcmp(dir, "prior"))
{
}
else if (!strcmp(dir, "prior"))
{
- if (page_y < 0)
- y -= -(page_y * v_h) / 100;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h, pagenumber_v - 1));
+ return EINA_TRUE;
+ }
+ {
+ if (page_y < 0)
+ y -= -(page_y * v_h) / 100;
+ else
+ y -= page_y;
+ }
}
else if (!strcmp(dir, "next"))
{
}
else if (!strcmp(dir, "next"))
{
- if (page_y < 0)
- y += -(page_y * v_h) / 100;
+ if (pagesize_h)
+ {
+ eo_do(obj, elm_interface_scrollable_page_bring_in(pagenumber_h, pagenumber_v + 1));
+ return EINA_TRUE;
+ }
+ {
+ if (page_y < 0)
+ y += -(page_y * v_h) / 100;
+ else
+ y += page_y;
+ }
}
else return EINA_FALSE;
}
else return EINA_FALSE;