Scroller: Scroll indicatin arrows should be enable if loop is set.

Summary:
When loop is set, the arrows on horizontal/vertical bar
should not be disabled. These arrows show the scrollable direction,
if enabled. Disabled arrows show no more scroll in that direction.

Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>

Merge branch 'master' of http://git.enlightenment.org/core/elementary

Test Plan: elementary_test -> scroller -> loop in x axis.

Reviewers: raster, Hermet, singh.amitesh

Subscribers: sachin.dev, SanghyeonLee, eagleeye

Differential Revision: https://phab.enlightenment.org/D2953
This commit is contained in:
Umesh Tanwar 2015-08-28 20:40:43 +09:00 committed by ChunEon Park
parent a15f83cc49
commit 01117dee6c
2 changed files with 43 additions and 4 deletions

View File

@ -38,13 +38,14 @@ group { name: "elm/scroller/base/default";
data.item: "focus_highlight" "on";
script {
public loop_x, loop_y;
public action_on_pos_vbar(val) {
new x, y , w, h, x1, y1 , w1, h1;
get_geometry(PART:"y_vbar_up", x,y,w, h);
get_geometry(PART:"y_vbar_up_mapper", x1,y1,w1, h1);
if((y1 <= y) && (y <= (y1 + h1)))
if(((y1 <= y) && (y <= (y1 + h1))) && (0 == get_int(loop_y)))
{
set_state(PART:"arrow1_vbar", "hidden", 0.0);
set_state(PART:"sb_vbar_a1", "hidden", 0.0);
@ -58,7 +59,7 @@ group { name: "elm/scroller/base/default";
get_geometry(PART:"y_vbar_down", x,y,w, h);
get_geometry(PART:"y_vbar_down_mapper", x1,y1,w1, h1);
if((y1 <= (y + h)) && ((y+ h) <= (y1 + h1)))
if(((y1 <= (y + h)) && ((y+ h) <= (y1 + h1))) && (0 == get_int(loop_y)))
{
set_state(PART:"arrow2_vbar", "hidden", 0.0);
set_state(PART:"sb_vbar_a2", "hidden", 0.0);
@ -79,7 +80,7 @@ group { name: "elm/scroller/base/default";
get_geometry(PART:"x_hbar_left", x,y,w, h);
get_geometry(PART:"x_hbar_left_mapper", x1,y1,w1, h1);
if((x1 <= x) && (x <= (x1 + w1)))
if(((x1 <= x) && (x <= (x1 + w1))) && (0 == get_int(loop_x)))
{
set_state(PART:"arrow1_hbar", "hidden", 0.0);
set_state(PART:"sb_hbar_a1", "hidden", 0.0);
@ -93,7 +94,7 @@ group { name: "elm/scroller/base/default";
get_geometry(PART:"x_hbar_right", x,y,w, h);
get_geometry(PART:"x_hbar_right_mapper", x1,y1,w1, h1);
if((x1 <= (x + w)) && ((x + w) <= (x1 + w1)))
if(((x1 <= (x + w)) && ((x + w) <= (x1 + w1))) && (0 == get_int(loop_x)))
{
set_state(PART:"arrow2_hbar", "hidden", 0.0);
set_state(PART:"sb_hbar_a2", "hidden", 0.0);
@ -387,6 +388,20 @@ group { name: "elm/scroller/base/default";
action_on_pos_vbar(10);
}
}
program { name: "loop_set_vbar";
signal: "elm,loop_y,set"; source: "elm";
script {
set_int(loop_y, 1);
action_on_pos_vbar(10);
}
}
program { name: "loop_unset_vbar";
signal: "elm,loop_y,unset"; source: "elm";
script {
set_int(loop_y, 0);
action_on_pos_vbar(10);
}
}
// horiz bar /////////////////////////////////////////////////////////////
part { name: "sb_hbar_show"; type: RECT;
@ -659,6 +674,20 @@ group { name: "elm/scroller/base/default";
action_on_pos_hbar(10);
}
}
program { name: "loop_set_hbar";
signal: "elm,loop_x,set"; source: "elm";
script {
set_int(loop_x, 1);
action_on_pos_hbar(10);
}
}
program { name: "loop_unset_hbar";
signal: "elm,loop_x,unset"; source: "elm";
script {
set_int(loop_x, 0);
action_on_pos_hbar(10);
}
}
part { name: "bg"; type: RECT;
description { state: "default" 0.0;
rel1.to: "elm.swallow.background";

View File

@ -4450,6 +4450,16 @@ _elm_interface_scrollable_loop_set(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Int
sid->loop_h = loop_h;
sid->loop_v = loop_v;
if(sid->loop_h)
edje_object_signal_emit(sid->edje_obj, "elm,loop_x,set", "elm");
else
edje_object_signal_emit(sid->edje_obj, "elm,loop_x,unset", "elm");
if(sid->loop_v)
edje_object_signal_emit(sid->edje_obj, "elm,loop_y,set", "elm");
else
edje_object_signal_emit(sid->edje_obj, "elm,loop_y,unset", "elm");
}
EOLIAN static void