/* * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved * * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * vim:ts=3 */ group { "elm/scroller/event/default"; inherit_only: 1; programs { program { "loaded"; signal: "load"; source: ""; after: "on_loaded"; } program { "disabled"; signal: "elm,state,disabled"; source: "elm"; after: "on_disabled"; } program { "enabled"; signal: "elm,state,enabled"; source: "elm"; after: "on_enabled"; } program { "visible"; signal: "show"; source: ""; after: "on_visible"; } program { "scrolled"; signal: "elm,action,scroll"; source: "elm"; after: "on_scrolled"; } program { "visible_vbar"; signal: "elm,action,show,vbar"; source: "elm"; after: "on_visible_vbar"; } program { "hidden_vbar"; signal: "elm,action,hide,vbar"; source: "elm"; after: "on_hidden_vbar"; } program { "visible_always_vbar"; signal: "elm,action,show_always,vbar"; source: "elm"; after: "on_visible_always_vbar"; } program { "visible_notalways_vbar"; signal: "elm,action,show_notalways,vbar"; source: "elm"; after: "on_visible_notalways_vbar"; } program { "visible_sb_vbar"; signal: "do-show-vbar"; source: ""; after: "on_visible_sb_vbar"; } program { "hidden_sb_vbar"; signal: "do-hide-vbar"; source: ""; after: "on_hidden_sb_vbar"; } program { "visible_hbar"; signal: "elm,action,show,hbar"; source: "elm"; after: "on_visible_hbar"; } program { "hidden_hbar"; signal: "elm,action,hide,hbar"; source: "elm"; after: "on_hidden_hbar"; } program { "visible_always_hbar"; signal: "elm,action,show_always,hbar"; source: "elm"; after: "on_visible_always_hbar"; } program { "visible_notalways_hbar"; signal: "elm,action,show_notalways,hbar"; source: "elm"; after: "on_visible_notalways_hbar"; } program { "visible_sb_hbar"; signal: "do-show-hbar"; source: ""; after: "on_visible_sb_hbar"; } program { "hidden_sb_hbar"; signal: "do-hide-hbar"; source: ""; after: "on_hidden_sb_hbar"; } } } group { "elm/scroller/base/template"; inherit_only: 1; inherit: "elm/scroller/event/default"; programs { program { "on_loaded"; } program { "on_disabled"; } program { "on_enabled"; } program { "on_visible"; } program { "on_scrolled"; } program { "on_visible_vbar"; } program { "on_hidden_vbar"; } program { "on_visible_always_vbar"; } program { "on_visible_notalways_vbar"; } program { "on_visible_sb_vbar"; } program { "on_hidden_sb_vbar"; } program { "on_visible_hbar"; } program { "on_hidden_hbar"; } program { "on_visible_always_hbar"; } program { "on_visible_notalways_hbar"; } program { "on_visible_sb_hbar"; } program { "on_hidden_sb_hbar"; } } } group { "elm/scroller/base/default"; data { item: "focus_highlight" "on"; } images { set { name: "core_scroll_bar_v.#"; image { image: SMALL"images/Navigation_elements/core_scroll_bar_v.#.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_scroll_bar_v.#.png" COMP; } } set { name: "core_scroll_bar_h.#"; image { image: SMALL"images/Navigation_elements/core_scroll_bar_h.#.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_scroll_bar_h.#.png" COMP; } } } parts { spacer { "base"; scale; desc { "default"; } } rect { "bg"; scale; desc { "default"; rel.to: "base"; rel1.offset: 0 0; rel2.offset: -1 -1; color: 255 255 255 0; } } rect { "clipper"; nomouse; scale; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; rel1.offset: 0 0; rel2.offset: -1 -1; } } swallow { "elm.swallow.content"; clip: "clipper"; scale; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; rel1.offset: 0 0; rel2.offset: -1 -1; } } rect { "sb_vbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_vbar_clip"; clip: "sb_vbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } spacer { "sb_vbar_top_padding"; scale; desc { "default"; min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; rel1.relative: 1.0 0.0; rel2.relative: 1.0 0.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 0.0; } } spacer { "sb_vbar_bottom_padding"; scale; desc { "default"; min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } spacer { "sb_vbar_right_padding"; scale; desc { "default"; min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 0; max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 0; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } rect { "sb_vbar"; nomouse; scale; desc { "default"; fixed: 1 1; hid; min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; align: 1.0 0.0; rel1 { relative: 0.0 1.0; to_x: "sb_vbar_right_padding"; to_y: "sb_vbar_top_padding"; } rel2 { relative: 0.0 0.0; to_x: "sb_vbar_right_padding"; to_y: "sb_vbar_bottom_padding"; } } } image { "elm.dragable.vbar"; clip: "sb_vbar_clip"; nomouse; scale; dragable { x: 0 0 0; y: 1 1 0; confine: "sb_vbar"; } desc { "default"; fixed: 1 1; min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC; rel1 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar"; } image { normal: "core_scroll_bar_v.#"; middle: DEFAULT; } color_class: "scroller/default/bar"; } } rect { "sb_hbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_hbar_clip"; clip: "sb_hbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } spacer { "sb_hbar_bottom_padding"; scale; desc { "default"; min: 0 SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE; max: 0 SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } spacer { "sb_hbar_left_padding"; scale; desc { "default"; min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; rel1.relative: 0.0 1.0; rel2.relative: 0.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 0.0 1.0; } } spacer { "sb_hbar_right_padding"; scale; desc { "default"; min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } rect { "sb_hbar"; nomouse; scale; desc { "default"; fixed: 1 1; hid; min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; align: 0.0 1.0; rel1 { relative: 1.0 0.0; to_x: "sb_hbar_left_padding"; to_y: "sb_hbar_bottom_padding"; } rel2 { relative: 0.0 0.0; to_x: "sb_hbar_right_padding"; to_y: "sb_hbar_bottom_padding"; } } } image { "elm.dragable.hbar"; clip: "sb_hbar_clip"; nomouse; scale; dragable { x: 1 1 0; y: 0 0 0; confine: "sb_hbar"; } desc { "default"; fixed: 1 1; min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC; rel1 { relative: 0.5 0.0; offset: 0 0; to: "sb_hbar"; } rel2 { relative: 0.5 0.0; offset: 0 0; to: "sb_hbar"; } image { normal: "core_scroll_bar_h.#"; middle: DEFAULT; } color_class: "scroller/default/bar"; } } rect { "disabler"; scale; desc { "default"; rel1.to: "clipper"; rel2.to: "clipper"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } inherit: "elm/scroller/event/default"; script { public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; public sh_v, sh_h; public top_down_x = 0, top_down_y = 0 public top_move_x = 0, top_move_y = 0 public top_diff = 0, top_prev_diff = 0 public effect_top_down = 0, effect_top_start = 0, effect_top_reset = 0, effect_top_anim = 0; public effect_top_end = 0, effect_top_move = 0, effect_top_max = 0; public bottom_down_x = 0, bottom_down_y = 0 public bottom_move_x = 0, bottom_move_y = 0 public bottom_diff = 0, bottom_prev_diff = 0 public effect_bottom_down = 0, effect_bottom_start = 0, effect_bottom_reset = 0, effect_bottom_anim = 0; public effect_bottom_end = 0, effect_bottom_move = 0, effect_bottom_max = 0; public left_down_x = 0, left_down_y = 0 public left_move_x = 0, left_move_y = 0 public left_diff = 0, left_prev_diff = 0 public effect_left_down = 0, effect_left_start = 0, effect_left_reset = 0, effect_left_anim = 0; public effect_left_end = 0, effect_left_move = 0, effect_left_max = 0; public right_down_x = 0, right_down_y = 0 public right_move_x = 0, right_move_y = 0 public right_diff = 0, right_prev_diff = 0 public effect_right_down = 0, effect_right_start = 0, effect_right_reset = 0, effect_right_anim = 0; public effect_right_end = 0, effect_right_move = 0, effect_right_max = 0; public rtl_mode=0; public timer0(val) { new v; v = get_int(sbvis_v); if (v) { v = get_int(sbalways_v); if (!v) { emit("do-hide-vbar", ""); set_int(sbvis_v, 0); } } v = get_int(sbvis_h); if (v) { v = get_int(sbalways_h); if (!v) { emit("do-hide-hbar", ""); set_int(sbvis_h, 0); } } set_int(sbvis_timer, 0); return 0; } } 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); emit("reload", "elm"); } } program { "on_disabled"; action: STATE_SET "disabled"; target: "disabler"; } program { "on_enabled"; action: STATE_SET "default"; target: "disabler"; } program { "on_visible"; script { new v; emit("do-show-vbar", ""); set_int(sbvis_v, 1); v = get_int(sbalways_v); if (!v) { v = get_int(sbvis_timer); if (v > 0.0) cancel_timer(v); v = timer(1.0, "timer0", 0); set_int(sbvis_timer, v); } emit("do-show-hbar", ""); set_int(sbvis_h, 1); v = get_int(sbalways_h); if (!v) { v = get_int(sbvis_timer); if (v > 0.0) cancel_timer(v); v = timer(1.0, "timer0", 0); set_int(sbvis_timer, v); } } } 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 { "on_visible_vbar"; action: STATE_SET "default"; target: "sb_vbar_clip_master"; } program { "on_hidden_vbar"; action: STATE_SET "hidden"; target: "sb_vbar_clip_master"; } program { "on_visible_always_vbar"; script { new v; v = get_int(sbalways_v); if (!v) { set_int(sbalways_v, 1); v = get_int(sbvis_v); if (!v) { emit("do-show-vbar", ""); set_int(sbvis_v, 1); } } } } program { "on_visible_notalways_vbar"; script { new v; v = get_int(sbalways_v); if (v) { set_int(sbalways_v, 0); v = get_int(sbvis_v); if (!v) { emit("do-hide-vbar", ""); set_int(sbvis_v, 0); } } } } program { "on_visible_sb_vbar"; action: STATE_SET "default"; target: "sb_vbar_clip"; } program { "on_hidden_sb_vbar"; action: STATE_SET "hidden" ; transition: LINEAR 0.2; target: "sb_vbar_clip"; } program { "on_visible_hbar"; action: STATE_SET "default"; target: "sb_hbar_clip_master"; } program { "on_hidden_hbar"; action: STATE_SET "hidden"; target: "sb_hbar_clip_master"; } program { "on_visible_always_hbar"; script { new v; v = get_int(sbalways_h); if (!v) { set_int(sbalways_h, 1); v = get_int(sbvis_h); if (!v) { emit("do-show-hbar", ""); set_int(sbvis_h, 1); } } } } program { "on_visible_notalways_hbar"; script { new v; v = get_int(sbalways_h); if (v) { set_int(sbalways_h, 0); v = get_int(sbvis_h); if (!v) { emit("do-hide-hbar", ""); set_int(sbvis_h, 0); } } } } program { "on_visible_sb_hbar"; action: STATE_SET "default"; target: "sb_hbar_clip"; } program { "on_hidden_sb_hbar"; action: STATE_SET "hidden"; transition: LINEAR 0.2; target: "sb_hbar_clip"; } } } group { "elm/scroller/ctxpopup/default"; alias: "elm/scroller/base/list_effect"; inherit: "elm/scroller/base/default"; images { set { name: "core_contextual_popup_scroll_bar.#"; image { image: SMALL"images/Assist_Views/core_contextual_popup_scroll_bar.#.png" COMP; } image { image: MEDIUM"images/Assist_Views/core_contextual_popup_scroll_bar.#.png" COMP; } } } parts { spacer { "sb_hbar_bottom_padding"; scale; desc { "default"; min: 0 SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_TB_PADDING_SIZE_INC; max: 0 SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_TB_PADDING_SIZE_INC; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } spacer { "sb_hbar_left_padding"; scale; desc { "default"; min: SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_LR_PADDING_SIZE_INC 0; max: SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_LR_PADDING_SIZE_INC 0; rel1.relative: 0.0 1.0; rel2.relative: 0.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 0.0 1.0; } } spacer { "sb_hbar_right_padding"; scale; desc { "default"; min: SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_LR_PADDING_SIZE_INC 0; max: SCROLLER_LIST_EFFECT_SCROLLBAR_HBAR_LR_PADDING_SIZE_INC 0; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } rect { "sb_hbar"; nomouse; scale; desc { "default"; fixed: 1 1; hid; min: SCROLLER_CTXPOPUP_SCROLLBAR_HBAR_MIN_SIZE_INC; align: 0.0 1.0; rel1 { relative: 1.0 0.0; offset: 0 0; to_x: "sb_hbar_left_padding"; to_y: "sb_hbar_bottom_padding"; } rel2 { relative: 0.0 0.0; offset: -1 -1; to_x: "sb_hbar_right_padding"; to_y: "sb_hbar_bottom_padding"; } } } image { "elm.dragable.hbar"; clip: "sb_hbar_clip"; nomouse; scale; dragable { x: 1 1 0; y: 0 0 0; confine: "sb_hbar"; } desc { "default"; fixed: 1 1; min: SCROLLER_CTXPOPUP_SCROLLBAR_HBAR_MIN_SIZE_INC; max: SCROLLER_CTXPOPUP_SCROLLBAR_HBAR_MAX_SIZE_INC; rel1 { relative: 0.5 0.0; offset: 0 0; to: "sb_hbar"; } rel2 { relative: 0.5 0.0; offset: 0 0; to: "sb_hbar"; } image { normal: "core_contextual_popup_scroll_bar.#"; middle: DEFAULT; } color_class: "ctxpopup/default/scrollbar"; } } image { "elm.dragable.vbar"; desc { "default"; color_class: "ctxpopup/default/scrollbar"; } } } } group { "elm/scroller/ctxpopup/more/default"; inherit: "elm/scroller/ctxpopup/default"; parts { image { "elm.dragable.hbar"; desc { "default"; color_class: "ctxpopup/more/default/scrollbar"; } } image { "elm.dragable.vbar"; desc { "default"; color_class: "ctxpopup/more/default/scrollbar"; } } } } group { "elm/scroller/ctxpopup/copypaste"; inherit: "elm/scroller/ctxpopup/default"; parts { image { "elm.dragable.hbar"; desc { "default"; color_class: "entry/default/scrollbar_cnp"; } } } } group { "elm/scroller/base/handler"; data { item: "focus_highlight" "on"; } images { set { name: "core_index_scroll_bar_v.#"; image { image: SMALL"images/Navigation_elements/core_index_scroll_bar_v.#.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_bar_v.#.png" COMP; } } set { name: "core_index_scroll_handler_v_01"; image { image: SMALL"images/Navigation_elements/core_index_scroll_handler_v_01.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_handler_v_01.png" COMP; } } set { name: "core_index_scroll_handler_v_02"; image { image: SMALL"images/Navigation_elements/core_index_scroll_handler_v_02.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_handler_v_02.png" COMP; } } set { name: "core_index_scroll_bar_h.#"; image { image: SMALL"images/Navigation_elements/core_index_scroll_bar_h.#.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_bar_h.#.png" COMP; } } set { name: "core_index_scroll_handler_h_01"; image { image: SMALL"images/Navigation_elements/core_index_scroll_handler_h_01.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_handler_h_01.png" COMP; } } set { name: "core_index_scroll_handler_h_02"; image { image: SMALL"images/Navigation_elements/core_index_scroll_handler_h_02.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_index_scroll_handler_h_02.png" COMP; } } } parts { spacer { "base"; scale; desc { "default"; } } rect { "bg"; scale; desc { "default"; rel.to: "base"; rel1.offset: 0 0; rel2.offset: -1 -1; color: 255 255 255 0; } } rect { "clipper"; nomouse; scale; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; rel1.offset: 0 0; rel2.offset: -1 -1; } } swallow { "elm.swallow.content"; clip: "clipper"; scale; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; rel1.offset: 0 0; rel2.offset: -1 -1; } } spacer { "sb_vbar_top_padding"; scale; desc { "default"; min: 0 SCROLLER_HANDLER_SCROLLBAR_VBAR_HEADER_SIZE; max: 0 SCROLLER_HANDLER_SCROLLBAR_VBAR_HEADER_SIZE; rel1.relative: 1.0 0.0; rel2.relative: 1.0 0.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 0.0; } } spacer { "sb_vbar_bottom_padding"; scale; desc { "default"; min: 0 SCROLLER_HANDLER_SCROLLBAR_VBAR_HEADER_SIZE; max: 0 SCROLLER_HANDLER_SCROLLBAR_VBAR_HEADER_SIZE; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } spacer { "sb_vbar_right_padding"; scale; desc { "default"; min: SCROLLER_HANDLER_SCROLLBAR_VBAR_PADDING_SIZE 0; max: SCROLLER_HANDLER_SCROLLBAR_VBAR_PADDING_SIZE 0; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } rect { "sb_vbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_vbar_clip"; clip: "sb_vbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_vbar"; nomouse; scale; desc { "default"; fixed: 1 1; hid; min: SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC; align: 1.0 0.0; rel1 { relative: 0.0 1.0; to_y: "sb_vbar_top_padding"; to_x: "sb_vbar_right_padding"; } rel2 { relative: 0.0 0.0; to_y: "sb_vbar_bottom_padding"; to_x: "sb_vbar_right_padding"; } } } image { "elm.dragable.vbar"; clip: "sb_vbar_clip"; mouse; scale; dragable { x: 0 0 0; y: 1 1 0; confine: "sb_vbar"; } desc { "default"; fixed: 1 1; color: 0 0 0 0; min: SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC; max: 30 99999; rel1 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar"; } } } image { "scrollbar_handler_image"; clip: "sb_vbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.0 0.0; rel1.to: "elm.dragable.vbar"; rel2.relative: 1.0 1.0; rel2.to: "elm.dragable.vbar"; vis; image.normal: "core_index_scroll_bar_v.#"; color_class: "scroller/handler/bar"; } } image { "scrollbar_handler_image_middle"; clip: "sb_vbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.5 0.5; rel1.to: "elm.dragable.vbar"; rel2.relative: 0.5 0.5; rel2.to: "elm.dragable.vbar"; vis; min: SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC; image.normal: "core_index_scroll_handler_v_01"; color_class: "scroller/handler/icon_layer1"; } } image { "scrollbar_handler_effect_middle"; clip: "sb_vbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.to: "scrollbar_handler_image_middle"; rel2.to: "scrollbar_handler_image_middle"; vis; min: SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC; image.normal: "core_index_scroll_handler_v_02"; color_class: "scroller/handler/icon_layer2"; } } spacer { "sb_hbar_bottom_padding"; scale; desc { "default"; min: 0 SCROLLER_HANDLER_SCROLLBAR_HBAR_PADDING_SIZE; max: 0 SCROLLER_HANDLER_SCROLLBAR_HBAR_PADDING_SIZE; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } spacer { "sb_hbar_left_padding"; scale; desc { "default"; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_HEADER_SIZE 0; max: SCROLLER_HANDLER_SCROLLBAR_HBAR_HEADER_SIZE 0; rel1.relative: 0.0 1.0; rel2.relative: 0.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 0.0 1.0; } } spacer { "sb_hbar_right_padding"; scale; desc { "default"; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_HEADER_SIZE 0; max: SCROLLER_HANDLER_SCROLLBAR_HBAR_HEADER_SIZE 0; rel1.relative: 1.0 1.0; rel2.relative: 1.0 1.0; rel1.to: "elm.swallow.content"; rel2.to: "elm.swallow.content"; fixed: 1 1; align: 1.0 1.0; } } rect { "sb_hbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_hbar_clip"; clip: "sb_hbar_clip_master"; nomouse; scale; desc { "default"; } desc { "hidden"; hid; color: 255 255 255 0; } } rect { "sb_hbar"; nomouse; scale; desc { "default"; fixed: 1 1; hid; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC; align: 0.0 1.0; rel1 { relative: 1.0 0.0; to_x: "sb_hbar_left_padding"; to_y: "sb_hbar_bottom_padding"; } rel2 { relative: 0.0 0.0; to_x: "sb_hbar_right_padding"; to_y: "sb_hbar_bottom_padding"; } } } image { "elm.dragable.hbar"; clip: "sb_hbar_clip"; mouse; scale; dragable { x: 1 1 0; y: 0 0 0; confine: "sb_hbar"; } desc { "default"; fixed: 1 1; color: 0 0 0 0; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC; max: 99999 30; rel1 { relative: 0.5 0.5; offset: 0 0; to: "sb_hbar"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "sb_hbar"; } } } image { "h_scrollbar_handler_image"; clip: "sb_hbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.0 0.0; rel1.to: "elm.dragable.hbar"; rel2.relative: 1.0 1.0; rel2.to: "elm.dragable.hbar"; vis; image.normal: "core_index_scroll_bar_h.#"; color_class: "scroller/handler/bar"; } } image { "h_scrollbar_handler_image_middle"; clip: "sb_hbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.5 0.5; rel1.to: "elm.dragable.hbar"; rel2.relative: 0.5 0.5; rel2.to: "elm.dragable.hbar"; vis; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC; image.normal: "core_index_scroll_handler_h_01"; color_class: "scroller/handler/icon_layer1"; } } image { "h_scrollbar_handler_effect_middle"; clip: "sb_hbar_clip"; nomouse; scale; desc { "default"; fixed: 1 1; rel1.to: "h_scrollbar_handler_image_middle"; rel2.to: "h_scrollbar_handler_image_middle"; vis; min: SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC; image.normal: "core_index_scroll_handler_h_02"; color_class: "scroller/handler/icon_layer2"; } } rect { "disabler"; scale; desc { "default"; rel1.to: "clipper"; rel2.to: "clipper"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } inherit: "elm/scroller/event/default"; script { public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; public sh_v, sh_h; public top_down_x = 0, top_down_y = 0 public top_move_x = 0, top_move_y = 0 public top_diff = 0, top_prev_diff = 0 public effect_top_down = 0, effect_top_start = 0, effect_top_reset = 0, effect_top_anim = 0; public effect_top_end = 0, effect_top_move = 0, effect_top_max = 0; public bottom_down_x = 0, bottom_down_y = 0 public bottom_move_x = 0, bottom_move_y = 0 public bottom_diff = 0, bottom_prev_diff = 0 public effect_bottom_down = 0, effect_bottom_start = 0, effect_bottom_reset = 0, effect_bottom_anim = 0; public effect_bottom_end = 0, effect_bottom_move = 0, effect_bottom_max = 0; public left_down_x = 0, left_down_y = 0 public left_move_x = 0, left_move_y = 0 public left_diff = 0, left_prev_diff = 0 public effect_left_down = 0, effect_left_start = 0, effect_left_reset = 0, effect_left_anim = 0; public effect_left_end = 0, effect_left_move = 0, effect_left_max = 0; public right_down_x = 0, right_down_y = 0 public right_move_x = 0, right_move_y = 0 public right_diff = 0, right_prev_diff = 0 public effect_right_down = 0, effect_right_start = 0, effect_right_reset = 0, effect_right_anim = 0; public effect_right_end = 0, effect_right_move = 0, effect_right_max = 0; public rtl_mode=0; public timer0(val) { new v; v = get_int(sbvis_v); if (v) { v = get_int(sbalways_v); if (!v) { emit("do-hide-vbar", ""); set_int(sbvis_v, 0); } } v = get_int(sbvis_h); if (v) { v = get_int(sbalways_h); if (!v) { emit("do-hide-hbar", ""); set_int(sbvis_h, 0); } } set_int(sbvis_timer, 0); return 0; } } 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); emit("reload", "elm"); } } program { "on_disabled"; action: STATE_SET "disabled"; target: "disabler"; } program { "on_enabled"; action: STATE_SET "default"; target: "disabler"; } program { "on_visible"; script { new v; emit("do-show-vbar", ""); set_int(sbvis_v, 1); v = get_int(sbalways_v); if (!v) { v = get_int(sbvis_timer); if (v > 0.0) cancel_timer(v); v = timer(0.2, "timer0", 0); set_int(sbvis_timer, v); } emit("do-show-hbar", ""); set_int(sbvis_h, 1); v = get_int(sbalways_h); if (!v) { v = get_int(sbvis_timer); if (v > 0.0) cancel_timer(v); v = timer(0.2, "timer0", 0); set_int(sbvis_timer, v); } } } 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 { "on_visible_vbar"; action: STATE_SET "default"; target: "sb_vbar_clip_master"; } program { "on_hidden_vbar"; action: STATE_SET "hidden"; target: "sb_vbar_clip_master"; } program { "on_visible_always_vbar"; script { new v; v = get_int(sbalways_v); if (!v) { set_int(sbalways_v, 1); v = get_int(sbvis_v); if (!v) { emit("do-show-vbar", ""); set_int(sbvis_v, 1); } } } } program { "on_visible_notalways_vbar"; script { new v; v = get_int(sbalways_v); if (v) { set_int(sbalways_v, 0); v = get_int(sbvis_v); if (!v) { emit("do-hide-vbar", ""); set_int(sbvis_v, 0); } } } } program { "on_visible_sb_vbar"; action: STATE_SET "default"; target: "sb_vbar_clip"; } program { "on_hidden_sb_vbar"; action: STATE_SET "hidden"; transition: LINEAR 0.2; target: "sb_vbar_clip"; } program { "on_visible_hbar"; action: STATE_SET "default"; target: "sb_hbar_clip_master"; } program { "on_hidden_hbar"; action: STATE_SET "hidden"; target: "sb_hbar_clip_master"; } program { "on_visible_always_hbar"; script { new v; v = get_int(sbalways_h); if (!v) { set_int(sbalways_h, 1); v = get_int(sbvis_h); if (!v) { emit("do-show-hbar", ""); set_int(sbvis_h, 1); } } } } program { "on_visible_notalways_hbar"; script { new v; v = get_int(sbalways_h); if (v) { set_int(sbalways_h, 0); v = get_int(sbvis_h); if (!v) { emit("do-hide-hbar", ""); set_int(sbvis_h, 0); } } } } program { "on_visible_sb_hbar"; action: STATE_SET "default"; target: "sb_hbar_clip"; } program { "on_hidden_sb_hbar"; action: STATE_SET "hidden"; transition: LINEAR 0.2; target: "sb_hbar_clip"; } program { "vbar_press"; signal: "mouse,down,1"; source: "elm.dragable.vbar"; action: SIGNAL_EMIT "elm,vbar,press" "elm"; } program { "vbar_unpress"; signal: "mouse,up,1"; source: "elm.dragable.vbar"; action: SIGNAL_EMIT "elm,vbar,unpress" "elm"; } program { "hbar_press"; signal: "mouse,down,1"; source: "elm.dragable.hbar"; action: SIGNAL_EMIT "elm,hbar,press" "elm"; } program { "hbar_unpress"; signal: "mouse,up,1"; source: "elm.dragable.hbar"; action: SIGNAL_EMIT "elm,hbar,unpress" "elm"; } } } group { "elm/scroller/base/effect"; alias: "elm/scroller/base/popup/no_inset_shadow"; inherit: "elm/scroller/base/default"; // 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); \ if (get_int(rtl_mode)) { \ run_program(PROGRAM:"edge_"#_dir"_rtl_end"); \ } else { \ run_program(PROGRAM:"edge_"#_dir"_ltr_end"); \ } \ } \ } \ } \ } \ } #define SCROLL_EDGE_SCROLL_PROGRAM(_dir) \ program { "edge_"#_dir"_scroll"; \ signal: "elm,action,scroll"; \ source: "elm"; \ script { \ if (get_int(effect_##_dir##_start)) \ { \ if (get_int(rtl_mode)) { \ set_state(PART:"shadow_"#_dir"1", "default_rtl", 0.0); \ set_state(PART:"spacer_"#_dir"1", "default_rtl", 0.0); \ set_state(PART:"shadow_"#_dir"2", "default_rtl", 0.0); \ set_state(PART:"spacer_"#_dir"2", "default_rtl", 0.0); \ set_state(PART:"shadow_"#_dir"3", "default_rtl", 0.0); \ set_state(PART:"spacer_"#_dir"3", "default_rtl", 0.0); \ set_state(PART:"shadow_"#_dir"4", "default_rtl", 0.0); \ set_state(PART:"spacer_"#_dir"4", "default_rtl", 0.0); \ set_state(PART:"shadow_"#_dir"5", "default_rtl", 0.0); \ set_state(PART:"spacer_"#_dir"5", "default_rtl", 0.0); \ set_int(effect_##_dir##_reset, 0); \ run_program(PROGRAM:"edge_"#_dir"_rtl_init"); \ } else { \ 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"_ltr_init"); \ }\ } \ } \ } #define SCROLL_EDGE_END_PROGRAM_INTERNAL(_dir, _rtl) \ program { "edge_"#_dir#_rtl"_end"; \ action: STATE_SET "default"#_rtl; \ 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#_rtl"_init"; \ } #define SCROLL_EDGE_END_PROGRAM(_dir) \ SCROLL_EDGE_END_PROGRAM_INTERNAL(_dir, _rtl) \ SCROLL_EDGE_END_PROGRAM_INTERNAL(_dir, _ltr) #define SCROLL_EDGE_INIT_PROGRAM_INTERNAL(_dir, _rtl) \ program { "edge_"#_dir#_rtl"_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"#_rtl, 0.0); \ set_state(PART:"spacer_"#_dir"2", "default"#_rtl, 0.0); \ set_state(PART:"spacer_"#_dir"3", "default"#_rtl, 0.0); \ set_state(PART:"spacer_"#_dir"4", "default"#_rtl, 0.0); \ set_state(PART:"spacer_"#_dir"5", "default"#_rtl, 0.0); \ } \ } #define SCROLL_EDGE_INIT_PROGRAM(_dir) \ SCROLL_EDGE_INIT_PROGRAM_INTERNAL(_dir, _rtl) \ SCROLL_EDGE_INIT_PROGRAM_INTERNAL(_dir, _ltr) #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); \ if (get_int(rtl_mode)) { \ run_program(PROGRAM:"edge_"#_dir"_rtl_start");\ }else{\ run_program(PROGRAM:"edge_"#_dir"_ltr_start");\ }\ } \ } \ } #define SCROLL_EDGE_START_PROGRAM_INTERNAL(_dir, _rtl) \ program { "edge_"#_dir#_rtl"_start"; \ action: STATE_SET "start"#_rtl; \ 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#_rtl"_after"; \ } #define SCROLL_EDGE_START_PROGRAM(_dir) \ SCROLL_EDGE_START_PROGRAM_INTERNAL(_dir, _rtl) \ SCROLL_EDGE_START_PROGRAM_INTERNAL(_dir, _ltr) #define SCROLL_EDGE_AFTER_PROGRAM_INTERNAL(_dir, _rtl) \ program { "edge_"#_dir#_rtl"_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#_rtl"_end"); \ } \ } \ } \ } #define SCROLL_EDGE_AFTER_PROGRAM(_dir) \ SCROLL_EDGE_AFTER_PROGRAM_INTERNAL(_dir, _rtl) \ SCROLL_EDGE_AFTER_PROGRAM_INTERNAL(_dir, _ltr) #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); \ if (get_int(rtl_mode)) { \ run_program(PROGRAM:"edge_"#_dir"_rtl_end"); \ }else{ \ run_program(PROGRAM:"edge_"#_dir"_ltr_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; \ fixed: 0 1; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "default_rtl"; \ inherit: "default"; \ } \ } #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; \ fixed: 0 1; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "default_rtl"; \ inherit: "default"; \ } \ } #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; \ fixed: 1 0; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "default_rtl"; \ 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; \ fixed: 1 0; \ } \ } #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; \ fixed: 1 0; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "default_rtl"; \ 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; \ fixed: 1 0; \ } \ } #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; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "start_ltr"; \ inherit: "start"; \ } \ desc { "default_rtl"; \ inherit: "default"; \ } \ desc { "start_rtl"; \ inherit: "start"; \ } \ } #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; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "start_ltr"; \ inherit: "start"; \ } \ desc { "default_rtl"; \ inherit: "default"; \ } \ desc { "start_rtl"; \ inherit: "start"; \ } \ } #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; \ } \ desc { "default_ltr"; \ inherit: "default"; \ } \ desc { "start_ltr"; \ inherit: "start"; \ } \ desc { "default_rtl"; \ 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_rtl"; \ inherit: "default_rtl"; \ rel1.relative: 0.0 0.0; \ rel1.to: "spacer_left"#_num; \ rel2.relative: 0.0 1.0; \ rel2.to: "spacer_left"#_num; \ align: 0.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; \ } \ desc { "default_ltr"; \ inherit:"default"; \ } \ desc { "start_ltr"; \ inherit: "start"; \ } \ desc { "default_rtl"; \ 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_rtl"; \ inherit: "default_rtl"; \ rel1.relative: 1.0 0.0; \ rel1.to: "spacer_right"#_num; \ rel2.relative: 1.0 1.0; \ rel2.to: "spacer_right"#_num; \ align: 1.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) #define SHADOW_MIRRORED_PROGRAM \ program { "rtl_mirrored"; \ signal: "edje,state,rtl"; \ source: "edje"; \ script { \ set_int(rtl_mode, 1); \ set_state(PART:"spacer_left1", "default_rtl", 0.0); \ set_state(PART:"spacer_left2", "default_rtl", 0.0); \ set_state(PART:"spacer_left3", "default_rtl", 0.0); \ set_state(PART:"spacer_left4", "default_rtl", 0.0); \ set_state(PART:"spacer_left5", "default_rtl", 0.0); \ set_state(PART:"spacer_right1", "default_rtl", 0.0); \ set_state(PART:"spacer_right2", "default_rtl", 0.0); \ set_state(PART:"spacer_right3", "default_rtl", 0.0); \ set_state(PART:"spacer_right4", "default_rtl", 0.0); \ set_state(PART:"spacer_right5", "default_rtl", 0.0); \ set_state(PART:"shadow_left1", "default_rtl", 0.0); \ set_state(PART:"shadow_left2", "default_rtl", 0.0); \ set_state(PART:"shadow_left3", "default_rtl", 0.0); \ set_state(PART:"shadow_left4", "default_rtl", 0.0); \ set_state(PART:"shadow_left5", "default_rtl", 0.0); \ set_state(PART:"shadow_right1", "default_rtl", 0.0); \ set_state(PART:"shadow_right2", "default_rtl", 0.0); \ set_state(PART:"shadow_right3", "default_rtl", 0.0); \ set_state(PART:"shadow_right4", "default_rtl", 0.0); \ set_state(PART:"shadow_right5", "default_rtl", 0.0); \ } \ } \ program { "ltr_mirrored"; \ signal: "edje,state,ltr"; \ source: "edje"; \ script { \ set_int(rtl_mode, 0); \ set_state(PART:"spacer_left1", "default", 0.0); \ set_state(PART:"spacer_left2", "default", 0.0); \ set_state(PART:"spacer_left3", "default", 0.0); \ set_state(PART:"spacer_left4", "default", 0.0); \ set_state(PART:"spacer_left5", "default", 0.0); \ set_state(PART:"spacer_right1", "default", 0.0); \ set_state(PART:"spacer_right2", "default", 0.0); \ set_state(PART:"spacer_right3", "default", 0.0); \ set_state(PART:"spacer_right4", "default", 0.0); \ set_state(PART:"spacer_right5", "default", 0.0); \ 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_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); \ } \ } // 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"); } } 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) SHADOW_MIRRORED_PROGRAM } // programs } group { "elm/scroller/base/handler/effect"; inherit: "elm/scroller/base/handler"; 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); emit("reload", "elm"); } } program { "on_visible_always_vbar"; script { new v; v = get_int(sbalways_v); if (!v) { set_int(sbalways_v, 1); v = get_int(sbvis_v); if (!v) { emit("do-show-vbar", ""); set_int(sbvis_v, 1); } } } } program { "on_visible_notalways_vbar"; script { new v; v = get_int(sbalways_v); if (v) { set_int(sbalways_v, 0); v = get_int(sbvis_v); if (!v) { emit("do-hide-vbar", ""); set_int(sbvis_v, 0); } } } } program { "on_visible_always_hbar"; script { new v; v = get_int(sbalways_h); if (!v) { set_int(sbalways_h, 1); v = get_int(sbvis_h); if (!v) { emit("do-show-hbar", ""); set_int(sbvis_h, 1); } } } } program { "on_visible_notalways_hbar"; script { new v; v = get_int(sbalways_h); if (v) { set_int(sbalways_h, 0); v = get_int(sbvis_h); if (!v) { emit("do-hide-hbar", ""); set_int(sbvis_h, 0); } } } } 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) SHADOW_MIRRORED_PROGRAM } } group { "elm/scroller/contents/default"; parts { swallow { "elm.swallow.content"; desc { "default"; } } swallow { "elm.swallow.content_r"; desc { "default"; fixed: 1 1; rel1 { relative: 1.0 0.0; to: "elm.swallow.content"; } rel2 { relative: 2.0 1.0; to: "elm.swallow.content"; } } } swallow { "elm.swallow.content_b"; desc { "default"; fixed: 1 1; rel1 { relative: 0.0 1.0; to: "elm.swallow.content"; } rel2 { relative: 1.0 2.0; to: "elm.swallow.content"; } } } swallow { "elm.swallow.content_rb"; desc { "default"; fixed: 1 1; rel1 { relative: 1.0 1.0; to: "elm.swallow.content"; } rel2 { relative: 2.0 2.0; to: "elm.swallow.content"; } } } } } group { "elm/scroller/base/tabbar"; inherit: "elm/scroller/base/default"; images.image: "core_scroll_bar_h_tab.#.png" COMP; parts { rect { "sb_hbar_clip_master"; desc { "default"; rel1.offset: 0.0 -SCROLLER_TABBAR_SCROLLBAR_HBAR_HEIGHT; } } rect { "sb_hbar_clip"; desc { "default"; rel1.relative: 0.0 -SCROLLER_TABBAR_SCROLLBAR_HBAR_HEIGHT; } } rect { "sb_hbar"; desc { "default"; min: SCROLLER_TABBAR_SCROLLBAR_HBAR_MIN_SIZE_INC; rel1 { relative: 0.0 0.0; to_x: "bg"; to_y: "bg"; } rel2 { relative: 1.0 0.0; to_x: "bg"; to_y: "bg"; } } } image { "elm.dragable.hbar"; desc { "default"; min: SCROLLER_TABBAR_SCROLLBAR_HBAR_MIN_SIZE_INC; max: SCROLLER_TABBAR_SCROLLBAR_HBAR_MAX_SIZE_INC; image.normal: "core_scroll_bar_h_tab.#.png"; color_class: ""; } } } } group { "elm/genlist/base/no_effect"; inherit: "elm/scroller/base/default"; data.item: "banded_bg" "on"; parts { rect { "bg"; scale; desc { "default" color_class: "genlist/default/bg"; color: 255 255 255 255; } } } } group { "elm/genlist/base/default"; inherit: "elm/scroller/base/effect"; data.item: "banded_bg" "on"; parts { rect { "bg"; scale; desc { "default" color_class: "genlist/default/bg"; color: 255 255 255 255; } } } } group { "elm/genlist/base/handler"; inherit: "elm/scroller/base/handler/effect"; data.item: "banded_bg" "on"; parts { rect { "bg"; scale; desc { "default" color_class: "genlist/default/bg"; color: 255 255 255 255; } } } } group { "elm/genlist/base/solid/no_effect"; inherit: "elm/scroller/base/default"; alias: "elm/list/base/no_effect"; parts { rect { "bg"; desc { "default"; color_class: "genlist/solid/bg"; color: 255 255 255 255; } } } } group { "elm/genlist/base/solid/default"; inherit: "elm/scroller/base/effect"; alias: "elm/list/base/default"; parts { rect { "bg"; scale; desc { "default"; color_class: "genlist/solid/bg"; color: 255 255 255 255; } } } } group { "elm/genlist/base/solid/handler"; inherit: "elm/scroller/base/handler/effect"; alias: "elm/list/base/handler"; parts { rect { "bg"; scale; desc { "default"; color_class: "genlist/solid/bg"; color: 255 255 255 255; } } } } group { "elm/gengrid/base/no_effect"; inherit: "elm/scroller/base/default"; parts { rect { "bg"; scale; desc { "default" color_class: "gengrid/default/bg"; color: 255 255 255 255; } } } } group { "elm/gengrid/base/default"; inherit: "elm/scroller/base/effect"; parts { rect { "bg"; scale; desc { "default" color_class: "gengrid/default/bg"; color: 255 255 255 255; } } } } group { "elm/gengrid/base/handler"; inherit: "elm/scroller/base/handler/effect"; parts { rect { "bg"; scale; desc { "default" color_class: "gengrid/default/bg"; color: 255 255 255 255; } } } } group { "elm/gengrid/base/popup"; inherit: "elm/scroller/base/effect"; parts { rect { "bg"; scale; desc { "default"; color_class: "gengrid/popup/bg"; color: 255 255 255 255; } } spacer { "elm.swallow.content.LT_padding"; scale; desc { state: "default"; rel2.relative: 0.0 0.0; align: 0.0 0.0; min: 0 GENGRID_POPUP_CONTENT_TOP_PADDING; max: -1 GENGRID_POPUP_CONTENT_TOP_PADDING; fixed: 0 1; } } spacer { "elm.swallow.content.RB_padding"; scale; desc { "default"; rel1.relative: 1.0 1.0; align: 1.0 1.0; min: 0 GENGRID_POPUP_CONTENT_BOTTOM_PADDING; max: -1 GENGRID_POPUP_CONTENT_BOTTOM_PADDING; fixed: 0 1; } } swallow { "elm.swallow.content"; scale; desc { "default"; fixed: 1 0; rel1.relative: 1.0 1.0; rel1.to: "elm.swallow.content.LT_padding"; rel2.relative: 0.0 0.0; rel2.to: "elm.swallow.content.RB_padding"; } } } }