/* * Copyright (c) 2010 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. */ group { name: "elm/index/base/vertical/default"; script { public timer_id, timer_flag, timer_id_2, timer_flag_2; public index_hide_timer(val) { if (get_int(timer_flag) == 1) run_program(PROGRAM:"index0.hide"); return 0; } } images { image: "b_fast_scroll_rollover_bg_line.png" COMP; } parts { part { name: "clip"; scale: 1; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "active" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "clip2"; scale: 1; type: RECT; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "active" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "elm.dragable.index.1"; type: SPACER; mouse_events: 0; scale: 1; dragable { x: 0 0 0; y: 1 1 0; confine: "elm.swallow.index.0"; } description { state: "default" 0.0; fixed: 1 1; min: INDEX_SCROLL_DRAG_PART_SIZE_INC; rel1.to: "elm.swallow.index.0"; rel2 { relative: 0.0 1.0; to: "elm.swallow.index.0"; } } } part { name: "elm.swallow.index.1.padding.right"; type: RECT; scale: 1; description { state: "default" 0.0; max:1 0; visible: 0; fixed: 1 0; align: 1.0 0.0; rel1.to: "elm.swallow.index.0"; rel2 { relative: 0.0 1.0; to: "elm.swallow.index.0"; } } description { state: "active" 0.0; max:1 0; visible: 1; color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/ } } part { name: "elm.swallow.index.1"; type: SWALLOW; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; visible: 0; fixed: 1 1; align: 1.0 0.0; rel1 { to: "elm.dragable.index.1"; offset: -1 0; } rel2 { to: "elm.dragable.index.1"; offset: -1 0; relative: 0.0 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } description { state: "align_bottom" 0.0; inherit: "default" 0.0; visible: 1; align: 1.0 1.0; rel1 { relative: 0.0 1.0; to: "index.bottom.padding"; } rel2 { relative: 0.0 1.0; to: "index.bottom.padding"; } } description { state: "align_top" 0.0; inherit: "default" 0.0; visible: 1; align: 1.0 0.0; rel1.to: "index.top.padding"; rel2 { relative: 0.0 0.0; to: "index.top.padding"; } } } part { name: "index.top.padding"; type: SPACER; scale: 1; description { align: 0.5 0.0; min: 0 INDEX_SCROLL_PADDING_SIZE_INC; fixed: 0 1; rel1 { to_x: "elm.swallow.index.0"; relative: 0.0 0.0; } rel2 { to_x: "elm.swallow.index.0"; relative: 1.0 0.0; } } } part { name: "index.bottom.padding"; type: SPACER; scale: 1; description { align: 0.5 1.0; min: 0 INDEX_SCROLL_PADDING_SIZE_INC; fixed: 0 1; rel1 { to_x: "elm.swallow.index.0"; relative: 0.0 1.0; } rel2 { to_x: "elm.swallow.index.0"; relative: 1.0 1.0; } } } part { name: "bg_index.0"; type: RECT; scale: 1; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "index.top.padding"; rel2.to: "index.bottom.padding"; color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/ } } part { name: "elm.swallow.index.0"; type: SWALLOW; scale: 1; clip_to: "clip"; description { state: "default" 0.0; visible: 1; align: 1.0 0.5; fixed: 1 1; rel1 { to_y: "index.top.padding"; relative: 1.0 1.0; } rel2 { to_y: "index.bottom.padding"; relative: 1.0 0.0; } } } part { name: "popup_bg"; type: RECT; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; fixed: 1 1; color: 0 60 117 242; /*(Changeable UI) color_class: "B0731";*/ min: INDEX_SCROLL_POPUP_SIZE_INC; max: INDEX_SCROLL_POPUP_SIZE_INC; rel2 { relative: 0.0 1.0; to: "elm.swallow.index.0"; } } } part { name: "popup_bg_line"; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; rel1.to: "popup_bg"; rel2.to: "popup_bg"; color: 0 60 117 242; /*(Changeable UI) color_class: "B151";*/ image.normal: "b_fast_scroll_rollover_bg_line.png"; } } part { name: "align_prop"; type: "SPACER"; mouse_events: 0; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; min: 1 0; max: 1 -1; fixed: 1 0; rel1 { to: "popup_bg"; relative: 0.5 0.0; } rel2 { to: "popup_bg"; relative: 0.5 1.0; } } } part { name: "elm.text.1"; type: "TEXTBLOCK"; mouse_events: 0; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; fixed: 1 1; text.style: "Index_scroll_1depth_popup"; text.min: 1 1; align: 0.5 0.5; rel1 { to: "popup_bg"; relative: 0.0 0.0; } rel2 { to: "popup_bg"; relative: 1.0 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; text.style: "Index_scroll_1depth_popup_left_align"; text.min: 1 1; rel1 { to: "align_prop"; relative: 1.0 0.0; } } } part { name: "elm.text"; type: "TEXTBLOCK"; mouse_events: 0; scale: 1; clip_to: "clip2"; description { state: "default" 0.0; fixed: 1 1; text.style: "Index_scroll_bar_2depth_popup"; text.min: 1 1; visible: 0; align: 1.0 0.5; rel1.to: "align_prop"; rel2 { to: "align_prop"; relative: 0.0 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "elm.swallow.event.0"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; align: 1.0 0.5; rel1.to: "elm.swallow.index.0"; rel2.to: "elm.swallow.index.0"; } } part { name: "elm.swallow.event.1"; type: SWALLOW; scale: 1; description { state: "default" 0.0; align: 1.0 0.5; fixed: 1 1; rel1.to: "elm.swallow.index.1"; rel2.to: "elm.swallow.index.1"; } } part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; rel1 { to: "elm.swallow.index.0"; offset: -3 0; } rel2.to: "elm.swallow.index.0"; color: 0 0 0 0; visible: 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "load"; signal: "load"; source: ""; script { run_program(PROGRAM:"initial.index0.active"); } } program { name: "drag2"; signal: "drag,set"; source: "elm.dragable.index.1"; script { new Float:dx; new Float:dy; get_drag(PART:"elm.dragable.index.1", dx, dy); custom_state(PART:"elm.dragable.index.1", "default", 0.0); set_state_val(PART:"elm.dragable.index.1", STATE_ALIGNMENT, 0.5, dy); } } program { name: "initial.index0.active"; action: STATE_SET "active" 0.0; target: "clip"; after: "index0.inactive"; } program { name: "index0.active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; target: "clip"; after: "disable_timer"; } program { name: "index0.inactive"; signal: "elm,state,inactive"; source: "elm"; script { new v; v = get_int(timer_id); if (v > 0) cancel_timer(v); run_program(PROGRAM:"enable_timer"); v = timer(2.0, "index_hide_timer", 0); set_int(timer_id, v); } } program { name: "index1.inactive"; signal: "elm,state,level,0"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.swallow.index.1"; target: "elm.text.1"; target: "elm.text"; target: "elm.swallow.index.1.padding.right"; } program { name: "index1.active"; signal: "elm,state,level,1"; source: "elm"; script { new x1, x2, y1, y2, w1, w2, h1, h2; new Float:dx; new Float:dy; get_drag(PART:"elm.dragable.index.1", dx, dy); get_geometry(PART:"elm.swallow.index.1", x1, y1, w1, h1); get_geometry(PART:"clip", x2, y2, w2, h2); if ((y1+h1) > (y2+h2)) { set_state(PART:"elm.swallow.index.1", "align_bottom", 0.0); } else if (dy < 0.1) { set_state(PART:"elm.swallow.index.1", "align_top", 0.0); } else { set_state(PART:"elm.swallow.index.1", "active", 0.0); } set_state(PART:"clip2", "active", 0.0); set_state(PART:"elm.swallow.index.1.padding.right", "active", 0.0); } } program { name: "index1.text"; signal: "index1.text.enable"; source: ""; action: STATE_SET "active" 0.0; target: "elm.text.1"; target: "elm.text"; } program { name: "index0.hide"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "clip"; } program { name: "index.active"; signal: "elm,indicator,state,active"; source: "elm"; action: STATE_SET "active" 0.0; target: "clip2"; } program { name: "index.inactive"; signal: "elm,indicator,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "clip2"; } program { name: "event.inactive"; signal: "elm,priority,up"; source: "elm"; action: STATE_SET "inactive" 0.0; target: "elm.swallow.event.0"; } program { name: "index.up"; signal: "elm,priority,up"; source: "elm"; action: STATE_SET "up" 0.0; target: "elm.swallow.index.0"; after: "index.go.down"; } program { name: "index.go.down"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "elm.swallow.index.0"; after: "event.active"; } program { name: "event.inactive2"; signal: "elm,priority,down"; source: "elm"; action: STATE_SET "inactive" 0.0; target: "elm.swallow.event.0"; } program { name: "index.down"; signal: "elm,priority,down"; source: "elm"; action: STATE_SET "down" 0.0; target: "elm.swallow.index.0"; after: "index.go.up"; } program { name: "index.go.up"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "elm.swallow.index.0"; after: "event.active"; } program { name: "event.active"; action: STATE_SET "default" 0.0; target: "elm.swallow.event.0"; } program { name: "access.active"; signal: "elm,access,state,active"; source: "elm"; action: STATE_SET "active" 0.0; target: "access"; } program { name: "access.inactive"; signal: "elm,access,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; target: "access"; } program { name: "disable_timer"; script { set_int(timer_flag, 0); } } program { name: "enable_timer"; script { set_int(timer_flag, 1); } } program { name: "disable_timer_2"; script { set_int(timer_flag_2, 0); } } program { name: "enable_timer_2"; script { set_int(timer_flag_2, 1); } } } } group { name: "elm/index/item1/vertical/default"; alias: "elm/index/item1_odd/vertical/default"; data.item: "stacking" "above"; data.item: "selectraise" "on"; images { image: "b_index_scroll_press_bg_line.png" COMP; } parts { part { name: "bg"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: INDEX_SCROLL_HANDLE_ITEM_WIDTH_INC INDEX_SCROLL_HANDLE_ITEM_HEIGHT_INC; color: 33 33 33 255; /*(Changeable UI) color_class: "B0722";*/ rel1.to: "elm.text"; rel2.to: "elm.text"; } description { state: "active" 0.0; inherit: "default" 0.0; color: 43 43 43 255; /*(Changeable UI) color_class: "B0724";*/ } } part { name: "bg_divider_line"; type: RECT; scale: 1; description { state: "default" 0.0; rel1.to: "bg"; rel2 {to: "bg"; relative: 0.0 1.0;} fixed: 1 0; min: INDEX_SCROLL_DIVIDER_WIDTH_INC 0; max: INDEX_SCROLL_DIVIDER_WIDTH_INC -1; color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/ align: 0.0 0.5; } description { state: "inactive" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "bg_press_line"; scale: 1; description { state: "default" 0.0; rel1.to: "focus.top.pad"; rel2.to: "focus.bottom.pad"; image.normal: "b_index_scroll_press_bg_line.png"; color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/ visible: 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "divider"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.0 1.0; min: 0 INDEX_DIVIDER_WIDTH_INC; fixed: 1 1; rel1.relative: 0.0 1.0; color: 96 96 96 51; /*(Changeable UI) color_class: "B0725";*/ } description { state: "inactive" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "focus.top.pad"; type: SPACER; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.0 1.0; min: 0 INDEX_SCROLL_BG_LINE_WIDTH_INC; fixed: 0 1; rel2.relative: 1.0 0.0; } } part { name: "focus.bottom.pad"; type: SPACER; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.0 0.0; min: 0 INDEX_SCROLL_BG_LINE_WIDTH_INC; fixed: 0 1; rel1.relative: 0.0 1.0; } } part { name: "elm.text"; type: TEXTBLOCK; mouse_events: 0; scale: 1; description { align: 0.5 0.5; state: "default" 0.0; text.style: "Index_scroll_bar_unselect"; } description { state: "active" 0.0; inherit: "default" 0.0; text.style: "Index_scroll_bar_select"; } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: DECELERATE 0.0; target: "elm.text"; target: "bg"; target: "bg_press_line"; after: "divider.inactive"; } program { name: "divider.inactive"; action: STATE_SET "inactive" 0.0; target: "divider"; target: "bg_divider_line"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.0; target: "elm.text"; target: "bg"; target: "bg_press_line"; after: "divider.active"; } program { name: "divider.active"; action: STATE_SET "default" 0.0; target: "divider"; target: "bg_divider_line"; } program { signal: "elm,last,item"; source: "elm"; action: STATE_SET "inactive" 0.0; target: "divider"; } } } group { name: "elm/index/item2/vertical/default"; alias: "elm/index/item2_odd/vertical/default"; data.item: "stacking" "above"; data.item: "selectraise" "on"; parts { part { name: "bg"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: INDEX_SCROLL_HANDLE_ITEM_WIDTH_INC INDEX_SCROLL_HANDLE_ITEM_HEIGHT_INC; color: 43 43 43 255; /*(Changeable UI) color_class: "B0723";*/ rel1.to: "elm.text"; rel2.to: "elm.text"; } } part { name: "bg_divider_line"; type: RECT; scale: 1; description { state: "default" 0.0; rel1.to: "bg"; rel2 {to: "bg"; relative: 0.0 1.0;} fixed: 1 0; min: INDEX_SCROLL_DIVIDER_WIDTH_INC 0; max: INDEX_SCROLL_DIVIDER_WIDTH_INC -1; color: 63 63 63 255; /*(Changeable UI) color_class: "B171";*/ align: 0.0 0.5; } description { state: "inactive" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "divider"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.0 1.0; min: 0 INDEX_DIVIDER_WIDTH_INC; fixed: 1 1; rel1.relative: 0.0 1.0; color: 96 96 96 51; /*(Changeable UI) color_class: "B0725";*/ } description { state: "inactive" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "elm.text"; type: TEXTBLOCK; mouse_events: 0; scale: 1; description { align: 0.5 0.5; state: "default" 0.0; text.style: "Index_scroll_bar_unselect"; } description { state: "active" 0.0; inherit: "default" 0.0; text.style: "Index_scroll_bar_2depth_focus_bar"; } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: DECELERATE 0.0; target: "elm.text"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.0; target: "elm.text"; } program { signal: "elm,last,item"; source: "elm"; action: STATE_SET "inactive" 0.0; target: "divider"; } } } group { name: "elm/index/base/vertical/thumbnail"; alias: "elm/index/base/horizontal/thumbnail"; parts { part { name: "clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; visible: 1; } } part { name: "elm.swallow.index.0"; type: SWALLOW; scale: 1; clip_to: "clip"; description { state: "default" 0.0; align: 0.5 0.5; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; fixed: 1 1; } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: DECELERATE 0.5; target: "clip"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "clip"; } } } group { name: "elm/index/item/vertical/thumbnail"; alias: "elm/index/item_odd/vertical/thumbnail"; alias: "elm/index/item/horizontal/thumbnail"; alias: "elm/index/item_odd/horizontal/thumbnail"; images { image: "indicator_horizontal_dot.png" COMP; image: "indicator_horizontal_focus_dot.png" COMP; } parts { part { name:"bg"; type : RECT; scale: 1; description { state: "default" 0.0; color: 0 0 0 0; min: INDEX_HORIZONTAL_DOT_BG_SIZE; max: INDEX_HORIZONTAL_DOT_BG_SIZE; visible: 0; align: 0.5 0.5; } } part { name: "indicator"; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.5 0.5; fixed: 1 1; image.normal: "indicator_horizontal_dot.png"; min: INDEX_HORIZONTAL_DOT_SIZE; max: INDEX_HORIZONTAL_DOT_SIZE; color: 249 249 249 127; /*(Changeable UI) color_class: "W1911D";*/ map { on: 1; zoom.x: 1.0; zoom.y: 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; color: 249 249 249 255; /*(Changeable UI) color_class: "W1911";*/ map { on: 1; zoom.x: 1.25; zoom.y: 1.25; } } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: CUBIC_BEZIER 0.25 0.45 0.03 0.41 1.0; target: "indicator"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: CUBIC_BEZIER 0.25 0.45 0.03 0.41 1.0; target: "indicator"; } } } group { name: "elm/index/base/vertical/circle"; alias: "elm/index/base/horizontal/circle"; alias: "elm/index/base/vertical/circle_empty"; alias: "elm/index/base/horizontal/circle_empty"; parts { part { name: "clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; visible: 1; } } part { name: "elm.swallow.index.0"; type: SWALLOW; scale: 1; clip_to: "clip"; description { state: "default" 0.0; align: 0.5 0.0; rel1.relative: 0.5 0.0; rel2.relative: 0.5 0.0; fixed: 1 1; } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: DECELERATE 0.5; target: "clip"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "clip"; } } } group { name: "elm/index/item/even_1/circle"; alias: "elm/index/item/vertical/circle"; alias: "elm/index/item_odd/vertical/circle"; alias: "elm/index/item/horizontal/circle"; alias: "elm/index/item_odd/horizontal/circle"; images { image: "indicator_horizontal_dot.png" COMP; image: "indicator_horizontal_focus_dot.png" COMP; } parts { part { name:"bg"; type: SPACER; description { state: "default" 0.0; min: 10 91; } } part { name:"top_padding"; type: SPACER; description { state: "default" 0.0; align: 0.5 0.0; min: 10 86; max: 10 86; } } part { name: "indicator"; mouse_events: 0; description { state: "default" 0.0; min: INDEX_HORIZONTAL_DOT_SIZE; fixed: 1 1; align: 0.5 0.5; image.normal: "indicator_horizontal_dot.png"; color: 249 249 249 127; /*(Changeable UI) color_class: "W1911D";*/ rel1 { to: "top_padding"; relative: 0.5 1.0; } rel2 { to: "top_padding"; relative: 0.5 1.0; } map { on: 1; zoom.x: 1.0; zoom.y: 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; color: 249 249 249 255; /*(Changeable UI) color_class: "W1911";*/ map { on: 1; zoom.x: 1.25; zoom.y: 1.25; } } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: CUBIC_BEZIER 0.25 0.45 0.03 0.41 1.0; target: "indicator"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: CUBIC_BEZIER 0.25 0.45 0.03 0.41 1.0; target: "indicator"; } } } #define INDEX_CIRCLE_ITEM_HEIGHT 91 #define INDEX_CIRCLE_ITEM( TYPE, ORD, Y, W) \ group { name: "elm/index/item/"#TYPE"_"#ORD"/circle"; \ inherit: "elm/index/item/even_1/circle"; \ parts { \ part { name: "bg"; \ type: SPACER; \ description { state: "default" 0.0; \ min: W INDEX_CIRCLE_ITEM_HEIGHT; \ } \ } \ part { name:"top_padding"; \ type: SPACER; \ description { state: "default" 0.0; \ align: 0.5 0.0; \ min: W Y; \ max: W Y; \ } \ } \ } \ } \ INDEX_CIRCLE_ITEM(even, 2, 72, 11) INDEX_CIRCLE_ITEM(even, 3, 58, 13) INDEX_CIRCLE_ITEM(even, 4, 46, 14) INDEX_CIRCLE_ITEM(even, 5, 36, 15) INDEX_CIRCLE_ITEM(even, 6, 27, 16) INDEX_CIRCLE_ITEM(even, 7, 19, 17) INDEX_CIRCLE_ITEM(even, 8, 14, 17) INDEX_CIRCLE_ITEM(even, 9, 10, 18) INDEX_CIRCLE_ITEM(even, 10, 8, 18) INDEX_CIRCLE_ITEM(even, 11, 8, 18) INDEX_CIRCLE_ITEM(even, 12, 10, 18) INDEX_CIRCLE_ITEM(even, 13, 14, 17) INDEX_CIRCLE_ITEM(even, 14, 19, 17) INDEX_CIRCLE_ITEM(even, 15, 27, 16) INDEX_CIRCLE_ITEM(even, 16, 36, 15) INDEX_CIRCLE_ITEM(even, 17, 46, 14) INDEX_CIRCLE_ITEM(even, 18, 58, 13) INDEX_CIRCLE_ITEM(even, 19, 72, 11) INDEX_CIRCLE_ITEM(even, 20, 86, 10) INDEX_CIRCLE_ITEM(odd, 1, 79, 11) INDEX_CIRCLE_ITEM(odd, 2, 65, 12) INDEX_CIRCLE_ITEM(odd, 3, 52, 13) INDEX_CIRCLE_ITEM(odd, 4, 41, 15) INDEX_CIRCLE_ITEM(odd, 5, 31, 15) INDEX_CIRCLE_ITEM(odd, 6, 23, 17) INDEX_CIRCLE_ITEM(odd, 7, 16, 17) INDEX_CIRCLE_ITEM(odd, 8, 12, 17) INDEX_CIRCLE_ITEM(odd, 9, 9, 18) INDEX_CIRCLE_ITEM(odd, 10, 8, 18) INDEX_CIRCLE_ITEM(odd, 11, 9, 18) INDEX_CIRCLE_ITEM(odd, 12, 12, 17) INDEX_CIRCLE_ITEM(odd, 13, 16, 17) INDEX_CIRCLE_ITEM(odd, 14, 23, 17) INDEX_CIRCLE_ITEM(odd, 15, 31, 15) INDEX_CIRCLE_ITEM(odd, 16, 41, 15) INDEX_CIRCLE_ITEM(odd, 17, 52, 13) INDEX_CIRCLE_ITEM(odd, 18, 65, 12) INDEX_CIRCLE_ITEM(odd, 19, 79, 11) group { name: "elm/index/item/even_1/circle_empty"; alias: "elm/index/item/vertical/circle_empty"; alias: "elm/index/item_odd/vertical/circle_empty"; alias: "elm/index/item/horizontal/circle_empty"; alias: "elm/index/item_odd/horizontal/circle_empty"; parts { part { name:"bg"; type: SPACER; description { state: "default" 0.0; min: 14 102; } } part { name:"top_padding"; type: SPACER; description { state: "default" 0.0; align: 0.5 0.0; min: 14 88; max: 14 88; } } part { name: "elm.swallow.icon"; type: SWALLOW; mouse_events: 0; clip_to : "icon_clip"; description { state: "default" 0.0; align: 0.5 0.5; min: INDEX_HORIZONTAL_DOT_SIZE; max: INDEX_HORIZONTAL_DOT_SIZE; fixed: 1 1; rel1 { to: "top_padding"; relative: 0.5 1.0; } rel2 { to: "top_padding"; relative: 0.5 1.0; } } } part { name: "icon_clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 130; rel1.to: "elm.swallow.icon"; rel2.to: "elm.swallow.icon"; } description { state: "active" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } } programs { program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; transition: SIN_FAC 0.25 1.7; target: "icon_clip"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; transition: SIN_FAC 0.25 1.7; target: "icon_clip"; } } } #define INDEX_CIRCLE_EMPTY_ITEM( TYPE, ORD, Y, W) \ group { name: "elm/index/item/"#TYPE"_"#ORD"/circle_empty"; \ inherit: "elm/index/item/even_1/circle_empty"; \ parts { \ part { name:"bg"; \ type: SPACER; \ description { state: "default" 0.0; \ min: W INDEX_CIRCLE_ITEM_HEIGHT; \ } \ } \ part { name:"top_padding"; \ type: SPACER; \ description { state: "default" 0.0; \ align: 0.5 0.0; \ min: W Y; \ max: W Y; \ } \ } \ } \ } \ INDEX_CIRCLE_EMPTY_ITEM(even, 2, 70, 14) INDEX_CIRCLE_EMPTY_ITEM(even, 3, 55, 16) INDEX_CIRCLE_EMPTY_ITEM(even, 4, 42, 18) INDEX_CIRCLE_EMPTY_ITEM(even, 5, 31, 19) INDEX_CIRCLE_EMPTY_ITEM(even, 6, 23, 20) INDEX_CIRCLE_EMPTY_ITEM(even, 7, 17, 21) INDEX_CIRCLE_EMPTY_ITEM(even, 8, 14, 21) INDEX_CIRCLE_EMPTY_ITEM(even, 9, 14, 21) INDEX_CIRCLE_EMPTY_ITEM(even, 10, 17, 21) INDEX_CIRCLE_EMPTY_ITEM(even, 11, 23, 20) INDEX_CIRCLE_EMPTY_ITEM(even, 12, 31, 19) INDEX_CIRCLE_EMPTY_ITEM(even, 13, 42, 18) INDEX_CIRCLE_EMPTY_ITEM(even, 14, 55, 16) INDEX_CIRCLE_EMPTY_ITEM(even, 15, 70, 14) INDEX_CIRCLE_EMPTY_ITEM(even, 16, 88, 14) INDEX_CIRCLE_EMPTY_ITEM(odd, 1, 87, 15) INDEX_CIRCLE_EMPTY_ITEM(odd, 2, 67, 15) INDEX_CIRCLE_EMPTY_ITEM(odd, 3, 52, 16) INDEX_CIRCLE_EMPTY_ITEM(odd, 4, 38, 19) INDEX_CIRCLE_EMPTY_ITEM(odd, 5, 27, 21) INDEX_CIRCLE_EMPTY_ITEM(odd, 6, 20, 22) INDEX_CIRCLE_EMPTY_ITEM(odd, 7, 15, 22) INDEX_CIRCLE_EMPTY_ITEM(odd, 8, 14, 22) INDEX_CIRCLE_EMPTY_ITEM(odd, 9, 15, 22) INDEX_CIRCLE_EMPTY_ITEM(odd, 10, 20, 22) INDEX_CIRCLE_EMPTY_ITEM(odd, 11, 27, 21) INDEX_CIRCLE_EMPTY_ITEM(odd, 12, 38, 19) INDEX_CIRCLE_EMPTY_ITEM(odd, 13, 52, 16) INDEX_CIRCLE_EMPTY_ITEM(odd, 14, 67, 15) INDEX_CIRCLE_EMPTY_ITEM(odd, 15, 87, 15)