group { name: "elm/scroller/base/default"; alias: "elm/list/base/default"; alias: "elm/genlist/base/default"; alias: "elm/gengrid/base/default"; alias: "elm/scroller/base/map_bubble"; alias: "elm/genscroller/base/default"; alias: "elm/scroller/base/popup/default"; alias: "elm/scroller/base/popup/transparent"; images.image: "shadow_circle_horiz.png" COMP; images.image: "shadow_circle_vert.png" COMP; data.item: "focus_highlight" "on"; parts { program { signal: "load"; source: ""; script { emit("reload", "elm"); } } ////////////////////////////////////////////////////////////////////// part { name: "bg"; type: RECT; description { state: "default" 0.0; rel.to: "elm.swallow.background"; color_class: "/bg/normal/scroller/base"; } } part { name: "clipper"; type: RECT; description { state: "default" 0.0; rel.to: "elm.swallow.background"; } } part { name: "elm.swallow.background"; type: SWALLOW; // scale: 1; clip_to: "clipper"; description { state: "default" 0.0; // rel1.offset: 2 2; // rel2.offset: -3 -3; // offscale; } } part { name: "elm.swallow.content"; type: SWALLOW; clip_to: "clipper"; description { state: "default" 0.0; rel.to: "elm.swallow.background"; } } part { name: "elm.swallow.overlay"; type: SWALLOW; clip_to: "clipper"; description { state: "default" 0.0; rel.to: "elm.swallow.content"; } } part { name: "sh_top"; mouse_events: 0; scale: 1; clip_to: "sh_clip"; description { state: "default" 0.0; color_class: "/shadow/normal/scroller"; color: 255 255 255 0; // no cc rel.to: "elm.swallow.content"; rel1.offset: 0 -1; rel2.offset: -1 -1; rel2.relative: 1.0 0.0; image.normal: "shadow_circle_horiz.png"; visible: 0; offscale; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; // no cc rel1.offset: 0 -16; rel2.offset: -1 15; visible: 1; } } program { signal: "elm,action,show,up"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "sh_top"; } program { signal: "elm,action,hide,up"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "sh_top"; } part { name: "sh_bottom"; mouse_events: 0; scale: 1; clip_to: "sh_clip"; description { state: "default" 0.0; color_class: "/shadow/normal/scroller"; color: 255 255 255 0; // no cc rel.to: "elm.swallow.content"; rel1.relative: 0.0 1.0; rel1.offset: 0 0; rel2.offset: -1 0; image.normal: "shadow_circle_horiz.png"; visible: 0; offscale; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; // no cc rel1.offset: 0 -16; rel2.offset: -1 15; visible: 1; } } program { signal: "elm,action,show,down"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "sh_bottom"; } program { signal: "elm,action,hide,down"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "sh_bottom"; } part { name: "sh_left"; mouse_events: 0; scale: 1; clip_to: "sh_clip"; description { state: "default" 0.0; color_class: "/shadow/normal/scroller"; color: 255 255 255 0; // no cc rel.to: "elm.swallow.content"; rel1.offset: -1 0; rel2.offset: -1 -1; rel2.relative: 0.0 1.0; image.normal: "shadow_circle_vert.png"; visible: 0; offscale; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; // no cc rel1.offset: -16 0; rel2.offset: 15 -1; visible: 1; } } program { signal: "elm,action,show,left"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "sh_left"; } program { signal: "elm,action,hide,left"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "sh_left"; } part { name: "sh_right"; mouse_events: 0; scale: 1; clip_to: "sh_clip"; description { state: "default" 0.0; color_class: "/shadow/normal/scroller"; color: 255 255 255 0; // no cc rel.to: "elm.swallow.content"; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel2.offset: 0 -1; image.normal: "shadow_circle_vert.png"; visible: 0; offscale; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; // no cc rel1.offset: -16 0; rel2.offset: 15 -1; visible: 1; } } program { signal: "elm,action,show,right"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "sh_right"; } program { signal: "elm,action,hide,right"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "sh_right"; } part { name: "sh_clip"; type: RECT; description { state: "default" 0.0; rel.to: "elm.swallow.background"; } } ////////////////////////////////////////////////////////////////////// // vert bar //////////////////////////////////////////////////////////////// part { name: "sb_vbar_show"; type: RECT; description { state: "default" 0.0; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "sb_vbar"; type: RECT; scale: 1; description { state: "default" 0.0; fixed: 1 1; min: 15 1; align: 1.0 0.0; rel1.relative: 1.0 0.0; rel1.offset: -1 0; rel2.relative: 1.0 0.0; rel2.to_y: "sb_hbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 999999; } } part { name: "sb_vbar_p1"; type: RECT; clip_to: "sb_vbar"; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.to: "sb_vbar"; rel2.relative: 1.0 0.0; rel2.to: "elm.dragable.vbar"; fixed: 1 1; } } part { name: "sb_vbar_p2"; type: RECT; clip_to: "sb_vbar"; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.relative: 0.0 1.0; rel1.to: "elm.dragable.vbar"; rel2.to: "sb_vbar"; fixed: 1 1; } } part { name: "elm.dragable.vbar"; type: RECT; clip_to: "sb_vbar"; scale: 1; dragable.x: 0 0 0; dragable.y: 1 1 0; dragable.confine: "sb_vbar"; description { state: "default" 0.0; fixed: 1 1; min: 15 15; rel1.relative: 0.5 0.5; rel1.to: "sb_vbar"; rel2.relative: 0.5 0.5; rel2.to: "sb_vbar"; color: 0 0 0 0; // no cc } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; } } part { name: "sb_vbar_over"; type: RECT; repeat_events: 1; scale: 1; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.to: "sb_vbar"; rel1.offset: -45 0; rel2.to: "sb_vbar"; fixed: 1 1; offscale; } } program { signal: "mouse,in"; source: "sb_vbar_over"; action: STATE_SET "over" 0.0; transition: DECELERATE 0.2; target: "base_vbar"; } program { signal: "mouse,out"; source: "sb_vbar_over"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "base_vbar"; } part { name: "y_vbar_up_mapper"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 4 2; max: 4 2; fixed: 1 1; align: 0.0 0.0; rel1.to: "sb_vbar"; rel2.to: "sb_vbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "y_vbar_up"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 4 2; max: 4 2; fixed: 1 1; align: 0.0 0.0; rel1.to: "elm.dragable.vbar"; rel2.to: "elm.dragable.vbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "y_vbar_down_mapper"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 4 2; max: 4 2; fixed: 1 1; align: 0.0 1.0; rel1.to: "sb_vbar"; rel2.to: "sb_vbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "y_vbar_down"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 4 2; max: 4 2; fixed: 1 1; align: 0.0 1.0; rel1.to: "elm.dragable.vbar"; rel2.to: "elm.dragable.vbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } program { signal: "elm,action,show,vbar"; source: "elm"; action: STATE_SET "default" 0.0; target: "sb_vbar"; target: "sb_vbar_show"; target: "elm.dragable.vbar"; target: "y_vbar_up_mapper"; target: "y_vbar_up"; target: "y_vbar_down_mapper"; target: "y_vbar_down"; } program { signal: "elm,action,hide,vbar"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "sb_vbar"; target: "sb_vbar_show"; target: "elm.dragable.vbar"; target: "y_vbar_up_mapper"; target: "y_vbar_up"; target: "y_vbar_down_mapper"; target: "y_vbar_down"; } program { signal: "mouse,down,1*"; source: "sb_vbar_p1"; action: DRAG_VAL_PAGE 0.0 -1.0; target: "elm.dragable.vbar"; } program { signal: "mouse,down,1*"; source: "sb_vbar_p2"; action: DRAG_VAL_PAGE 0.0 1.0; target: "elm.dragable.vbar"; } // program { signal: "elm,action,show,up"; source: "elm"; // } // program { signal: "elm,action,show,down"; source: "elm"; // } // program { signal: "elm,action,hide,up"; source: "elm"; // } // program { signal: "elm,action,hide,down"; source: "elm"; // } // program { signal: "elm,action,scroll"; source: "elm"; // } // program { signal: "elm,loop_y,set"; source: "elm"; // } // program { signal: "elm,loop_y,unset"; source: "elm"; // } // horiz bar ///////////////////////////////////////////////////////////// part { name: "sb_hbar_show"; type: RECT; description { state: "default" 0.0; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "sb_hbar"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; min: 1 15; align: 0.0 1.0; rel1.relative: 0.0 1.0; rel1.offset: 0 -1; rel2.relative: 0.0 1.0; rel2.to_x: "sb_vbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 999999 0; } } part { name: "sb_hbar_p1"; type: RECT; clip_to: "sb_hbar"; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.to: "sb_hbar"; rel2.relative: 0.0 1.0; rel2.to: "elm.dragable.hbar"; fixed: 1 1; } } part { name: "sb_hbar_p2"; type: RECT; clip_to: "sb_hbar"; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.relative: 1.0 0.0; rel1.to: "elm.dragable.hbar"; rel2.to: "sb_hbar"; fixed: 1 1; } } part { name: "elm.dragable.hbar"; type: RECT; scale: 1; clip_to: "sb_hbar"; dragable.x: 1 1 0; dragable.y: 0 0 0; dragable.confine: "sb_hbar"; description { state: "default" 0.0; fixed: 1 1; min: 15 15; rel1.relative: 0.5 0.5; rel1.to: "sb_hbar"; rel2.relative: 0.5 0.5; rel2.to: "sb_hbar"; color: 0 0 0 0; // no cc } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; } } part { name: "sb_hbar_over"; type: RECT; repeat_events: 1; scale: 1; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.to: "sb_hbar"; rel1.offset: 0 -45; rel2.to: "sb_hbar"; fixed: 1 1; offscale; } } program { signal: "mouse,in"; source: "sb_hbar_over"; action: STATE_SET "over" 0.0; transition: DECELERATE 0.2; target: "base_hbar"; } program { signal: "mouse,out"; source: "sb_hbar_over"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "base_hbar"; } part { name: "x_hbar_left_mapper"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 2 4; max: 2 4; fixed: 1 1; align: 0.0 1.0; rel1.to: "sb_hbar"; rel2.to: "sb_hbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "x_hbar_left"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 2 4; max: 2 4; fixed: 1 1; align: 0.0 1.0; rel1.to: "elm.dragable.hbar"; rel2.to: "elm.dragable.hbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "x_hbar_right_mapper"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 2 4; max: 2 4; fixed: 1 1; align: 1.0 1.0; rel1.to: "sb_hbar"; rel2.to: "sb_hbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "x_hbar_right"; type: SPACER; scale: 1; repeat_events: 1; description { state: "default" 0.0; min: 2 4; max: 2 4; fixed: 1 1; align: 1.0 1.0; rel1.to: "elm.dragable.hbar"; rel2.to: "elm.dragable.hbar"; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } program { signal: "elm,action,show,hbar"; source: "elm"; action: STATE_SET "default" 0.0; target: "sb_hbar"; target: "sb_hbar_show"; target: "elm.dragable.hbar"; target: "x_hbar_left_mapper"; target: "x_hbar_left"; target: "x_hbar_right_mapper"; target: "x_hbar_right"; } program { signal: "elm,action,hide,hbar"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "sb_hbar"; target: "sb_hbar_show"; target: "elm.dragable.hbar"; target: "x_hbar_left_mapper"; target: "x_hbar_left"; target: "x_hbar_right_mapper"; target: "x_hbar_right"; } program { signal: "mouse,down,1*"; source: "sb_hbar_p1"; action: DRAG_VAL_PAGE -1.0 0.0; target: "elm.dragable.hbar"; } program { signal: "mouse,down,1*"; source: "sb_hbar_p2"; action: DRAG_VAL_PAGE 1.0 0.0; target: "elm.dragable.hbar"; } // program { signal: "elm,action,show,left"; source: "elm"; // } // program { signal: "elm,action,show,right"; source: "elm"; // } // program { signal: "elm,action,hide,left"; source: "elm"; // } // program { signal: "elm,action,hide,right"; source: "elm"; // } // program { signal: "elm,action,scroll"; source: "elm"; // } // program { signal: "elm,loop_x,set"; source: "elm"; // } // program { signal: "elm,loop_x,unset"; source: "elm"; // } ////////////////////////////////////////////////////////////////////// part { name: "color_vbar"; type: RECT; mouse_events: 0; clip_to: "sb_vbar_show"; description { state: "default" 0.0; fixed: 1 1; color_class: "/fg/normal/scroller/bar/vertical"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "/fg/disabled/scroller/bar/vertical"; } description { state: "clicked" 0.0; inherit: "default" 0.0; color_class: "/fg/pressed/scroller/bar/vertical"; } } part { name: "base_vbar"; type: RECT; mouse_events: 0; scale: 1; clip_to: "color_vbar"; description { state: "default" 0.0; fixed: 1 1; rel.to: "elm.dragable.vbar"; min: 5 15; max: 5 999999; align: 1.0 0.5; } description { state: "over" 0.0; inherit: "default" 0.0; min: 15 15; max: 15 999999; } } ////////////////////////////////////////////////////////////////////// part { name: "color_hbar"; type: RECT; mouse_events: 0; clip_to: "sb_hbar_show"; description { state: "default" 0.0; fixed: 1 1; color_class: "/fg/normal/scroller/bar/horizontal"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "/fg/disabled/scroller/bar/horizontal"; } description { state: "clicked" 0.0; inherit: "default" 0.0; color_class: "/fg/pressed/scroller/bar/horizontal"; } } part { name: "base_hbar"; type: RECT; mouse_events: 0; scale: 1; clip_to: "color_hbar"; description { state: "default" 0.0; fixed: 1 1; rel.to: "elm.dragable.hbar"; min: 15 5; max: 999999 5; align: 0.5 1.0; } description { state: "over" 0.0; inherit: "default" 0.0; min: 15 15; max: 999999 15; } } ////////////////////////////////////////////////////////////////////// part { name: "dim_effect"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 32 32 32 0; // no cc visible: 0; } description { state: "effect" 0.0; color: 32 32 32 255; // no cc } } } programs { program { signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "color_hbar"; target: "color_vbar"; } program { signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "color_hbar"; target: "color_vbar"; } program { signal: "mouse,down,1*"; source: "elm.dragable.vbar"; action: STATE_SET "clicked" 0.0; target: "elm.dragable.vbar"; target: "color_vbar"; } program { signal: "mouse,down,*"; source: "elm.dragable.vbar"; action: SIGNAL_EMIT "elm,vbar,press" "elm"; } program { signal: "mouse,up,1"; source: "elm.dragable.vbar"; action: STATE_SET "default" 0.0; target: "elm.dragable.vbar"; target: "color_vbar"; } program { signal: "mouse,up,*"; source: "elm.dragable.vbar"; action: SIGNAL_EMIT "elm,vbar,unpress" "elm"; } program { signal: "mouse,down,1*"; source: "elm.dragable.hbar"; action: STATE_SET "clicked" 0.0; target: "elm.dragable.hbar"; target: "color_hbar"; } program { signal: "mouse,down,*"; source: "elm.dragable.hbar"; action: SIGNAL_EMIT "elm,hbar,press" "elm"; } program { signal: "mouse,up,1"; source: "elm.dragable.hbar"; action: STATE_SET "default" 0.0; target: "elm.dragable.hbar"; target: "color_hbar"; } program { signal: "mouse,up,*"; source: "elm.dragable.hbar"; action: SIGNAL_EMIT "elm,hbar,unpress" "elm"; } program { signal: "elm,action,looping,left"; source: "elm"; action: STATE_SET "effect" 0.0; transition: LINEAR 0.3; target: "dim_effect"; after: "looping,left,done"; } program { name: "looping,left,done"; action: SIGNAL_EMIT "elm,looping,left,done" "elm"; } program { signal: "elm,action,looping,left,end"; source: "elm"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "dim_effect"; } program { signal: "elm,action,looping,right"; source: "elm"; action: STATE_SET "effect" 0.0; transition: LINEAR 0.3; target: "dim_effect"; after: "looping,right,done"; } program { name: "looping,right,done"; action: SIGNAL_EMIT "elm,looping,right,done" "elm"; } program { signal: "elm,action,looping,right,end"; source: "elm"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "dim_effect"; } program { signal: "elm,action,looping,up"; source: "elm"; action: STATE_SET "effect" 0.0; transition: LINEAR 0.3; target: "dim_effect"; after: "looping,up,done"; } program { name: "looping,up,done"; action: SIGNAL_EMIT "elm,looping,up,done" "elm"; } program { signal: "elm,action,looping,up,end"; source: "elm"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "dim_effect"; } program { signal: "elm,action,looping,down"; source: "elm"; action: STATE_SET "effect" 0.0; transition: LINEAR 0.3; target: "dim_effect"; after: "looping,down,done"; } program { name: "looping,down,done"; action: SIGNAL_EMIT "elm,looping,down,done" "elm"; } program { signal: "elm,action,looping,down,end"; source: "elm"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "dim_effect"; } } } group { name: "elm/scroller/base/noclip"; inherit: "elm/scroller/base/default"; parts { part { name: "clipper"; description { state: "default" 0.0; rel1.offset: -999999 -999999; rel2.offset: 999999 999999; } } part { name: "elm.swallow.background"; description { state: "default" 0.0; rel1.offset: 0 0; rel2.offset: -1 -1; } } part { name: "elm.swallow.content"; description { state: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 -1; } } part { name: "sh_clip"; type: RECT; description { state: "default" 0.0; visible: 0; } } } } group { name: "elm/scroller/contents/default"; parts { part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; } } part { name: "elm.swallow.content_r"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel1 { relative: 1.0 0.0; to: "elm.swallow.content"; } rel2 { relative: 2.0 1.0; to: "elm.swallow.content"; } } } part { name: "elm.swallow.content_b"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel1 { relative: 0.0 1.0; to: "elm.swallow.content"; } rel2 { relative: 1.0 2.0; to: "elm.swallow.content"; } } } part { name: "elm.swallow.content_rb"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel1 { relative: 1.0 1.0; to: "elm.swallow.content"; } rel2 { relative: 2.0 2.0; to: "elm.swallow.content"; } } } } } group { name: "elm/scroller/base/popup/no_inset_shadow"; inherit: "elm/scroller/base/default"; alias: "elm/scroller/base/no_inset_shadow"; alias: "elm/gengrid/base/no_inset_shadow"; parts { part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1.offset: 0 0; rel2.offset: 0 0; } } } }