group { name: "elm/spinner/base/default"; images { image: "shelf_inset.png" COMP; image: "bt_base1.png" COMP; image: "bt_hilight.png" COMP; image: "bt_shine.png" COMP; image: "bt_glow.png" COMP; image: "bt_dis_base.png" COMP; image: "bt_dis_hilight.png" COMP; image: "sp_bt_l.png" COMP; image: "sp_bt_r.png" COMP; } parts { part { name: "bg"; type: RECT; description { state: "default" 0.0; min: 0 30; rel1.offset: 1 1; rel2.offset: -2 -2; color: 255 255 255 0; } } part { name: "conf_over"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "shelf_inset.png"; border: 7 7 7 7; middle: 0; } fill.smooth : 0; } } part { name: "left_bt"; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "bg"; offset: 3 3; } rel2 { to: "bg"; offset: -4 -4; } align: 0.0 0.5; min: 24 24; aspect: 1.0 1.0; aspect_preference: VERTICAL; image { normal: "bt_base1.png"; border: 6 6 6 6; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "left_over1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "left_bt"; rel2 { to: "left_bt"; relative: 1.0 0.5; } image { normal: "bt_hilight.png"; border: 7 7 7 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } } part { name: "left_over2"; mouse_events: 1; repeat_events: 1; ignore_flags: ON_HOLD; description { state: "default" 0.0; rel1.to: "left_bt"; rel2.to: "left_bt"; image { normal: "bt_shine.png"; border: 7 7 7 7; } } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "left_over3"; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1.to: "left_bt"; rel2.to: "left_bt"; image { normal: "bt_glow.png"; border: 12 12 12 12; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "right_bt"; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "bg"; offset: -26 3; } rel2 { to: "bg"; offset: -4 -4; } align: 1.0 0.5; min: 24 24; aspect: 1.0 1.0; aspect_preference: VERTICAL; image { normal: "bt_base1.png"; border: 5 5 4 12; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "right_over1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "right_bt"; rel2 { to: "right_bt"; relative: 1.0 0.5; } image { normal: "bt_hilight.png"; border: 7 7 7 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } } part { name: "right_over2"; mouse_events: 1; repeat_events: 1; ignore_flags: ON_HOLD; description { state: "default" 0.0; rel1.to: "right_bt"; rel2.to: "right_bt"; image { normal: "bt_shine.png"; border: 7 7 7 7; } } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "right_over3"; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1.to: "right_bt"; rel2.to: "right_bt"; image { normal: "bt_glow.png"; border: 12 12 12 12; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "left_bt_icon"; repeat_events: 1; description { state: "default" 0.0; rel1.to: "left_bt"; rel1.offset: 4 4; rel2.to: "left_bt"; rel2.offset: -5 -5; align: 0.5 0.5; min: 16 16; aspect: 1.0 1.0; aspect_preference: BOTH; image.normal: "sp_bt_l.png"; } description { state: "rtl" 0.0; inherit: "default" 0.0; image.normal: "sp_bt_r.png"; } } part { name: "right_bt_icon"; repeat_events: 1; description { state: "default" 0.0; rel1.to: "right_bt"; rel1.offset: 4 4; rel2.to: "right_bt"; rel2.offset: -5 -5; align: 0.5 0.5; min: 16 16; aspect: 1.0 1.0; aspect_preference: BOTH; image.normal: "sp_bt_r.png"; } description { state: "rtl" 0.0; inherit: "default" 0.0; image.normal: "sp_bt_l.png"; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 1; align: 0.0 0.5; rel1 { relative: 1.0 0.0; offset: 3 2; to_x: "left_bt"; to_y: "bg"; } rel2 { relative: 0.0 1.0; offset: -3 -2; to_x: "right_bt"; to_y: "bg"; } color: 0 0 0 255; text { font: "Sans,Edje-Vera"; size: 10; min: 1 1; align: 0.5 0.5; } } description { state: "active" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "disabled_active" 0.0; inherit: "default" 0.0; color: 0 0 0 128; color3: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 0 0 0 128; color3: 0 0 0 0; } } part { name: "elm.dragable.slider"; type: RECT; mouse_events: 0; scale: 1; dragable { x: 1 1 0; y: 0 0 0; } description { state: "default" 0.0; rel1.to: "bg"; rel2.to: "bg"; fixed: 1 1; color: 0 0 0 0; } } part { name: "button_events"; type: RECT; dragable { events: "elm.dragable.slider"; } mouse_events: 1; description { state: "default" 0.0; rel1.to: "elm.text"; rel2.to: "elm.text"; color: 0 0 0 0; } } part { name: "elm.swallow.entry"; type: SWALLOW; description { state: "default" 0.0; visible: 0; align: 0.5 0.5; rel1 { relative: 1.0 0.5; offset: 3 2; to_x: "left_bt"; to_y: "bg"; } rel2 { relative: 0.0 0.5; offset: -3 -2; to_x: "right_bt"; to_y: "bg"; } fixed: 1 1; color: 0 0 0 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "disabled_active" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "disabler"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "text_show"; signal: "elm,state,text,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.text"; } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; } program { name: "dec"; signal: "mouse,down,1"; source: "left_bt"; action: SIGNAL_EMIT "elm,action,decrement,start" ""; } program { name: "dec2"; signal: "mouse,up,1"; source: "left_bt"; action: SIGNAL_EMIT "elm,action,decrement,stop" ""; } program { name: "inc"; signal: "mouse,down,1"; source: "right_bt"; action: SIGNAL_EMIT "elm,action,increment,start" ""; } program { name: "inc2"; signal: "mouse,up,1"; source: "right_bt"; action: SIGNAL_EMIT "elm,action,increment,stop" ""; } program { name: "left_bt_click"; signal: "mouse,down,1"; source: "left_over2"; action: STATE_SET "clicked" 0.0; target: "left_bt"; } program { name: "left_bt_unclick"; signal: "mouse,up,1"; source: "left_over2"; action: STATE_SET "default" 0.0; target: "left_bt"; } program { name: "left_bt_click2"; signal: "mouse,down,1"; source: "left_over3"; action: STATE_SET "clicked" 0.0; target: "left_over3"; } program { name: "left_bt_unclick2"; signal: "mouse,up,1"; source: "left_over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "left_over3"; } program { name: "left_bt_unclick3"; signal: "mouse,up,1"; source: "left_over2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { name: "left_bt_pressed_anim"; signal: "elm,left,anim,activate"; source: "elm"; action: STATE_SET "clicked" 0.0; target: "left_bt"; target: "left_over3"; after: "left_bt_unpressed_anim"; } program { name: "left_bt_unpressed_anim"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "left_bt"; target: "left_over3"; } program { name: "right_bt_click"; signal: "mouse,down,1"; source: "right_over2"; action: STATE_SET "clicked" 0.0; target: "right_bt"; } program { name: "right_bt_unclick"; signal: "mouse,up,1"; source: "right_over2"; action: STATE_SET "default" 0.0; target: "right_bt"; } program { name: "right_bt_click2"; signal: "mouse,down,1"; source: "right_over3"; action: STATE_SET "clicked" 0.0; target: "right_over3"; } program { name: "right_bt_unclick2"; signal: "mouse,up,1"; source: "right_over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "right_over3"; } program { name: "right_bt_unclick3"; signal: "mouse,up,1"; source: "right_over2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { name: "right_bt_pressed_anim"; signal: "elm,right,anim,activate"; source: "elm"; action: STATE_SET "clicked" 0.0; target: "right_bt"; target: "right_over3"; after: "right_bt_unpressed_anim"; } program { name: "right_bt_unpressed_anim"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "right_bt"; target: "right_over3"; } program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "left_bt"; target: "left_over1"; target: "left_over2"; target: "right_bt"; target: "right_over1"; target: "right_over2"; target: "disabler"; after: "disable_text"; } program { name: "disable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "active")) set_state(PART:"elm.text", "disabled_active", 0.0); else set_state(PART:"elm.text", "disabled", 0.0); get_state(PART:"elm.swallow.entry", st, 30, vl); if (!strcmp(st, "active")) set_state(PART:"elm.swallow.entry", "disabled_active", 0.0); else set_state(PART:"elm.swallow.entry", "disabled", 0.0); } } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "left_bt"; target: "left_over1"; target: "left_over2"; target: "right_bt"; target: "right_over1"; target: "right_over2"; target: "disabler"; after: "enable_text"; } program { name: "enable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "disabled_active")) set_state(PART:"elm.text", "active", 0.0); else set_state(PART:"elm.text", "default", 0.0); get_state(PART:"elm.swallow.entry", st, 30, vl); if (!strcmp(st, "disabled_active")) set_state(PART:"elm.swallow.entry", "active", 0.0); else set_state(PART:"elm.swallow.entry", "default", 0.0); } } program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; target: "elm.text"; target: "elm.swallow.entry"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; target: "elm.swallow.entry"; } program { name: "toggle_text"; signal: "mouse,up,1"; source: "button_events"; action: SIGNAL_EMIT "elm,action,entry,toggle" ""; } program { name: "to_rtl"; signal: "edje,state,rtl"; source: "edje"; action: STATE_SET "rtl" 0.0; target: "right_bt_icon"; target: "left_bt_icon"; } program { name: "to_ltr"; signal: "edje,state,ltr"; source: "edje"; action: STATE_SET "default" 0.0; target: "right_bt_icon"; target: "left_bt_icon"; } } } /////////////////////////////////////////////////////////////////////////////// group { name: "elm/spinner/base/vertical"; images { image: "shelf_inset.png" COMP; image: "bt_hilight.png" COMP; image: "bt_shine.png" COMP; image: "bt_glow.png" COMP; image: "bt_dis_base.png" COMP; image: "bt_dis_hilight.png" COMP; image: "up.png" COMP; image: "down.png" COMP; image: "bt_spinner_up.png" COMP; image: "bt_spinner_down.png" COMP; image: "bt_spinner_hilight.png" COMP; } parts { part { name: "bg"; type: RECT; description { state: "default" 0.0; min: 0 30; rel1.offset: 1 1; rel2.offset: -2 -2; color: 255 255 255 0; } } part { name: "conf_over"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "bg"; relative: 0.0 0.0; } rel2 { to: "bg"; } image { normal: "shelf_inset.png"; border: 7 7 7 7; middle: 0; } fill.smooth : 0; } } part { name: "down_bt"; mouse_events: 1; description { state: "default" 0.0; fixed: 1 1; rel1 { to: "up_bt"; relative: 0 1; offset: 0 1; } rel2 { to_y: "bg"; to_x: "up_bt"; relative: 1 1; offset: -1 -4; } align: 1.0 0.5; min: 24 16; image { normal: "bt_spinner_down.png"; border: 6 6 6 6; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_spinner_down.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "down_over3"; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1.to: "down_bt"; rel2.to: "down_bt"; image { normal: "bt_glow.png"; border: 12 12 12 12; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "up_bt"; mouse_events: 1; description { state: "default" 0.0; fixed: 1 0; rel1 { to: "bg"; relative: 0 0; offset: 0 2; } rel2 { to: "bg"; relative: 1 0.5; offset: -3 0; } align: 1.0 0.5; min: 24 16; aspect: 1.5 1.0; aspect_preference: BOTH; image { normal: "bt_spinner_up.png"; border: 6 6 6 6; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_spinner_up.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "up_over1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "up_bt"; rel2 { to: "up_bt"; relative: 1.0 0.5; } image { normal: "bt_spinner_hilight.png"; border: 7 7 7 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } } part { name: "up_over3"; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1.to: "up_bt"; rel2.to: "up_bt"; image { normal: "bt_glow.png"; border: 12 12 12 12; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "down_bt_icon"; repeat_events: 1; description { state: "default" 0.0; rel1.to: "down_bt"; rel1.offset: 5 3; rel2.to: "down_bt"; rel2.offset: -6 -3; align: 0.5 0.5; image.normal: "down.png"; } } part { name: "up_bt_icon"; repeat_events: 1; description { state: "default" 0.0; rel1.to: "up_bt"; rel1.offset: 5 3; rel2.to: "up_bt"; rel2.offset: -6 -3; align: 0.5 0.5; image.normal: "up.png"; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 1; align: 0.0 0.5; rel1 { relative: 0.0 0.0; offset: 3 2; to_x: "bg"; to_y: "bg"; } rel2 { relative: 0.0 1.0; offset: -3 -2; to_x: "down_bt"; to_y: "bg"; } color: 0 0 0 255; text { font: "Sans,Edje-Vera"; size: 10; min: 1 1; align: 0.5 0.5; } } description { state: "active" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "disabled_active" 0.0; inherit: "default" 0.0; color: 0 0 0 128; color3: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 0 0 0 128; color3: 0 0 0 0; } } part { name: "elm.dragable.slider"; type: RECT; mouse_events: 0; scale: 1; dragable { x: 1 1 0; y: 0 0 0; } description { state: "default" 0.0; rel1.to: "bg"; rel2.to: "bg"; fixed: 1 1; color: 0 0 0 0; } } part { name: "button_events"; type: RECT; dragable { events: "elm.dragable.slider"; } mouse_events: 1; description { state: "default" 0.0; rel1.to: "elm.text"; rel2.to: "elm.text"; color: 0 0 0 0; } } part { name: "elm.swallow.entry"; type: SWALLOW; description { state: "default" 0.0; visible: 0; align: 0.5 0.5; rel1 { relative: 0.0 0.5; offset: 3 2; to: "bg"; } rel2 { relative: 1.0 0.5; offset: -3 -2; to: "bg"; } fixed: 1 1; color: 0 0 0 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "disabled_active" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "disabler"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "text_show"; signal: "elm,state,text,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.text"; } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; } program { name: "dec"; signal: "mouse,down,1"; source: "down_bt"; action: SIGNAL_EMIT "elm,action,decrement,start" ""; } program { name: "dec2"; signal: "mouse,up,1"; source: "down_bt"; action: SIGNAL_EMIT "elm,action,decrement,stop" ""; } program { name: "inc"; signal: "mouse,down,1"; source: "up_bt"; action: SIGNAL_EMIT "elm,action,increment,start" ""; } program { name: "inc2"; signal: "mouse,up,1"; source: "up_bt"; action: SIGNAL_EMIT "elm,action,increment,stop" ""; } program { name: "down_bt_click2"; signal: "mouse,down,1"; source: "down_over3"; action: STATE_SET "clicked" 0.0; target: "down_over3"; } program { name: "down_bt_unclick2"; signal: "mouse,up,1"; source: "down_over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "down_over3"; } program { name: "up_bt_click2"; signal: "mouse,down,1"; source: "up_over3"; action: STATE_SET "clicked" 0.0; target: "up_over3"; } program { name: "up_bt_unclick2"; signal: "mouse,up,1"; source: "up_over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "up_over3"; } program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "down_bt"; target: "up_bt"; target: "disabler"; after: "disable_text"; } program { name: "disable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "active")) set_state(PART:"elm.text", "disabled_active", 0.0); else set_state(PART:"elm.text", "disabled", 0.0); get_state(PART:"elm.swallow.entry", st, 30, vl); if (!strcmp(st, "active")) set_state(PART:"elm.swallow.entry", "disabled_active", 0.0); else set_state(PART:"elm.swallow.entry", "disabled", 0.0); } } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "down_bt"; target: "up_bt"; target: "disabler"; after: "enable_text"; } program { name: "enable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "disabled_active")) set_state(PART:"elm.text", "active", 0.0); else set_state(PART:"elm.text", "default", 0.0); get_state(PART:"elm.swallow.entry", st, 30, vl); if (!strcmp(st, "disabled_active")) set_state(PART:"elm.swallow.entry", "active", 0.0); else set_state(PART:"elm.swallow.entry", "default", 0.0); } } program { name: "active"; signal: "elm,state,active"; source: "elm"; action: STATE_SET "active" 0.0; target: "elm.text"; target: "elm.swallow.entry"; } program { name: "inactive"; signal: "elm,state,inactive"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; target: "elm.swallow.entry"; } program { name: "toggle_text"; signal: "mouse,up,1"; source: "button_events"; action: SIGNAL_EMIT "elm,action,entry,toggle" ""; } } } ///////////////////////////////////////////////////////////////////////////////