From 569312353270c8e8df8a6ae2b76dc160973a6cc2 Mon Sep 17 00:00:00 2001 From: Hosang Kim Date: Fri, 23 Dec 2016 17:08:35 +0900 Subject: scroller: make over-scroll effect working over-scroller effect didn't work properly on multi-scale envir this patch modify over-scroller implementation to use min size rather than offset. Change-Id: I6f7c7e5fa1e2283c58ac0e718b577e1409f536ed --- mobile/widgets/scroller.edc | 2871 ++++++++----------------------------------- 1 file changed, 537 insertions(+), 2334 deletions(-) diff --git a/mobile/widgets/scroller.edc b/mobile/widgets/scroller.edc index 27f68bfe..becb4d18 100644 --- a/mobile/widgets/scroller.edc +++ b/mobile/widgets/scroller.edc @@ -1439,1608 +1439,508 @@ group { "elm/scroller/base/effect"; alias: "elm/gengrid/base/default"; alias: "elm/scroller/base/popup/no_inset_shadow"; inherit: "elm/scroller/base/default"; - parts { - rect { "shadow_top1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_bottom1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - color_class: "scroller/default/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_left1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_right1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE -1; - color_class: "scroller/default/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE+1 -1; - } - } - } - programs { - program { "on_loaded"; - script { - set_state(PART:"sb_hbar_clip", "hidden", 0.0); - set_state(PART:"sb_vbar_clip", "hidden", 0.0); - set_int(sbvis_h, 0); - set_int(sbvis_v, 0); - set_int(sbalways_v, 0); - set_int(sbalways_h, 0); - set_int(sbvis_timer, 0); - set_int(sh_v, 0); - emit("reload", "elm"); - } - } - program { "on_scrolled"; - script { - new v; - v = get_int(sbvis_v); - v |= get_int(sbalways_v); - if (!v) { - emit("do-show-vbar", ""); - set_int(sbvis_v, 1); - } - v = get_int(sbvis_h); - v |= get_int(sbalways_h); - if (!v) { - emit("do-show-hbar", ""); - set_int(sbvis_h, 1); - } - v = get_int(sbvis_timer); - if (v > 0.0) cancel_timer(v); - v = timer(0.2, "timer0", 0); - set_int(sbvis_timer, v); - } - } - program { "edge_top_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_top_down, 1); - } - } - // Effect Hide // - program { "edge_top_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_top_down, 0); - if (get_int(effect_top_start)) - { - set_int(effect_top_reset, 0); - if (!get_int(effect_top_anim)) - { - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - } - } - } - program { "edge_top_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_top_start)) - { - set_state(PART:"shadow_top1", "default", 0.0); - set_state(PART:"shadow_top2", "default", 0.0); - set_state(PART:"shadow_top3", "default", 0.0); - set_state(PART:"shadow_top4", "default", 0.0); - set_state(PART:"shadow_top5", "default", 0.0); - set_int(effect_top_reset, 0); - run_program(PROGRAM:"edge_top_init"); - } - } - } - program { "edge_top_end"; - action: STATE_SET "default"; - target: "shadow_top1"; - target: "shadow_top2"; - target: "shadow_top3"; - target: "shadow_top4"; - target: "shadow_top5"; - transition: SINUSOIDAL 0.3; - after: "edge_top_init"; - } - program { "edge_top_init"; - script { - set_int(effect_top_move, 0); - if (!get_int(effect_top_reset)) - set_int(effect_top_start, 0); - set_int(effect_top_max, 0); - set_int(top_prev_diff, 0); - set_int(effect_top_end, 0); - } - } - // Effect Show // - program { "edge_top"; - signal: "elm,edge,top"; - source: "elm"; - script { - if (!get_int(effect_top_start)) - { - set_int(effect_top_start, 1); - set_int(effect_top_anim, 1); - run_program(PROGRAM:"edge_top_start"); - } - } - } - program { "edge_top_start"; - action: STATE_SET "start"; - target: "shadow_top1"; - target: "shadow_top2"; - target: "shadow_top3"; - target: "shadow_top4"; - target: "shadow_top5"; - transition: SINUSOIDAL 0.2; - after: "edge_top_after"; - } - program { "edge_top_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(top_down_y, yy); - set_int(effect_top_anim, 0); - // mouse down // - if (get_int(effect_top_down)) - { - set_int(effect_top_move, 1); - } - // mouse up / - else - { - set_int(effect_top_reset, 0); - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - } - } - program { "edge_top_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_top_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(top_move_y, yy); - set_int(top_diff, (get_int(top_move_y) - get_int(top_down_y))); - if (get_int(top_diff) < get_int(top_prev_diff)) - { - set_int(top_prev_diff, 0); - set_int(effect_top_move, 0); - set_int(effect_top_reset, 1); - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - else - { - if (!get_int(effect_top_end)) - { - if (get_int(top_diff) <= 90 && !get_int(effect_top_max)) - { - fx1 = fx2 = fx3 = fx4 = fx5 = sin(get_int(top_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_top_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_top1", "default", 0.0); - set_state_val(PART:"shadow_top1", STATE_REL1_OFFSET, 0, round(fx1)); - set_state_val(PART:"shadow_top1", STATE_REL2_OFFSET, -1, round(fx1) - 2); - set_state(PART:"shadow_top1", "custom", 0.0); - - custom_state(PART:"shadow_top2", "default", 0.0); - set_state_val(PART:"shadow_top2", STATE_REL1_OFFSET, 0, round(fx2)); - set_state_val(PART:"shadow_top2", STATE_REL2_OFFSET, -1, round(fx2) - 2); - set_state(PART:"shadow_top2", "custom", 0.0); - - custom_state(PART:"shadow_top3", "default", 0.0); - set_state_val(PART:"shadow_top3", STATE_REL1_OFFSET, 0, round(fx3)); - set_state_val(PART:"shadow_top3", STATE_REL2_OFFSET, -1, round(fx3) - 2); - set_state(PART:"shadow_top3", "custom", 0.0); - - custom_state(PART:"shadow_top4", "default", 0.0); - set_state_val(PART:"shadow_top4", STATE_REL1_OFFSET, 0, round(fx4)); - set_state_val(PART:"shadow_top4", STATE_REL2_OFFSET, -1, round(fx4) - 2); - set_state(PART:"shadow_top4", "custom", 0.0); - - custom_state(PART:"shadow_top5", "default", 0.0); - set_state_val(PART:"shadow_top5", STATE_REL1_OFFSET, 0, round(fx5)); - set_state_val(PART:"shadow_top5", STATE_REL2_OFFSET, -1, round(fx5) - 2); - set_state(PART:"shadow_top5", "custom", 0.0); - - set_int(top_prev_diff, get_int(top_diff)); - } - } - } - } - } - program { "edge_bottom_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_bottom_down, 1); - } - } - // Effect Hide / - program { "edge_bottom_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_bottom_down, 0); - if (get_int(effect_bottom_start)) - { - set_int(effect_bottom_reset, 0); - if (!get_int(effect_bottom_anim)) - { - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - } - } - } - program { "edge_bottom_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_bottom_start)) - { - set_state(PART:"shadow_bottom1", "default", 0.0); - set_state(PART:"shadow_bottom2", "default", 0.0); - set_state(PART:"shadow_bottom3", "default", 0.0); - set_state(PART:"shadow_bottom4", "default", 0.0); - set_state(PART:"shadow_bottom5", "default", 0.0); - set_int(effect_bottom_reset, 0); - run_program(PROGRAM:"edge_bottom_init"); - } - } - } - program { "edge_bottom_end"; - action: STATE_SET "default"; - target: "shadow_bottom1"; - target: "shadow_bottom2"; - target: "shadow_bottom3"; - target: "shadow_bottom4"; - target: "shadow_bottom5"; - transition: SINUSOIDAL 0.3; - after: "edge_bottom_init"; - } - program { "edge_bottom_init"; - script { - set_int(effect_bottom_move, 0); - if (!get_int(effect_bottom_reset)) - set_int(effect_bottom_start, 0); - set_int(effect_bottom_max, 0); - set_int(bottom_prev_diff, 0); - set_int(effect_bottom_end, 0); - } - } - // Effect Show // - program { "edge_bottom"; - signal: "elm,edge,bottom"; - source: "elm"; - script { - if (!get_int(effect_bottom_start)) - { - set_int(effect_bottom_start, 1); - set_int(effect_bottom_anim, 1); - run_program(PROGRAM:"edge_bottom_start"); - } - } - } - program { "edge_bottom_start"; - action: STATE_SET "start"; - target: "shadow_bottom1"; - target: "shadow_bottom2"; - target: "shadow_bottom3"; - target: "shadow_bottom4"; - target: "shadow_bottom5"; - transition: SINUSOIDAL 0.2; - after: "edge_bottom_after"; - } - program { "edge_bottom_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(effect_bottom_anim, 0); - set_int(bottom_down_y, yy); - // mouse down // - if (get_int(effect_bottom_down)) - { - set_int(effect_bottom_move, 1); - } - // mouse up // - else - { - set_int(effect_bottom_reset, 0); - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - } - } - program { "edge_bottom_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_bottom_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(bottom_move_y, yy); - set_int(bottom_diff, (get_int(bottom_down_y) - get_int(bottom_move_y))); - if (get_int(bottom_diff) < get_int(bottom_prev_diff)) - { - set_int(bottom_prev_diff, 0); - set_int(effect_bottom_move, 0); - set_int(effect_bottom_reset, 1); - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - else - { - if (!get_int(effect_bottom_end)) - { - if (get_int(bottom_diff) <= 90 && !get_int(effect_bottom_max)) - { - fx1 = fx2 = fx3 = fx4 = fx5 = sin(get_int(bottom_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_bottom_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_bottom1", "default", 0.0); - set_state_val(PART:"shadow_bottom1", STATE_REL1_OFFSET, 0, round(fx1) * -1 + 1); - set_state_val(PART:"shadow_bottom1", STATE_REL2_OFFSET, -1, (round(fx1) - 1) * -1); - set_state(PART:"shadow_bottom1", "custom", 0.0); - - custom_state(PART:"shadow_bottom2", "default", 0.0); - set_state_val(PART:"shadow_bottom2", STATE_REL1_OFFSET, 0, round(fx2) * -1 + 1); - set_state_val(PART:"shadow_bottom2", STATE_REL2_OFFSET, -1, (round(fx2) - 1) * -1); - set_state(PART:"shadow_bottom2", "custom", 0.0); - - custom_state(PART:"shadow_bottom3", "default", 0.0); - set_state_val(PART:"shadow_bottom3", STATE_REL1_OFFSET, 0, round(fx3) * -1 + 1); - set_state_val(PART:"shadow_bottom3", STATE_REL2_OFFSET, -1, (round(fx3) - 1) * -1 ); - set_state(PART:"shadow_bottom3", "custom", 0.0); - - custom_state(PART:"shadow_bottom4", "default", 0.0); - set_state_val(PART:"shadow_bottom4", STATE_REL1_OFFSET, 0, round(fx4) * -1 + 1); - set_state_val(PART:"shadow_bottom4", STATE_REL2_OFFSET, -1, (round(fx4) - 1) * -1 ); - set_state(PART:"shadow_bottom4", "custom", 0.0); - - custom_state(PART:"shadow_bottom5", "default", 0.0); - set_state_val(PART:"shadow_bottom5", STATE_REL1_OFFSET, 0, round(fx5) * -1 + 1); - set_state_val(PART:"shadow_bottom5", STATE_REL2_OFFSET, -1, (round(fx5) - 1) * -1 ); - set_state(PART:"shadow_bottom5", "custom", 0.0); - - set_int(bottom_prev_diff, get_int(bottom_diff)); - } - } - } - } - } - program { "edge_left_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_left_down, 1); - } - } - // Effect Hide // - program { "edge_left_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_left_down, 0); - if (get_int(effect_left_start)) - { - set_int(effect_left_reset, 0); - if (!get_int(effect_left_anim)) - { - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - } - } - } - program { "edge_left_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_left_start)) - { - set_state(PART:"shadow_left1", "default", 0.0); - set_state(PART:"shadow_left2", "default", 0.0); - set_state(PART:"shadow_left3", "default", 0.0); - set_state(PART:"shadow_left4", "default", 0.0); - set_state(PART:"shadow_left5", "default", 0.0); - set_int(effect_left_reset, 0); - run_program(PROGRAM:"edge_left_init"); - } - } - } - program { "edge_left_end"; - action: STATE_SET "default"; - target: "shadow_left1"; - target: "shadow_left2"; - target: "shadow_left3"; - target: "shadow_left4"; - target: "shadow_left5"; - transition: SINUSOIDAL 0.3; - after: "edge_left_init"; - } - program { "edge_left_init"; - script { - set_int(effect_left_move, 0); - if (!get_int(effect_left_reset)) - set_int(effect_left_start, 0); - set_int(effect_left_max, 0); - set_int(left_prev_diff, 0); - set_int(effect_left_end, 0); - } - } - // Effect Show // - program { "edge_left"; - signal: "elm,edge,left"; - source: "elm"; - script { - if (!get_int(effect_left_start)) - { - set_int(effect_left_start, 1); - set_int(effect_left_anim, 1); - run_program(PROGRAM:"edge_left_start"); - } - } - } - program { "edge_left_start"; - action: STATE_SET "start"; - target: "shadow_left1"; - target: "shadow_left3"; - target: "shadow_left3"; - target: "shadow_left4"; - target: "shadow_left5"; - transition: SINUSOIDAL 0.2; - after: "edge_left_after"; - } - program { "edge_left_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(left_down_x, xx); - set_int(effect_left_anim, 0); - // mouse down // - if (get_int(effect_left_down)) - { - set_int(effect_left_move, 1); - } - // mouse up // - else - { - set_int(effect_left_reset, 0); - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - } - } - program { "edge_left_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_left_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(left_move_x, xx); - set_int(left_diff, (get_int(left_move_x) - get_int(left_down_x))); - if (get_int(left_diff) < get_int(left_prev_diff)) - { - set_int(left_prev_diff, 0); - set_int(effect_left_move, 0); - set_int(effect_left_reset, 1); - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - else - { - if (!get_int(effect_left_end)) - { - if (get_int(left_diff) <= 90 && !get_int(effect_left_max)) - { - fx1 = fx2 = fx3 = sin(get_int(left_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_left_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_left1", "default", 0.0); - set_state_val(PART:"shadow_left1", STATE_REL1_OFFSET, round(fx1), 0); - set_state_val(PART:"shadow_left1", STATE_REL2_OFFSET, round(fx1) - 1, -1); - set_state(PART:"shadow_left1", "custom", 0.0); - - custom_state(PART:"shadow_left2", "default", 0.0); - set_state_val(PART:"shadow_left2", STATE_REL1_OFFSET, round(fx2), 0); - set_state_val(PART:"shadow_left2", STATE_REL2_OFFSET, round(fx2) - 1, - 1); - set_state(PART:"shadow_left2", "custom", 0.0); - - custom_state(PART:"shadow_left3", "default", 0.0); - set_state_val(PART:"shadow_left3", STATE_REL1_OFFSET, round(fx3), 0); - set_state_val(PART:"shadow_left3", STATE_REL2_OFFSET, round(fx3) - 1, - 1); - set_state(PART:"shadow_left3", "custom", 0.0); - - custom_state(PART:"shadow_left4", "default", 0.0); - set_state_val(PART:"shadow_left4", STATE_REL1_OFFSET, round(fx4), 0); - set_state_val(PART:"shadow_left4", STATE_REL2_OFFSET, round(fx4) - 1, - 1); - set_state(PART:"shadow_left4", "custom", 0.0); - - custom_state(PART:"shadow_left5", "default", 0.0); - set_state_val(PART:"shadow_left5", STATE_REL1_OFFSET, round(fx5), 0); - set_state_val(PART:"shadow_left5", STATE_REL2_OFFSET, round(fx5) - 1, - 1); - set_state(PART:"shadow_left5", "custom", 0.0); - - set_int(left_prev_diff, get_int(left_diff)); - } - } - } - } - } - program { "edge_right_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_right_down, 1); - } - } - // Effect Hide // - program { "edge_right_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_right_down, 0); - if (get_int(effect_right_start)) - { - set_int(effect_right_reset, 0); - if (!get_int(effect_right_anim)) - { - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - } - } - } - program { "edge_right_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_right_start)) - { - set_state(PART:"shadow_right1", "default", 0.0); - set_state(PART:"shadow_right2", "default", 0.0); - set_state(PART:"shadow_right3", "default", 0.0); - set_state(PART:"shadow_right4", "default", 0.0); - set_state(PART:"shadow_right5", "default", 0.0); - set_int(effect_right_reset, 0); - run_program(PROGRAM:"edge_right_init"); - } - } - } - program { "edge_right_end"; - action: STATE_SET "default"; - target: "shadow_right1"; - target: "shadow_right2"; - target: "shadow_right3"; - target: "shadow_right4"; - target: "shadow_right5"; - transition: SINUSOIDAL 0.3; - after: "edge_right_init"; - } - program { "edge_right_init"; - script { - set_int(effect_right_move, 0); - if (!get_int(effect_right_reset)) - set_int(effect_right_start, 0); - set_int(effect_right_max, 0); - set_int(right_prev_diff, 0); - set_int(effect_right_end, 0); - } - } - // Effect Show // - program { "edge_right"; - signal: "elm,edge,right"; - source: "elm"; - script { - if (!get_int(effect_right_start)) - { - set_int(effect_right_start, 1); - set_int(effect_right_anim, 1); - run_program(PROGRAM:"edge_right_start"); - } - } - } - program { "edge_right_start"; - action: STATE_SET "start"; - target: "shadow_right1"; - target: "shadow_right2"; - target: "shadow_right3"; - target: "shadow_right4"; - target: "shadow_right5"; - transition: SINUSOIDAL 0.2; - after: "edge_right_after"; - } - program { "edge_right_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(right_down_x, xx); - set_int(effect_right_anim, 0); - // mouse down // - if (get_int(effect_right_down)) - { - set_int(effect_right_move, 1); - } - // mouse up // - else - { - set_int(effect_right_reset, 0); - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - } - } - program { "edge_right_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_right_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(right_move_x, xx); - set_int(right_diff, (get_int(right_down_x) - get_int(right_move_x))); - if (get_int(right_diff) < get_int(right_prev_diff)) - { - set_int(right_prev_diff, 0); - set_int(effect_right_move, 0); - set_int(effect_right_reset, 1); - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - else - { - if (!get_int(effect_right_end)) - { - if (get_int(right_diff) <= 90 && !get_int(effect_right_max)) - { - fx1 = fx2 = fx3 = sin(get_int(right_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_right_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_right1", "default", 0.0); - set_state_val(PART:"shadow_right1", STATE_REL1_OFFSET, round(fx1) * -1, 0); - set_state_val(PART:"shadow_right1", STATE_REL2_OFFSET, (round(fx1) - 1) * -1, -1); - set_state(PART:"shadow_right1", "custom", 0.0); - - custom_state(PART:"shadow_right2", "default", 0.0); - set_state_val(PART:"shadow_right2", STATE_REL1_OFFSET, round(fx2) * -1, 0); - set_state_val(PART:"shadow_right2", STATE_REL2_OFFSET, (round(fx2) - 1) * -1, - 1); - set_state(PART:"shadow_right2", "custom", 0.0); - - custom_state(PART:"shadow_right3", "default", 0.0); - set_state_val(PART:"shadow_right3", STATE_REL1_OFFSET, round(fx3) * -1, 0); - set_state_val(PART:"shadow_right3", STATE_REL2_OFFSET, (round(fx3) - 1) * -1, - 1); - set_state(PART:"shadow_right3", "custom", 0.0); - - custom_state(PART:"shadow_right4", "default", 0.0); - set_state_val(PART:"shadow_right4", STATE_REL1_OFFSET, round(fx4) * -1, 0); - set_state_val(PART:"shadow_right4", STATE_REL2_OFFSET, (round(fx4) - 1) * -1, - 1); - set_state(PART:"shadow_right4", "custom", 0.0); - - custom_state(PART:"shadow_right5", "default", 0.0); - set_state_val(PART:"shadow_right5", STATE_REL1_OFFSET, round(fx5) * -1, 0); - set_state_val(PART:"shadow_right5", STATE_REL2_OFFSET, (round(fx5) - 1) * -1, - 1); - set_state(PART:"shadow_right5", "custom", 0.0); - - set_int(right_prev_diff, get_int(right_diff)); - } - } - } - } - } - } -} - -group { "elm/scroller/base/handler/effect"; - alias: "elm/gengrid/base/handler"; - inherit: "elm/scroller/base/handler"; - - parts { - rect { "shadow_top1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE-1; - } - } - rect { "shadow_top5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 0.0; - rel2.to: "bg"; - align: 0.5 1.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - rel2.offset: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE-1; - } - } - - rect { "shadow_bottom1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE+1; - } - } - rect { "shadow_bottom2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_bottom5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 1.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - align: 0.5 0.0; - min: 0 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - max: -1 SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - color_class: "scroller/handler/end_effect"; - fixed: 0 1; - } - desc { "start"; - inherit: "default"; - rel1.offset: 0 -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - rel2.offset: -1 -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE+1; - } - } - rect { "shadow_left1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_left5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 0.0 0.0; - rel1.to: "bg"; - rel2.relative: 0.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 1.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE 0; - rel2.offset: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE-1 -1; - } - } - rect { "shadow_right1"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right2"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_SECOND_LAYER_Min_SIZE+1 -1; - } - } - rect { "shadow_right3"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE+1 -1; - } - } - rect { "shadow_right4"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE+1 -1; + +// Macro +#define SCROLL_EDGE_MOUSE_DOWN_PROGRAM(_dir) \ + program { "edge_"#_dir"_mouse_down"; \ + signal: "elm,state,mouse,down"; \ + source: "elm"; \ + script { \ + set_int(effect_##_dir##_down, 1); \ + } \ + } + +#define SCROLL_EDGE_MOUSE_UP_PROGRAM(_dir) \ + program { "edge_"#_dir"_mouse_up"; \ + signal: "elm,state,mouse,up"; \ + source: "elm"; \ + script { \ + set_int(effect_##_dir##_down, 0); \ + if (get_int(effect_##_dir##_start)) \ + { \ + set_int(effect_##_dir##_reset, 0); \ + if (!get_int(effect_##_dir##_anim)) \ + { \ + if (!get_int(effect_##_dir##_end)) \ + { \ + set_int(effect_##_dir##_end, 1); \ + run_program(PROGRAM:"edge_"#_dir"_end"); \ + } \ + } \ + } \ + } \ + } + +#define SCROLL_EDGE_SCROLL_PROGRAM(_dir) \ + program { "edge_"#_dir"_scroll"; \ + signal: "elm,action,scroll"; \ + source: "elm"; \ + script { \ + if (get_int(effect_##_dir##_start)) \ + { \ + set_state(PART:"shadow_"#_dir"1", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"1", "default", 0.0); \ + set_state(PART:"shadow_"#_dir"2", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"2", "default", 0.0); \ + set_state(PART:"shadow_"#_dir"3", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"3", "default", 0.0); \ + set_state(PART:"shadow_"#_dir"4", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"4", "default", 0.0); \ + set_state(PART:"shadow_"#_dir"5", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"5", "default", 0.0); \ + set_int(effect_##_dir##_reset, 0); \ + run_program(PROGRAM:"edge_"#_dir"_init"); \ + } \ + } \ + } + +#define SCROLL_EDGE_END_PROGRAM(_dir) \ + program { "edge_"#_dir"_end"; \ + action: STATE_SET "default"; \ + target: "shadow_"#_dir"1"; \ + target: "shadow_"#_dir"2"; \ + target: "shadow_"#_dir"3"; \ + target: "shadow_"#_dir"4"; \ + target: "shadow_"#_dir"5"; \ + transition: SINUSOIDAL 0.3; \ + after: "edge_"#_dir"_init"; \ + } + +#define SCROLL_EDGE_INIT_PROGRAM(_dir) \ + program { "edge_"#_dir"_init"; \ + script { \ + set_int(effect_##_dir##_move, 0); \ + if (!get_int(effect_##_dir##_reset)) \ + set_int(effect_##_dir##_start, 0); \ + set_int(effect_##_dir##_max, 0); \ + set_int(_dir##_prev_diff, 0); \ + set_int(effect_##_dir##_end, 0); \ + set_state(PART:"spacer_"#_dir"1", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"2", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"3", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"4", "default", 0.0); \ + set_state(PART:"spacer_"#_dir"5", "default", 0.0); \ + } \ + } +#define SCROLL_EDGE_PROGRAM(_dir) \ + program { "edge_"#_dir; \ + signal: "elm,edge,"#_dir; \ + source: "elm"; \ + script { \ + if (!get_int(effect_##_dir##_start)) \ + { \ + set_int(effect_##_dir##_start, 1); \ + set_int(effect_##_dir##_anim, 1); \ + run_program(PROGRAM:"edge_"#_dir"_start"); \ + } \ + } \ + } + +#define SCROLL_EDGE_START_PROGRAM(_dir) \ + program { "edge_"#_dir"_start"; \ + action: STATE_SET "start"; \ + target: "shadow_"#_dir"1"; \ + target: "shadow_"#_dir"2"; \ + target: "shadow_"#_dir"3"; \ + target: "shadow_"#_dir"4"; \ + target: "shadow_"#_dir"5"; \ + transition: SINUSOIDAL 0.2; \ + after: "edge_"#_dir"_after"; \ + } + +#define SCROLL_EDGE_AFTER_PROGRAM(_dir) \ + program { "edge_"#_dir"_after"; \ + script { \ + new xx, yy; \ + get_mouse(xx, yy); \ + set_int(_dir##_down_x, xx); \ + set_int(_dir##_down_y, yy); \ + set_int(effect_##_dir##_anim, 0); \ + if (get_int(effect_##_dir##_down)) \ + { \ + set_int(effect_##_dir##_move, 1); \ + } \ + else \ + { \ + set_int(effect_##_dir##_reset, 0); \ + if (!get_int(effect_##_dir##_end)) \ + { \ + set_int(effect_##_dir##_end, 1); \ + run_program(PROGRAM:"edge_"#_dir"_end"); \ + } \ + } \ + } \ + } + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_DIFF_VERNOR(_dir) \ + set_int(_dir##_diff, (get_int(_dir##_move_y) - get_int(_dir##_down_y))); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_DIFF_VERREV(_dir) \ + set_int(_dir##_diff, (get_int(_dir##_down_y) - get_int(_dir##_move_y))); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_DIFF_HORNOR(_dir) \ + set_int(_dir##_diff, (get_int(_dir##_move_x) - get_int(_dir##_down_x))); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_DIFF_HORREV(_dir) \ + set_int(_dir##_diff, (get_int(_dir##_down_x) - get_int(_dir##_move_x))); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_STATE_VER(_dir) \ + custom_state(PART:"spacer_"#_dir"1", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"1", STATE_MIN, 0, round(fx1)); \ + set_state_val(PART:"spacer_"#_dir"1", STATE_MAX, -1, round(fx1)); \ + set_state(PART:"spacer_"#_dir"1", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"2", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"2", STATE_MIN, 0, round(fx2)); \ + set_state_val(PART:"spacer_"#_dir"2", STATE_MAX, -1, round(fx2)); \ + set_state(PART:"spacer_"#_dir"2", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"3", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"3", STATE_MIN, 0, round(fx3)); \ + set_state_val(PART:"spacer_"#_dir"3", STATE_MAX, -1, round(fx3)); \ + set_state(PART:"spacer_"#_dir"3", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"4", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"4", STATE_MIN, 0, round(fx4)); \ + set_state_val(PART:"spacer_"#_dir"4", STATE_MAX, -1, round(fx4)); \ + set_state(PART:"spacer_"#_dir"4", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"5", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"5", STATE_MIN, 0, round(fx5)); \ + set_state_val(PART:"spacer_"#_dir"5", STATE_MAX, -1, round(fx5)); \ + set_state(PART:"spacer_"#_dir"5", "custom", 0.0); \ + set_int(_dir##_prev_diff, get_int(_dir##_diff)); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM_STATE_HOR(_dir) \ + custom_state(PART:"spacer_"#_dir"1", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"1", STATE_MIN, round(fx1), 0); \ + set_state_val(PART:"spacer_"#_dir"1", STATE_MAX, round(fx1), -1); \ + set_state(PART:"spacer_"#_dir"1", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"2", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"2", STATE_MIN, round(fx2), 0); \ + set_state_val(PART:"spacer_"#_dir"2", STATE_MAX, round(fx2), -1); \ + set_state(PART:"spacer_"#_dir"2", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"3", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"3", STATE_MIN, round(fx3), 0); \ + set_state_val(PART:"spacer_"#_dir"3", STATE_MAX, round(fx3), -1); \ + set_state(PART:"spacer_"#_dir"3", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"4", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"4", STATE_MIN, round(fx4), 0); \ + set_state_val(PART:"spacer_"#_dir"4", STATE_MAX, round(fx4), -1); \ + set_state(PART:"spacer_"#_dir"4", "custom", 0.0); \ + custom_state(PART:"spacer_"#_dir"5", "default", 0.0); \ + set_state_val(PART:"spacer_"#_dir"5", STATE_MIN, round(fx5), 0); \ + set_state_val(PART:"spacer_"#_dir"5", STATE_MAX, round(fx5), -1); \ + set_state(PART:"spacer_"#_dir"5", "custom", 0.0); \ + set_int(_dir##_prev_diff, get_int(_dir##_diff)); + +#define SCROLL_EDGE_MOUSE_MOVE_PROGRAM(_dir, _hor, _rev) \ + program { "edge_"#_dir"_mouse_move"; \ + signal: "elm,state,mouse,move"; \ + source: "elm"; \ + script { \ + if (get_int(effect_##_dir##_move)) \ + { \ + new xx, yy; \ + new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; \ + get_mouse(xx, yy); \ + set_int(_dir##_move_x, xx); \ + set_int(_dir##_move_y, yy); \ + SCROLL_EDGE_MOUSE_MOVE_PROGRAM_DIFF_##_hor##_rev(_dir) \ + if (get_int(_dir##_diff) < get_int(_dir##_prev_diff)) \ + { \ + set_int(_dir##_prev_diff, 0); \ + set_int(effect_##_dir##_move, 0); \ + set_int(effect_##_dir##_reset, 1); \ + if (!get_int(effect_##_dir##_end)) \ + { \ + set_int(effect_##_dir##_end, 1); \ + run_program(PROGRAM:"edge_"#_dir"_end"); \ + } \ + } \ + else \ + { \ + if (!get_int(effect_##_dir##_end)) \ + { \ + if (get_int(_dir##_diff) <= 90 && !get_int(effect_##_dir##_max)) \ + { \ + fx1 = fx2 = fx3 = fx4 = fx5 = sin(get_int(_dir##_diff), DEGREES); \ + fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; \ + fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; \ + fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; \ + fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; \ + fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; \ + } \ + else \ + { \ + set_int(effect_##_dir##_max, 1); \ + fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; \ + fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; \ + fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; \ + fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; \ + fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; \ + } \ + SCROLL_EDGE_MOUSE_MOVE_PROGRAM_STATE_##_hor(_dir) \ + } \ + } \ + } \ + } \ + } + +#define SHADOW_PART_SPACER_top(_dir, _num, _NUM) \ + spacer { "spacer_top"#_num; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "bg"; \ + align: 0.5 0.0; \ + min: 0 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE; \ + max: -1 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE; \ + } \ + } + +#define SHADOW_PART_SPACER_bottom(_dir, _num, _NUM) \ + spacer { "spacer_bottom"#_num; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 1.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "bg"; \ + align: 0.5 1.0; \ + min: 0 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE; \ + max: -1 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE; \ + } \ + } + +#define SHADOW_PART_SPACER_left(_dir, _num, _NUM) \ + spacer { "spacer_left"#_num; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 0.0 1.0; \ + rel2.to: "bg"; \ + align: 0.0 0.5; \ + min: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE 0; \ + max: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE -1; \ + } \ + } +#define SHADOW_PART_SPACER_right(_dir, _num, _NUM) \ + spacer { "spacer_right"#_num; \ + scale; \ + desc { "default"; \ + rel1.relative: 1.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "bg"; \ + align: 1.0 0.5; \ + min: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE 0; \ + max: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MIN_SIZE -1; \ + } \ + } +#define SHADOW_PART_RECT_top(_dir, _num, _NUM) \ + rect { "shadow_top"#_num; \ + clip: "clipper"; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "bg"; \ + align: 0.5 1.0; \ + min: 0 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE; \ + max: -1 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE; \ + color_class: "scroller/default/end_effect"; \ + fixed: 0 1; \ + } \ + desc { "start"; \ + inherit: "default"; \ + rel1.relative: 0.0 1.0; \ + rel1.to: "spacer_top"#_num; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "spacer_top"#_num; \ + align: 0.5 1.0; \ + } \ + } +#define SHADOW_PART_RECT_bottom(_dir, _num, _NUM) \ + rect { "shadow_bottom"#_num; \ + clip: "clipper"; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 1.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "bg"; \ + align: 0.5 0.0; \ + min: 0 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE; \ + max: -1 SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE; \ + color_class: "scroller/default/end_effect"; \ + fixed: 0 1; \ + } \ + desc { "start"; \ + inherit: "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "spacer_bottom"#_num; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "spacer_bottom"#_num; \ + align: 0.5 0.0; \ + } \ + } + +#define SHADOW_PART_RECT_left(_dir, _num, _NUM) \ + rect { "shadow_left"#_num; \ + clip: "clipper"; \ + scale; \ + desc { "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 0.0 1.0; \ + rel2.to: "bg"; \ + rel2.offset: -1 -1; \ + align: 1.0 0.5; \ + min: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE 0; \ + max: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE -1; \ + color_class: "scroller/default/end_effect"; \ + fixed: 1 0; \ + } \ + desc { "start"; \ + inherit: "default"; \ + rel1.relative: 1.0 0.0; \ + rel1.to: "spacer_left"#_num; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "spacer_left"#_num; \ + align: 1.0 0.5; \ + } \ + } + +#define SHADOW_PART_RECT_right(_dir, _num, _NUM) \ + rect { "shadow_right"#_num; \ + clip: "clipper"; \ + scale; \ + desc { "default"; \ + rel1.relative: 1.0 0.0; \ + rel1.to: "bg"; \ + rel2.relative: 1.0 1.0; \ + rel2.to: "bg"; \ + rel2.offset: -1 -1; \ + align: 0.0 0.5; \ + min: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE 0; \ + max: SCROLLER_EFFECT_SHADOW_##_NUM##_LAYER_MAX_SIZE -1; \ + color_class: "scroller/default/end_effect"; \ + fixed: 1 0; \ + } \ + desc { "start"; \ + inherit: "default"; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "spacer_right"#_num; \ + rel2.relative: 0.0 1.0; \ + rel2.to: "spacer_right"#_num; \ + align: 0.0 0.5; \ + } \ + } + +#define SHADOW_PART_LAYER(_dir, _num, _NUM) \ + SHADOW_PART_SPACER_##_dir(_dir, _num, _NUM) \ + SHADOW_PART_RECT_##_dir(_dir, _num, _NUM) + +#define SHADOW_PART(_dir) \ + SHADOW_PART_LAYER(_dir, 1, FIRST) \ + SHADOW_PART_LAYER(_dir, 2, SECOND) \ + SHADOW_PART_LAYER(_dir, 3, THIRD) \ + SHADOW_PART_LAYER(_dir, 4, FOURTH) \ + SHADOW_PART_LAYER(_dir, 5, FIFTH) +// Macro END + + parts { + SHADOW_PART(top) + SHADOW_PART(bottom) + SHADOW_PART(left) + SHADOW_PART(right) + } + programs { + program { "on_loaded"; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + set_int(sh_v, 0); + emit("reload", "elm"); } } - rect { "shadow_right5"; - clip: "clipper"; - scale; - desc { "default"; - rel1.relative: 1.0 0.0; - rel1.to: "bg"; - rel2.relative: 1.0 1.0; - rel2.to: "bg"; - rel2.offset: -1 -1; - align: 0.0 0.5; - min: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE 0; - max: SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE -1; - color_class: "scroller/handler/end_effect"; - fixed: 1 0; - } - desc { "start"; - inherit: "default"; - rel1.offset: -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE 0; - rel2.offset: -SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE+1 -1; + program { "on_scrolled"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0.0) cancel_timer(v); + v = timer(0.2, "timer0", 0); + set_int(sbvis_timer, v); } } + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(top) + SCROLL_EDGE_MOUSE_UP_PROGRAM(top) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(top, VER, NOR) + SCROLL_EDGE_INIT_PROGRAM(top) + SCROLL_EDGE_SCROLL_PROGRAM(top) + SCROLL_EDGE_END_PROGRAM(top) + SCROLL_EDGE_START_PROGRAM(top) + SCROLL_EDGE_AFTER_PROGRAM(top) + SCROLL_EDGE_PROGRAM(top) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(bottom) + SCROLL_EDGE_MOUSE_UP_PROGRAM(bottom) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(bottom, VER, REV) + SCROLL_EDGE_INIT_PROGRAM(bottom) + SCROLL_EDGE_SCROLL_PROGRAM(bottom) + SCROLL_EDGE_END_PROGRAM(bottom) + SCROLL_EDGE_START_PROGRAM(bottom) + SCROLL_EDGE_AFTER_PROGRAM(bottom) + SCROLL_EDGE_PROGRAM(bottom) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(left) + SCROLL_EDGE_MOUSE_UP_PROGRAM(left) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(left, HOR, NOR) + SCROLL_EDGE_INIT_PROGRAM(left) + SCROLL_EDGE_SCROLL_PROGRAM(left) + SCROLL_EDGE_END_PROGRAM(left) + SCROLL_EDGE_START_PROGRAM(left) + SCROLL_EDGE_AFTER_PROGRAM(left) + SCROLL_EDGE_PROGRAM(left) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(right) + SCROLL_EDGE_MOUSE_UP_PROGRAM(right) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(right, HOR, REV) + SCROLL_EDGE_INIT_PROGRAM(right) + SCROLL_EDGE_SCROLL_PROGRAM(right) + SCROLL_EDGE_END_PROGRAM(right) + SCROLL_EDGE_START_PROGRAM(right) + SCROLL_EDGE_AFTER_PROGRAM(right) + SCROLL_EDGE_PROGRAM(right) + } // programs +} + +group { "elm/scroller/base/handler/effect"; + alias: "elm/gengrid/base/handler"; + inherit: "elm/scroller/base/handler"; + parts { + SHADOW_PART(top) + SHADOW_PART(bottom) + SHADOW_PART(left) + SHADOW_PART(right) } programs { program { "on_loaded"; @@ -3132,742 +2032,45 @@ group { "elm/scroller/base/handler/effect"; set_int(sbvis_timer, v); } } - program { "edge_top_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_top_down, 1); - } - } - // Effect Hide // - program { "edge_top_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_top_down, 0); - if (get_int(effect_top_start)) - { - set_int(effect_top_reset, 0); - if (!get_int(effect_top_anim)) - { - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - } - } - } - program { "edge_top_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_top_start)) - { - set_state(PART:"shadow_top1", "default", 0.0); - set_state(PART:"shadow_top2", "default", 0.0); - set_state(PART:"shadow_top3", "default", 0.0); - set_state(PART:"shadow_top4", "default", 0.0); - set_state(PART:"shadow_top5", "default", 0.0); - set_int(effect_top_reset, 0); - run_program(PROGRAM:"edge_top_init"); - } - } - } - program { "edge_top_end"; - action: STATE_SET "default"; - target: "shadow_top1"; - target: "shadow_top2"; - target: "shadow_top3"; - target: "shadow_top4"; - target: "shadow_top5"; - transition: SINUSOIDAL 0.3; - after: "edge_top_init"; - } - program { "edge_top_init"; - script { - set_int(effect_top_move, 0); - if (!get_int(effect_top_reset)) - set_int(effect_top_start, 0); - set_int(effect_top_max, 0); - set_int(top_prev_diff, 0); - set_int(effect_top_end, 0); - } - } - // Effect Show // - program { "edge_top"; - signal: "elm,edge,top"; - source: "elm"; - script { - if (!get_int(effect_top_start)) - { - set_int(effect_top_start, 1); - set_int(effect_top_anim, 1); - run_program(PROGRAM:"edge_top_start"); - } - } - } - program { "edge_top_start"; - action: STATE_SET "start"; - target: "shadow_top1"; - target: "shadow_top2"; - target: "shadow_top3"; - target: "shadow_top4"; - target: "shadow_top5"; - transition: SINUSOIDAL 0.2; - after: "edge_top_after"; - } - program { "edge_top_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(top_down_y, yy); - set_int(effect_top_anim, 0); - // mouse down // - if (get_int(effect_top_down)) - { - set_int(effect_top_move, 1); - } - // mouse up // - else - { - set_int(effect_top_reset, 0); - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - } - } - program { "edge_top_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_top_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(top_move_y, yy); - set_int(top_diff, (get_int(top_move_y) - get_int(top_down_y))); - if (get_int(top_diff) < get_int(top_prev_diff)) - { - set_int(top_prev_diff, 0); - set_int(effect_top_move, 0); - set_int(effect_top_reset, 1); - if (!get_int(effect_top_end)) - { - set_int(effect_top_end, 1); - run_program(PROGRAM:"edge_top_end"); - } - } - else - { - if (!get_int(effect_top_end)) - { - if (get_int(top_diff) <= 90 && !get_int(effect_top_max)) - { - fx1 = fx2 = fx3 = fx4 = fx5 = sin(get_int(top_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_top_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_top1", "default", 0.0); - set_state_val(PART:"shadow_top1", STATE_REL1_OFFSET, 0, round(fx1)); - set_state_val(PART:"shadow_top1", STATE_REL2_OFFSET, -1, round(fx1) - 2); - set_state(PART:"shadow_top1", "custom", 0.0); - - custom_state(PART:"shadow_top2", "default", 0.0); - set_state_val(PART:"shadow_top2", STATE_REL1_OFFSET, 0, round(fx2)); - set_state_val(PART:"shadow_top2", STATE_REL2_OFFSET, -1, round(fx2) - 2); - set_state(PART:"shadow_top2", "custom", 0.0); - - custom_state(PART:"shadow_top3", "default", 0.0); - set_state_val(PART:"shadow_top3", STATE_REL1_OFFSET, 0, round(fx3)); - set_state_val(PART:"shadow_top3", STATE_REL2_OFFSET, -1, round(fx3) - 2); - set_state(PART:"shadow_top3", "custom", 0.0); - - custom_state(PART:"shadow_top4", "default", 0.0); - set_state_val(PART:"shadow_top4", STATE_REL1_OFFSET, 0, round(fx4)); - set_state_val(PART:"shadow_top4", STATE_REL2_OFFSET, -1, round(fx4) - 2); - set_state(PART:"shadow_top4", "custom", 0.0); - - custom_state(PART:"shadow_top5", "default", 0.0); - set_state_val(PART:"shadow_top5", STATE_REL1_OFFSET, 0, round(fx5)); - set_state_val(PART:"shadow_top5", STATE_REL2_OFFSET, -1, round(fx5) - 2); - set_state(PART:"shadow_top5", "custom", 0.0); - - set_int(top_prev_diff, get_int(top_diff)); - } - } - } - } - } - program { "edge_bottom_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_bottom_down, 1); - } - } - // Effect Hide // - program { "edge_bottom_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_bottom_down, 0); - if (get_int(effect_bottom_start)) - { - set_int(effect_bottom_reset, 0); - if (!get_int(effect_bottom_anim)) - { - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - } - } - } - program { "edge_bottom_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_bottom_start)) - { - set_state(PART:"shadow_bottom1", "default", 0.0); - set_state(PART:"shadow_bottom2", "default", 0.0); - set_state(PART:"shadow_bottom3", "default", 0.0); - set_state(PART:"shadow_bottom4", "default", 0.0); - set_state(PART:"shadow_bottom5", "default", 0.0); - set_int(effect_bottom_reset, 0); - run_program(PROGRAM:"edge_bottom_init"); - } - } - } - program { "edge_bottom_end"; - action: STATE_SET "default"; - target: "shadow_bottom1"; - target: "shadow_bottom2"; - target: "shadow_bottom3"; - target: "shadow_bottom4"; - target: "shadow_bottom5"; - transition: SINUSOIDAL 0.3; - after: "edge_bottom_init"; - } - program { "edge_bottom_init"; - script { - set_int(effect_bottom_move, 0); - if (!get_int(effect_bottom_reset)) - set_int(effect_bottom_start, 0); - set_int(effect_bottom_max, 0); - set_int(bottom_prev_diff, 0); - set_int(effect_bottom_end, 0); - } - } - // Effect Show // - program { "edge_bottom"; - signal: "elm,edge,bottom"; - source: "elm"; - script { - if (!get_int(effect_bottom_start)) - { - set_int(effect_bottom_start, 1); - set_int(effect_bottom_anim, 1); - run_program(PROGRAM:"edge_bottom_start"); - } - } - } - program { "edge_bottom_start"; - action: STATE_SET "start"; - target: "shadow_bottom1"; - target: "shadow_bottom2"; - target: "shadow_bottom3"; - target: "shadow_bottom4"; - target: "shadow_bottom5"; - transition: SINUSOIDAL 0.2; - after: "edge_bottom_after"; - } - program { "edge_bottom_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(effect_bottom_anim, 0); - set_int(bottom_down_y, yy); - // mouse down // - if (get_int(effect_bottom_down)) - { - set_int(effect_bottom_move, 1); - } - // mouse up // - else - { - set_int(effect_bottom_reset, 0); - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - } - } - program { "edge_bottom_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_bottom_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(bottom_move_y, yy); - set_int(bottom_diff, (get_int(bottom_down_y) - get_int(bottom_move_y))); - if (get_int(bottom_diff) < get_int(bottom_prev_diff)) - { - set_int(bottom_prev_diff, 0); - set_int(effect_bottom_move, 0); - set_int(effect_bottom_reset, 1); - if (!get_int(effect_bottom_end)) - { - set_int(effect_bottom_end, 1); - run_program(PROGRAM:"edge_bottom_end"); - } - } - else - { - if (!get_int(effect_bottom_end)) - { - if (get_int(bottom_diff) <= 90 && !get_int(effect_bottom_max)) - { - fx1 = fx2 = fx3 = fx4 = fx5 = sin(get_int(bottom_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_bottom_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_bottom1", "default", 0.0); - set_state_val(PART:"shadow_bottom1", STATE_REL1_OFFSET, 0, round(fx1) * -1 + 1); - set_state_val(PART:"shadow_bottom1", STATE_REL2_OFFSET, -1, (round(fx1) - 1) * -1); - set_state(PART:"shadow_bottom1", "custom", 0.0); - - custom_state(PART:"shadow_bottom2", "default", 0.0); - set_state_val(PART:"shadow_bottom2", STATE_REL1_OFFSET, 0, round(fx2) * -1 + 1); - set_state_val(PART:"shadow_bottom2", STATE_REL2_OFFSET, -1, (round(fx2) - 1) * -1); - set_state(PART:"shadow_bottom2", "custom", 0.0); - - custom_state(PART:"shadow_bottom3", "default", 0.0); - set_state_val(PART:"shadow_bottom3", STATE_REL1_OFFSET, 0, round(fx3) * -1 + 1); - set_state_val(PART:"shadow_bottom3", STATE_REL2_OFFSET, -1, (round(fx3) - 1) * -1 ); - set_state(PART:"shadow_bottom3", "custom", 0.0); - - custom_state(PART:"shadow_bottom4", "default", 0.0); - set_state_val(PART:"shadow_bottom4", STATE_REL1_OFFSET, 0, round(fx4) * -1 + 1); - set_state_val(PART:"shadow_bottom4", STATE_REL2_OFFSET, -1, (round(fx4) - 1) * -1 ); - set_state(PART:"shadow_bottom4", "custom", 0.0); - - custom_state(PART:"shadow_bottom5", "default", 0.0); - set_state_val(PART:"shadow_bottom5", STATE_REL1_OFFSET, 0, round(fx5) * -1 + 1); - set_state_val(PART:"shadow_bottom5", STATE_REL2_OFFSET, -1, (round(fx5) - 1) * -1 ); - set_state(PART:"shadow_bottom5", "custom", 0.0); - - set_int(bottom_prev_diff, get_int(bottom_diff)); - } - } - } - } - } - program { "edge_left_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_left_down, 1); - } - } - // Effect Hide // - program { "edge_left_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_left_down, 0); - if (get_int(effect_left_start)) - { - set_int(effect_left_reset, 0); - if (!get_int(effect_left_anim)) - { - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - } - } - } - program { "edge_left_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_left_start)) - { - set_state(PART:"shadow_left1", "default", 0.0); - set_state(PART:"shadow_left2", "default", 0.0); - set_state(PART:"shadow_left3", "default", 0.0); - set_state(PART:"shadow_left4", "default", 0.0); - set_state(PART:"shadow_left5", "default", 0.0); - set_int(effect_left_reset, 0); - run_program(PROGRAM:"edge_left_init"); - } - } - } - program { "edge_left_end"; - action: STATE_SET "default"; - target: "shadow_left1"; - target: "shadow_left2"; - target: "shadow_left3"; - target: "shadow_left4"; - target: "shadow_left5"; - transition: SINUSOIDAL 0.3; - after: "edge_left_init"; - } - program { "edge_left_init"; - script { - set_int(effect_left_move, 0); - if (!get_int(effect_left_reset)) - set_int(effect_left_start, 0); - set_int(effect_left_max, 0); - set_int(left_prev_diff, 0); - set_int(effect_left_end, 0); - } - } - // Effect Show // - program { "edge_left"; - signal: "elm,edge,left"; - source: "elm"; - script { - if (!get_int(effect_left_start)) - { - set_int(effect_left_start, 1); - set_int(effect_left_anim, 1); - run_program(PROGRAM:"edge_left_start"); - } - } - } - program { "edge_left_start"; - action: STATE_SET "start"; - target: "shadow_left1"; - target: "shadow_left2"; - target: "shadow_left3"; - target: "shadow_left4"; - target: "shadow_left5"; - transition: SINUSOIDAL 0.2; - after: "edge_left_after"; - } - program { "edge_left_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(left_down_x, xx); - set_int(effect_left_anim, 0); - // mouse down // - if (get_int(effect_left_down)) - { - set_int(effect_left_move, 1); - } - // mouse up // - else - { - set_int(effect_left_reset, 0); - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - } - } - program { "edge_left_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_left_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(left_move_x, xx); - set_int(left_diff, (get_int(left_move_x) - get_int(left_down_x))); - if (get_int(left_diff) < get_int(left_prev_diff)) - { - set_int(left_prev_diff, 0); - set_int(effect_left_move, 0); - set_int(effect_left_reset, 1); - if (!get_int(effect_left_end)) - { - set_int(effect_left_end, 1); - run_program(PROGRAM:"edge_left_end"); - } - } - else - { - if (!get_int(effect_left_end)) - { - if (get_int(left_diff) <= 90 && !get_int(effect_left_max)) - { - fx1 = fx2 = fx3 = sin(get_int(left_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_left_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_left1", "default", 0.0); - set_state_val(PART:"shadow_left1", STATE_REL1_OFFSET, round(fx1), 0); - set_state_val(PART:"shadow_left1", STATE_REL2_OFFSET, round(fx1) - 1, -1); - set_state(PART:"shadow_left1", "custom", 0.0); - - custom_state(PART:"shadow_left2", "default", 0.0); - set_state_val(PART:"shadow_left2", STATE_REL1_OFFSET, round(fx2), 0); - set_state_val(PART:"shadow_left2", STATE_REL2_OFFSET, round(fx2) - 1, - 1); - set_state(PART:"shadow_left2", "custom", 0.0); - - custom_state(PART:"shadow_left3", "default", 0.0); - set_state_val(PART:"shadow_left3", STATE_REL1_OFFSET, round(fx3), 0); - set_state_val(PART:"shadow_left3", STATE_REL2_OFFSET, round(fx3) - 1, - 1); - set_state(PART:"shadow_left3", "custom", 0.0); - - custom_state(PART:"shadow_left4", "default", 0.0); - set_state_val(PART:"shadow_left4", STATE_REL1_OFFSET, round(fx4), 0); - set_state_val(PART:"shadow_left4", STATE_REL2_OFFSET, round(fx4) - 1, - 1); - set_state(PART:"shadow_left4", "custom", 0.0); - - custom_state(PART:"shadow_left5", "default", 0.0); - set_state_val(PART:"shadow_left5", STATE_REL1_OFFSET, round(fx5), 0); - set_state_val(PART:"shadow_left5", STATE_REL2_OFFSET, round(fx5) - 1, - 1); - set_state(PART:"shadow_left5", "custom", 0.0); - - set_int(left_prev_diff, get_int(left_diff)); - } - } - } - } - } - program { "edge_right_mouse_down"; - signal: "elm,state,mouse,down"; - source: "elm"; - script { - set_int(effect_right_down, 1); - } - } - // Effect Hide // - program { "edge_right_mouse_up"; - signal: "elm,state,mouse,up"; - source: "elm"; - script { - set_int(effect_right_down, 0); - if (get_int(effect_right_start)) - { - set_int(effect_right_reset, 0); - if (!get_int(effect_right_anim)) - { - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - } - } - } - program { "edge_right_scroll"; - signal: "elm,action,scroll"; - source: "elm"; - script { - if (get_int(effect_right_start)) - { - set_state(PART:"shadow_right1", "default", 0.0); - set_state(PART:"shadow_right2", "default", 0.0); - set_state(PART:"shadow_right3", "default", 0.0); - set_state(PART:"shadow_right4", "default", 0.0); - set_state(PART:"shadow_right5", "default", 0.0); - set_int(effect_right_reset, 0); - run_program(PROGRAM:"edge_right_init"); - } - } - } - program { "edge_right_end"; - action: STATE_SET "default"; - target: "shadow_right1"; - target: "shadow_right2"; - target: "shadow_right3"; - target: "shadow_right4"; - target: "shadow_right5"; - transition: SINUSOIDAL 0.3; - after: "edge_right_init"; - } - program { "edge_right_init"; - script { - set_int(effect_right_move, 0); - if (!get_int(effect_right_reset)) - set_int(effect_right_start, 0); - set_int(effect_right_max, 0); - set_int(right_prev_diff, 0); - set_int(effect_right_end, 0); - } - } - // Effect Show // - program { "edge_right"; - signal: "elm,edge,right"; - source: "elm"; - script { - if (!get_int(effect_right_start)) - { - set_int(effect_right_start, 1); - set_int(effect_right_anim, 1); - run_program(PROGRAM:"edge_right_start"); - } - } - } - program { "edge_right_start"; - action: STATE_SET "start"; - target: "shadow_right1"; - target: "shadow_right2"; - target: "shadow_right3"; - target: "shadow_right4"; - target: "shadow_right5"; - transition: SINUSOIDAL 0.2; - after: "edge_right_after"; - } - program { "edge_right_after"; - script { - new xx, yy; - get_mouse(xx, yy); - set_int(right_down_x, xx); - set_int(effect_right_anim, 0); - // mouse down // - if (get_int(effect_right_down)) - { - set_int(effect_right_move, 1); - } - // mouse up // - else - { - set_int(effect_right_reset, 0); - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - } - } - program { "edge_right_mouse_move"; - signal: "elm,state,mouse,move"; - source: "elm"; - script { - if (get_int(effect_right_move)) - { - new xx, yy; - new Float:fx1, Float:fx2, Float:fx3, Float:fx4, Float:fx5; - get_mouse(xx, yy); - set_int(right_move_x, xx); - set_int(right_diff, (get_int(right_down_x) - get_int(right_move_x))); - if (get_int(right_diff) < get_int(right_prev_diff)) - { - set_int(right_prev_diff, 0); - set_int(effect_right_move, 0); - set_int(effect_right_reset, 1); - if (!get_int(effect_right_end)) - { - set_int(effect_right_end, 1); - run_program(PROGRAM:"edge_right_end"); - } - } - else - { - if (!get_int(effect_right_end)) - { - if (get_int(right_diff) <= 90 && !get_int(effect_right_max)) - { - fx1 = fx2 = fx3 = sin(get_int(right_diff), DEGREES); - fx1 = fx1 * SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MIN_SIZE; - fx2 = fx2 * SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MIN_SIZE; - fx3 = fx3 * SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MIN_SIZE; - fx4 = fx4 * SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MIN_SIZE; - fx5 = fx5 * SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MOVE_CORRECTION_VALUE + SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MIN_SIZE; - } - else - { - set_int(effect_right_max, 1); - fx1 = SCROLLER_EFFECT_SHADOW_FIRST_LAYER_MAX_SIZE; - fx2 = SCROLLER_EFFECT_SHADOW_SECOND_LAYER_MAX_SIZE; - fx3 = SCROLLER_EFFECT_SHADOW_THIRD_LAYER_MAX_SIZE; - fx4 = SCROLLER_EFFECT_SHADOW_FOURTH_LAYER_MAX_SIZE; - fx5 = SCROLLER_EFFECT_SHADOW_FIFTH_LAYER_MAX_SIZE; - } - custom_state(PART:"shadow_right1", "default", 0.0); - set_state_val(PART:"shadow_right1", STATE_REL1_OFFSET, round(fx1) * -1, 0); - set_state_val(PART:"shadow_right1", STATE_REL2_OFFSET, (round(fx1) - 1) * -1, -1); - set_state(PART:"shadow_right1", "custom", 0.0); - - custom_state(PART:"shadow_right2", "default", 0.0); - set_state_val(PART:"shadow_right2", STATE_REL1_OFFSET, round(fx2) * -1, 0); - set_state_val(PART:"shadow_right2", STATE_REL2_OFFSET, (round(fx2) - 1) * -1, - 1); - set_state(PART:"shadow_right2", "custom", 0.0); - - custom_state(PART:"shadow_right3", "default", 0.0); - set_state_val(PART:"shadow_right3", STATE_REL1_OFFSET, round(fx3) * -1, 0); - set_state_val(PART:"shadow_right3", STATE_REL2_OFFSET, (round(fx3) - 1) * -1, - 1); - set_state(PART:"shadow_right3", "custom", 0.0); - - custom_state(PART:"shadow_right4", "default", 0.0); - set_state_val(PART:"shadow_right4", STATE_REL1_OFFSET, round(fx4) * -1, 0); - set_state_val(PART:"shadow_right4", STATE_REL2_OFFSET, (round(fx4) - 1) * -1, - 1); - set_state(PART:"shadow_right4", "custom", 0.0); - - custom_state(PART:"shadow_right5", "default", 0.0); - set_state_val(PART:"shadow_right5", STATE_REL1_OFFSET, round(fx5) * -1, 0); - set_state_val(PART:"shadow_right5", STATE_REL2_OFFSET, (round(fx5) - 1) * -1, - 1); - set_state(PART:"shadow_right5", "custom", 0.0); - - set_int(right_prev_diff, get_int(right_diff)); - } - } - } - } - } + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(top) + SCROLL_EDGE_MOUSE_UP_PROGRAM(top) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(top, VER, NOR) + SCROLL_EDGE_INIT_PROGRAM(top) + SCROLL_EDGE_SCROLL_PROGRAM(top) + SCROLL_EDGE_END_PROGRAM(top) + SCROLL_EDGE_START_PROGRAM(top) + SCROLL_EDGE_AFTER_PROGRAM(top) + SCROLL_EDGE_PROGRAM(top) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(bottom) + SCROLL_EDGE_MOUSE_UP_PROGRAM(bottom) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(bottom, VER, REV) + SCROLL_EDGE_INIT_PROGRAM(bottom) + SCROLL_EDGE_SCROLL_PROGRAM(bottom) + SCROLL_EDGE_END_PROGRAM(bottom) + SCROLL_EDGE_START_PROGRAM(bottom) + SCROLL_EDGE_AFTER_PROGRAM(bottom) + SCROLL_EDGE_PROGRAM(bottom) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(left) + SCROLL_EDGE_MOUSE_UP_PROGRAM(left) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(left, HOR, NOR) + SCROLL_EDGE_INIT_PROGRAM(left) + SCROLL_EDGE_SCROLL_PROGRAM(left) + SCROLL_EDGE_END_PROGRAM(left) + SCROLL_EDGE_START_PROGRAM(left) + SCROLL_EDGE_AFTER_PROGRAM(left) + SCROLL_EDGE_PROGRAM(left) + + SCROLL_EDGE_MOUSE_DOWN_PROGRAM(right) + SCROLL_EDGE_MOUSE_UP_PROGRAM(right) + SCROLL_EDGE_MOUSE_MOVE_PROGRAM(right, HOR, REV) + SCROLL_EDGE_INIT_PROGRAM(right) + SCROLL_EDGE_SCROLL_PROGRAM(right) + SCROLL_EDGE_END_PROGRAM(right) + SCROLL_EDGE_START_PROGRAM(right) + SCROLL_EDGE_AFTER_PROGRAM(right) + SCROLL_EDGE_PROGRAM(right) } } -- cgit v1.2.3