group { name: "elm/hover/base/default"; alias: "elm/hover/base/hoversel_vertical/default"; alias: "elm/hover/base/hoversel_vertical/entry"; data.item: "dismiss" "on"; data.item: "max_size" "480"; nomouse; images { set { name: "core_dropdown_label_bg.#"; image { image: SMALL"images/User_Input_Elements/core_dropdown_label_bg.#.png" COMP; } image { image: MEDIUM"images/User_Input_Elements/core_dropdown_label_bg.#.png" COMP; } } set { name: "core_dropdown_label_bg_stroke.#"; image { image: SMALL"images/Old/core_dropdown_label_bg_stroke.#.png" COMP; } image { image: MEDIUM"images/Old/core_dropdown_label_bg_stroke.#.png" COMP; } } } #define GLIDE_EASE_OUT_SCRIPT(part, state1, state2) \ set_tween_state_anim(part, state1, 0.0, state2, 0.0, CUBIC_BEZIER, pos, 0.25, 0.46, 0.45, 1.0) script { public visible = 0, right = 0; public show(val, Float:pos) { if (val == 0) { if (get_int(right) == 0) GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.top", "default", "visible"); else GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.top", "right", "right_visible"); } else { if (get_int(right) == 0) GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.bottom", "default", "visible"); else GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.bottom", "right", "right_visible"); } } public hide(val, Float:pos) { if (val == 0) { if (get_int(right) == 0) GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.top", "visible", "default"); else GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.top", "right_visible", "right"); } else { if (get_int(right) == 0) GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.bottom", "visible", "default"); else GLIDE_EASE_OUT_SCRIPT(PART:"elm.swallow.slot.bottom", "right_visible", "right"); } } } parts { swallow { "elm.swallow.offset"; scale; desc { "default"; align: 0.0 0.0; rel2.relative: 0.0 0.0; } } swallow { "elm.swallow.size"; scale; desc { "default"; align: 0.0 0.0; rel1 { to: "elm.swallow.offset"; relative: 1.0 1.0; } rel2.to: "elm.swallow.offset"; } } swallow { "elm.swallow.slot.middle"; scale; desc { "default"; rel.to: "elm.swallow.size"; } } rect { "event"; scale; mouse; desc{ "default"; color: 0 0 0 0; } } rect { "clipper"; scale; desc { "default"; color: 255 255 255 0; } desc { "visible"; inherit; color: 255 255 255 255; } } /* top */ group { "bg_top"; scale; clip: "clipper_top"; source: "bg_top_real"; desc { "default"; rel.to_x: "elm.swallow.slot.top"; rel.to_y: "clipper_top"; map.on: 1; map.rotation.z: 180.0; } } swallow { "elm.swallow.slot.top"; scale; mouse; clip: "clipper_top"; desc { "default"; align: 0.0 0.66; rel1.to: "elm.swallow.slot.middle"; rel2 { to: "elm.swallow.slot.middle"; relative: 1.0 0.0; } } desc { "visible"; inherit; align: 0.0 1.0; } desc { "right"; inherit; align: 1.0 0.66; } desc { "right_visible"; inherit: "right"; align: 1.0 1.0; } } group { "border_top"; scale; clip: "clipper_top"; source: "border_top_real"; desc { "default"; rel.to_x: "elm.swallow.slot.top"; rel.to_y: "clipper_top"; map.on: 1; map.rotation.z: 180.0; } } rect { "clipper_top"; clip: "clipper"; desc { "default"; hid; rel1.to_y: "elm.swallow.slot.top"; rel2 { to_y: "elm.swallow.slot.middle"; relative: 1.0 0.0; } } desc { "visible"; inherit; vis; } } /* bottom */ image { "bg_bottom"; scale; clip: "clipper_bottom"; desc { "default"; rel.to_x: "elm.swallow.slot.bottom"; rel.to_y: "clipper_bottom"; image.normal: "core_dropdown_label_bg.#"; color_class: "hoversel/default/bg_popup"; } } swallow { "elm.swallow.slot.bottom"; scale; mouse; clip: "clipper_bottom"; desc { "default"; align: 0.0 0.34; rel1 { to: "elm.swallow.slot.middle"; relative: 0.0 1.0; offset: 0 -2; } rel2.to: "elm.swallow.slot.middle"; } desc { "visible"; inherit; align: 0.0 0.0; } desc { "right"; inherit; align: 1.0 0.34; } desc { "right_visible"; inherit: "right"; align: 1.0 0.0; } } image { "border_bottom"; scale; clip: "clipper_bottom"; desc { "default"; rel.to_x: "elm.swallow.slot.bottom"; rel.to_y: "clipper_bottom"; image.normal: "core_dropdown_label_bg_stroke.#"; color_class: "hoversel/default/bg_popup_border"; } } rect { "clipper_bottom"; clip: "clipper"; desc { "default"; hid; rel1 { to_y: "elm.swallow.slot.middle"; relative: 0.0 1.0; offset: 0 -2; } rel2.to_y: "elm.swallow.slot.bottom"; } desc { "visible"; inherit; vis; } } } programs { program { signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "elm,action,dismiss" "elm"; } program { signal: "elm,action,show"; source: "elm"; action: STATE_SET "visible"; transition: GLIDE_EASE_OUT(0.25); target: "clipper"; } program { signal: "elm,action,hide"; source: "elm"; sequence { action: STATE_SET "default"; transition: GLIDE_EASE_OUT(0.3); target: "clipper"; // action: STATE_SET "default"; targets: "clipper_top" "clipper_bottom"; // action: SIGNAL_EMIT "elm,action,hide,finished" "elm"; } } program { signal: "elm,action,slot,top,show"; source: "elm"; sequence { action: STATE_SET "visible"; target: "clipper_top"; script { anim(0.25, "show", 0); set_int(visible, 1); } } } program { signal: "elm,action,slot,bottom,show"; source: "elm"; sequence { action: STATE_SET "visible"; target: "clipper_bottom"; script { anim(0.25, "show", 1); set_int(visible, 1); } } } program { signal: "elm,action,slot,top,hide"; source: "elm"; script { anim(0.30, "hide", 0); set_int(visible, 0); } } program { signal: "elm,action,slot,bottom,hide"; source: "elm"; script { anim(0.30, "hide", 1); set_int(visible, 0); } } program { 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 { 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: "bg_top_real"; parts { image { scale; desc { "default"; image.normal: "core_dropdown_label_bg.#"; rel2.offset: -1 -2; color_class: "hoversel/default/bg_popup"; } } } } group { name: "border_top_real"; parts { image { scale; desc { "default"; image.normal: "core_dropdown_label_bg_stroke.#"; color_class: "hoversel/default/bg_popup_border"; rel2.offset: -1 -2; } } } }