/* TODO: replicate diagonal swallow slots to the other hover styles */ group { name: "elm/hover/base/default"; data.item: "dismiss" "on"; script { public on_dismiss = 0; } parts { part { name: "elm.swallow.offset"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; } } part { name: "elm.swallow.size"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; rel1.to: "elm.swallow.offset"; rel1.relative: 1.0 1.0; rel2.to: "elm.swallow.offset"; rel2.relative: 1.0 1.0; } } part { name: "base"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 64; } } part { name: "box"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 0; rel1.to: "elm.swallow.size"; rel1.offset: -2 -2; rel2.to: "elm.swallow.size"; rel2.offset: 1 1; } } part { name: "elm.swallow.slot.left"; type: SWALLOW; description { state: "default" 0.0; align: 1.0 0.5; fixed: 1 0; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 0.0; rel1.offset: -1 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 0.0 1.0; rel2.offset: -1 -1; } } part { name: "elm.swallow.slot.top-left"; type: SWALLOW; description { state: "default" 0.0; align: 1.0 1.0; fixed: 1 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 0.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 0.0 0.0; rel2.offset: -1 -1; } } part { name: "elm.swallow.slot.top"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 1.0; fixed: 0 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 0.0; rel1.offset: 0 -1; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 0.0; rel2.offset: -1 -1; } } part { name: "elm.swallow.slot.top-right"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 1.0; fixed: 1 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 0.0; rel2.offset: -1 -1; } } part { name: "elm.swallow.slot.right"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; fixed: 1 0; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 1.0; rel2.offset: 0 -1; } } part { name: "elm.swallow.slot.bottom-right"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 1.0 1.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 1.0; rel2.offset: -1 -1; } } part { name: "elm.swallow.slot.bottom"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 0.0; fixed: 0 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 1.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 1.0; rel2.offset: -1 0; } } part { name: "elm.swallow.slot.bottom-left"; type: SWALLOW; description { state: "default" 0.0; align: 1.0 0.0; fixed: 1 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 1.0; rel1.offset: 0 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 0.0 1.0; rel2.offset: -1 0; } } part { name: "elm.swallow.slot.middle"; type: SWALLOW; description { state: "default" 0.0; rel.to: "elm.swallow.size"; } } } programs { program { name: "end"; signal: "mouse,up,*"; source: "base"; script { if (get_int(on_dismiss) == 0) { emit("elm,action,dismiss", "elm"); set_int(on_dismiss, 1); } } } program { name: "hide"; signal: "elm,action,hide"; source: "elm"; after: "hidefinished"; } program { name: "hidefinished"; script { set_int(on_dismiss, 0); emit("elm,action,hide,finished", "elm"); } } } } group { name: "elm/hover/base/popout"; data.item: "dismiss" "on"; images.image: "shad_angle_l.png" COMP; images.image: "shad_angle_r.png" COMP; images.image: "shad_angle_t.png" COMP; images.image: "shad_angle_b.png" COMP; script { public on_dismiss = 0; } parts { part { name: "elm.swallow.offset"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; rel2.relative: 0.0 0.0; } } part { name: "elm.swallow.size"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; rel.to: "elm.swallow.offset"; rel1.relative: 1.0 1.0; } } part { name: "base"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 64; } } part { name: "leftclip"; type: RECT; description { state: "default" 0.0; rel2.to_x: "pop"; rel2.relative: 0.0 1.0; rel2.offset: 1 -1; } } part { name: "shad_left"; nomouse; scale: 1; clip_to: "leftclip"; description { state: "default" 0.0; visible: 0; rel.to: "left"; WIN_SHADOW_ANGLE_SMALL("shad_angle_l.png"); } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "shad_right"; nomouse; scale: 1; clip_to: "rightclip"; description { state: "default" 0.0; visible: 0; rel.to: "right"; WIN_SHADOW_ANGLE_SMALL("shad_angle_r.png"); } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "shad_top"; nomouse; scale: 1; clip_to: "topclip"; description { state: "default" 0.0; visible: 0; rel.to: "top"; WIN_SHADOW_ANGLE_SMALL("shad_angle_t.png"); } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "shad_bottom"; nomouse; scale: 1; clip_to: "bottomclip"; description { state: "default" 0.0; visible: 0; rel.to: "bottom"; WIN_SHADOW_ANGLE_SMALL("shad_angle_b.png"); } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "left"; type: RECT; clip_to: "leftclip"; description { state: "default" 0.0; visible: 0; rel.to: "elm.swallow.slot.left"; rel1.offset: -6 -6; rel2.offset: -1 5; color: 64 64 64 255; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "elm.swallow.slot.left"; type: SWALLOW; clip_to: "leftclip"; description { state: "default" 0.0; fixed: 1 0; align: 0.0 0.5; rel.to: "elm.swallow.slot.middle"; rel1.offset: -1 0; rel2.relative: 0.0 1.0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: -7 0; rel2.offset: -7 -1; align: 1.0 0.5; } } part { name: "rightclip"; type: RECT; description { state: "default" 0.0; rel1.to_x: "pop"; rel1.relative: 1.0 0.0; rel1.offset: -2 0; } } part { name: "right"; type: RECT; clip_to: "rightclip"; description { state: "default" 0.0; visible: 0; rel.to: "elm.swallow.slot.right"; rel1.offset: 0 -6; rel2.offset: 5 5; color: 64 64 64 255; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "elm.swallow.slot.right"; type: SWALLOW; clip_to: "rightclip"; description { state: "default" 0.0; fixed: 1 0; align: 1.0 0.5; rel.to: "elm.swallow.slot.middle"; rel1.relative: 1.0 0.0; rel2.offset: 0 -1; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: 6 0; rel2.offset: 6 -1; align: 0.0 0.5; } } part { name: "topclip"; type: RECT; description { state: "default" 0.0; rel2.to_y: "pop"; rel2.relative: 1.0 0.0; rel2.offset: -1 1; } } part { name: "top"; type: RECT; clip_to: "topclip"; description { state: "default" 0.0; visible: 0; rel.to: "elm.swallow.slot.top"; rel1.offset: -6 -6; rel2.offset: 5 -1; color: 64 64 64 255; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "elm.swallow.slot.top"; type: SWALLOW; clip_to: "topclip"; description { state: "default" 0.0; fixed: 0 1; align: 0.5 0.0; rel.to: "elm.swallow.slot.middle"; rel1.offset: 0 -1; rel2.relative: 1.0 0.0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: 0 -7; rel2.offset: -1 -7; align: 0.5 1.0; } } part { name: "bottomclip"; type: RECT; description { state: "default" 0.0; rel1.to_y: "pop"; rel1.relative: 0.0 1.0; rel1.offset: -1 -2; } } part { name: "bottom"; type: RECT; clip_to: "bottomclip"; description { state: "default" 0.0; visible: 0; rel.to: "elm.swallow.slot.bottom"; rel1.offset: -6 0; rel2.offset: 5 5; color: 64 64 64 255; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "elm.swallow.slot.bottom"; type: SWALLOW; clip_to: "bottomclip"; description { state: "default" 0.0; fixed: 0 1; align: 0.5 1.0; rel.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 1.0; rel2.offset: -1 0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: 0 6; rel2.offset: -1 6; align: 0.5 0.0; } } part { name: "pop"; type: RECT; description { state: "default" 0.0; rel.to: "elm.swallow.slot.middle"; rel1.offset: -6 -6; rel2.offset: 5 5; color: 64 64 64 255; } } part { name: "elm.swallow.slot.middle"; type: SWALLOW; description { state: "default" 0.0; rel.to: "elm.swallow.size"; } } } programs { program { name: "end"; signal: "mouse,up,*"; source: "base"; script { if (get_int(on_dismiss) == 0) { emit("elm,action,dismiss", "elm"); set_int(on_dismiss, 1); } } } program { name: "show"; signal: "elm,action,show"; source: "elm"; action: STATE_SET "visible" 0.0; target: "base"; } program { name: "hide"; signal: "elm,action,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "base"; after: "hidefinished"; } program { name: "hidefinished"; script { set_int(on_dismiss, 0); emit("elm,action,hide,finished", "elm"); } } program { name: "leftshow"; signal: "elm,action,slot,left,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "left"; target: "shad_left"; target: "elm.swallow.slot.left"; } program { name: "lefthide"; signal: "elm,action,slot,left,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "left"; target: "shad_left"; target: "elm.swallow.slot.left"; } program { name: "rightshow"; signal: "elm,action,slot,right,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "right"; target: "shad_right"; target: "elm.swallow.slot.right"; } program { name: "righthide"; signal: "elm,action,slot,right,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "right"; target: "shad_right"; target: "elm.swallow.slot.right"; } program { name: "topshow"; signal: "elm,action,slot,top,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "top"; target: "shad_top"; target: "elm.swallow.slot.top"; } program { name: "tophide"; signal: "elm,action,slot,top,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "top"; target: "shad_top"; target: "elm.swallow.slot.top"; } program { name: "bottomshow"; signal: "elm,action,slot,bottom,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "bottom"; target: "shad_bottom"; target: "elm.swallow.slot.bottom"; } program { name: "bottomhide"; signal: "elm,action,slot,bottom,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "bottom"; target: "shad_bottom"; target: "elm.swallow.slot.bottom"; } } } group { name: "elm/hover/base/hoversel_vertical/default"; alias: "elm/hover/base/hoversel_vertical/entry"; alias: "elm/hover/base/combobox_vertical/entry"; alias: "elm/hover/base/combobox_vertical/default"; images.image: "shad_angle_t.png" COMP; images.image: "shad_angle_b.png" COMP; data.item: "dismiss" "on"; // max_size limits the maximum size of expanded hoversel // when it's scrollable. //data.item: "max_size" "60"; script { public visible = 0; public right = 0; public on_dismiss = 0; public topshow2() { if (get_int(right) == 0) run_program(PROGRAM:"topshow_default"); else run_program(PROGRAM:"topshow_right"); set_int(visible, 1); set_int(on_dismiss, 0); } public bottomshow2() { if (get_int(right) == 0) run_program(PROGRAM:"bottomshow_default"); else run_program(PROGRAM:"bottomshow_right"); set_int(visible, 1); set_int(on_dismiss, 0); } } parts { part { name: "elm.swallow.offset"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; rel2.relative: 0.0 0.0; } } part { name: "elm.swallow.size"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; rel.to: "elm.swallow.offset"; rel1.relative: 1.0 1.0; } } part { name: "base"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 0; } } part { name: "shad"; nomouse; scale: 1; description { state: "default" 0.0; rel.to: "button_image"; WIN_SHADOW_ANGLE_SMALL("shad_angle_t.png"); } description { state: "bottom" 0.0; rel.to: "button_image"; WIN_SHADOW_ANGLE_SMALL("shad_angle_b.png"); } } part { name: "button_image"; type: RECT; description { state: "default" 0.0; rel1.to_x: "limit0"; rel2.to_x: "limit1"; rel1.to_y: "elm.swallow.slot.top"; rel2.to_y: "elm.swallow.slot.middle"; rel2.relative: 1.0 0.0; rel1.offset: 1 0; rel2.offset: -2 1; color: 80 80 80 255; } description { state: "bottom" 0.0; inherit: "default" 0.0; rel1.to_y: "elm.swallow.slot.middle"; rel1.relative: 0.0 1.0; rel2.to_y: "elm.swallow.slot.bottom"; rel2.relative: 1.0 1.0; rel1.offset: 1 -2; rel2.offset: -2 -1; } } part { name: "limit0"; type: SPACER; description { state: "default" 0.0; rel1.to_x: "elm.swallow.slot.top"; rel1.offset: 1 0; rel2.to_x: "elm.swallow.slot.middle"; rel2.offset: 0 0; rel2.relative: 0.0 1.0; align: 0.0 0.5; min: 1 1; max: 1 99999; } description { state: "bottom" 0.0; inherit: "default" 0.0; rel1.to_x: "elm.swallow.slot.bottom"; } } part { name: "limit1"; type: SPACER; description { state: "default" 0.0; rel1.to_x: "elm.swallow.slot.middle"; rel1.offset: -1 0; rel1.relative: 1.0 0.0; rel2.to_x: "elm.swallow.slot.top"; rel2.offset: -2 0; align: 1.0 0.5; min: 1 1; max: 1 99999; } description { state: "bottom" 0.0; inherit: "default" 0.0; rel2.to_x: "elm.swallow.slot.bottom"; } } part { name: "select_line"; type: RECT; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; align: 1.0 0.5; min: 5 0; rel.to: "button_image"; rel1.relative: 1.0 0.0; color: 51 153 255 255; } } part { name: "topclip"; type: RECT; description { state: "default" 0.0; rel2.to_y: "button_image"; rel2.offset: -1 -6; } } part { name: "elm.swallow.slot.top"; type: SWALLOW; clip_to: "topclip"; description { state: "default" 0.0; visible: 1; align: 0.0 0.0; fixed: 0 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 0.0; rel1.offset: 0 -1; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 0.0; /* set negative offset along x axis not to make "select_line" part exceed parent's width */ rel2.offset: -9 -1; } description { state: "visible" 0.0; inherit: "default" 0.0; align: 0.0 1.0; } description { state: "right" 0.0; inherit: "default" 0.0; align: 1.0 0.0; rel2.offset: -9 -1; } description { state: "right_visible" 0.0; inherit: "default" 0.0; align: 1.0 1.0; rel2.offset: -9 -1; } } part { name: "bottomclip"; type: RECT; description { state: "default" 0.0; rel1.to_y: "button_image"; rel1.offset: 0 3; } } part { name: "elm.swallow.slot.bottom"; type: SWALLOW; clip_to: "bottomclip"; description { state: "default" 0.0; align: 0.0 1.0; fixed: 0 1; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 1.0; rel1.offset: 1 0; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 1.0 1.0; /* set negative offset along x axis not to make "select_line" part exceed parent's width */ rel2.offset: -9 -1; } description { state: "visible" 0.0; inherit: "default" 0.0; align: 0.0 0.0; } description { state: "right" 0.0; inherit: "default" 0.0; align: 1.0 1.0; rel2.offset: -9 -1; } description { state: "right_visible" 0.0; inherit: "default" 0.0; align: 1.0 0.0; rel2.offset: -9 -1; } } part { name: "elm.swallow.slot.middle"; type: SWALLOW; description { state: "default" 0.0; rel.to: "elm.swallow.size"; } } } programs { program { name: "end"; signal: "mouse,up,*"; source: "base"; script { if (get_int(on_dismiss) == 0) { emit("elm,action,dismiss", "elm"); set_int(on_dismiss, 1); } } } program { name: "show"; signal: "elm,action,show"; source: "elm"; action: STATE_SET "visible" 0.0; target: "base"; } program { name: "hide"; signal: "elm,action,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3; target: "base"; after: "hidefinished"; } program { name: "hide_no_animate"; signal: "elm,action,hide,no_animate"; source: "elm"; action: STATE_SET "default" 0.0; target: "base"; after: "hidefinished"; } program { name: "hidefinished"; script { set_int(on_dismiss, 0); emit("elm,action,hide,finished", "elm"); } } program { name: "topshow"; signal: "elm,action,slot,top,show"; source: "elm"; script { set_state(PART:"limit0", "default", 0.0); set_state(PART:"limit1", "default", 0.0); set_state(PART:"button_image", "default", 0.0); set_state(PART:"shad", "default", 0.0); topshow2(); } } program { name: "topshow_default"; action: STATE_SET "visible" 0.0; target: "elm.swallow.slot.top"; transition: DECELERATE 0.2; } program { name: "topshow_right"; action: STATE_SET "right_visible" 0.0; target: "elm.swallow.slot.top"; transition: DECELERATE 0.2; } program { name: "tophide"; signal: "elm,action,slot,top,hide"; source: "elm"; script { if (get_int(right) == 0) run_program(PROGRAM:"tophide_default"); else run_program(PROGRAM:"tophide_right"); set_int(visible, 0); } } program { name: "tophide_default"; action: STATE_SET "default" 0.0; target: "elm.swallow.slot.top"; transition: DECELERATE 0.2; } program { name: "tophide_right"; action: STATE_SET "right" 0.0; target: "elm.swallow.slot.top"; transition: DECELERATE 0.2; } program { name: "bottomshow"; signal: "elm,action,slot,bottom,show"; source: "elm"; script { set_state(PART:"limit0", "bottom", 0.0); set_state(PART:"limit1", "bottom", 0.0); set_state(PART:"button_image", "bottom", 0.0); set_state(PART:"shad", "bottom", 0.0); bottomshow2(); } } program { name: "bottomshow_default"; action: STATE_SET "visible" 0.0; target: "elm.swallow.slot.bottom"; transition: DECELERATE 0.2; } program { name: "bottomshow_right"; action: STATE_SET "right_visible" 0.0; target: "elm.swallow.slot.bottom"; transition: DECELERATE 0.2; } program { name: "bottomhide"; signal: "elm,action,slot,bottom,hide"; source: "elm"; script { if (get_int(right) == 0) { run_program(PROGRAM:"bottomhide_default"); } else { run_program(PROGRAM:"bottomhide_right"); } set_int(visible, 0); } } program { name: "bottomhide_default"; action: STATE_SET "default" 0.0; target: "elm.swallow.slot.bottom"; transition: DECELERATE 0.2; } program { name: "bottomhide_right"; action: STATE_SET "right" 0.0; target: "elm.swallow.slot.bottom"; transition: DECELERATE 0.2; } program { name: "align_right"; signal: "elm,state,align,right"; source: "elm"; script { set_int(right, 1); if (get_int(visible) == 0) { set_state(PART:"elm.swallow.slot.top", "right", 0.0); set_state(PART:"elm.swallow.slot.bottom", "right", 0.0); } else { set_state(PART:"elm.swallow.slot.top", "right_visible", 0.0); set_state(PART:"elm.swallow.slot.bottom", "right_visible", 0.0); } } } program { name: "align_default"; signal: "elm,state,align,default"; source: "elm"; script { set_int(right, 0); if (get_int(visible) == 0) { set_state(PART:"elm.swallow.slot.top", "default", 0.0); set_state(PART:"elm.swallow.slot.bottom", "default", 0.0); } else { set_state(PART:"elm.swallow.slot.top", "visible", 0.0); set_state(PART:"elm.swallow.slot.bottom", "visible", 0.0); } } } } } group { name: "elm/hover/base/hoversel_horizontal/default"; alias: "elm/hover/base/hoversel_horizontal/entry"; data.item: "dismiss" "on"; images.image: "shad_angle_l.png" COMP; images.image: "shad_angle_r.png" COMP; script { public on_dismiss = 0; } // max_size limits the maximum size of expanded hoversel // when it's scrollable. //data.item: "max_size" "120"; parts { part { name: "elm.swallow.offset"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; } } part { name: "elm.swallow.size"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; rel1.to: "elm.swallow.offset"; rel1.relative: 1.0 1.0; rel2.to: "elm.swallow.offset"; rel2.relative: 1.0 1.0; } } part { name: "base"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 0; } } part { name: "shad"; nomouse; scale: 1; description { state: "default" 0.0; rel.to: "button_image"; WIN_SHADOW_ANGLE_SMALL("shad_angle_l.png"); } description { state: "right" 0.0; rel.to: "button_image"; WIN_SHADOW_ANGLE_SMALL("shad_angle_r.png"); } } part { name: "button_image"; type: RECT; nomouse; description { state: "default" 0.0; rel1.to_x: "elm.swallow.slot.left"; rel1.to_y: "elm.swallow.slot.left"; rel2.to_x: "elm.swallow.slot.middle"; rel2.to_y: "elm.swallow.slot.left"; rel2.relative: 0.0 1.0; rel1.offset: -4 0; rel2.offset: 1 -1; color: 80 80 80 255; } description { state: "right" 0.0; inherit: "default" 0.0; rel1.to_x: "elm.swallow.slot.middle"; rel1.to_y: "elm.swallow.slot.right"; rel2.to_x: "elm.swallow.slot.right"; rel2.to_y: "elm.swallow.slot.right"; rel1.relative: 1.0 0.0; rel2.relative: 1.0 1.0; rel1.offset: -2 0; rel2.offset: 3 -1; } } part { name: "leftclip"; type: RECT; description { state: "default" 0.0; rel2.to_x: "elm.swallow.slot.middle"; rel2.relative: 0.0 1.0; } } part { name: "elm.swallow.slot.left"; type: SWALLOW; clip_to: "leftclip"; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 0; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 0.0 0.0; rel1.offset: -1 2; rel2.to: "elm.swallow.slot.middle"; rel2.relative: 0.0 1.0; rel2.offset: -1 -3; } description { state: "visible" 0.0; inherit: "default" 0.0; align: 1.0 0.0; } } part { name: "rightclip"; type: RECT; description { state: "default" 0.0; rel1.to_x: "elm.swallow.slot.middle"; rel1.relative: 1.0 0.0; } } part { name: "elm.swallow.slot.right"; type: SWALLOW; clip_to: "rightclip"; description { state: "default" 0.0; align: 1.0 0.0; fixed: 1 0; rel1.to: "elm.swallow.slot.middle"; rel1.relative: 1.0 0.0; rel1.offset: -2 2; rel2.to: "elm.swallow.slot.middle"; rel2.offset: -1 -3; } description { state: "visible" 0.0; inherit: "default" 0.0; align: 0.0 0.0; } } part { name: "elm.swallow.slot.middle"; type: SWALLOW; description { state: "default" 0.0; rel.to: "elm.swallow.size"; } } } programs { program { name: "end"; signal: "mouse,up,*"; source: "base"; script { if (get_int(on_dismiss) == 0) { emit("elm,action,dismiss", "elm"); set_int(on_dismiss, 1); } } } program { name: "show"; signal: "elm,action,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "base"; } program { name: "hide"; signal: "elm,action,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "base"; after: "hidefinished"; } program { name: "hidefinished"; script { set_int(on_dismiss, 0); emit("elm,action,hide,finished", "elm"); } } program { name: "leftshow"; signal: "elm,action,slot,left,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "elm.swallow.slot.left"; } program { name: "leftshow3"; signal: "elm,action,slot,left,show"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "button_image"; target: "shad"; } program { name: "lefthide"; signal: "elm,action,slot,left,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "elm.swallow.slot.left"; } program { name: "rightshow"; signal: "elm,action,slot,right,show"; source: "elm"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "elm.swallow.slot.right"; } program { name: "rightshow3"; signal: "elm,action,slot,right,show"; source: "elm"; action: STATE_SET "right" 0.0; transition: DECELERATE 0.2; target: "button_image"; target: "shad"; } program { name: "righthide"; signal: "elm,action,slot,right,hide"; source: "elm"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "elm.swallow.slot.right"; } } }