/* * Copyright (c) 2015 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 { "elm/button/event/default"; inherit_only: 1; parts { rect { "event"; mouse; desc { "default"; color: 0 0 0 0; rel.to: "base"; } desc { "disabled"; inherit: "default"; hid; } } } programs { /* Program for pressed event */ program { "pressed"; signal: "mouse,down,1*"; source: "event"; action: SIGNAL_EMIT "elm,action,press" ""; after: "on_pressed"; } /* Program for unpressed event */ program { "unpressed"; signal: "mouse,up,1*"; source: "event"; action: SIGNAL_EMIT "elm,action,unpress" ""; after: "on_unpressed"; } /* Program for clicked event */ program { "clicked"; signal: "mouse,clicked,1"; source: "event"; action: SIGNAL_EMIT "elm,action,click" ""; after: "on_clicked"; } /* Program for enabled event */ program { "enabled"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default"; target: "event"; after: "on_enabled"; } /* Program for disabled event */ program { "disabled"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled"; target: "event"; after: "on_disabled"; } program { "enable_event_pass"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"event", 0); } } program { "disable_event_pass"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"event", 1); } } program { "enable_event_repeat"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"event", 1); } } program { "disable_event_repeat"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"event", 0); } } } } group { "elm/button/base/template"; inherit_only: 1; nomouse; // only event part can have mouse events. // images { // image: "bg.png" COMP; // Background image for bg and event masking. // } parts { /* Base part for button */ spacer { "base"; desc { "default"; } } image { "bg"; desc { "default"; rel.to: "base"; // image.normal: "bg.png"; } } /* Default swallow part */ swallow { "elm.swallow.content"; desc { "default"; rel.to: "base"; } } /* Default text part */ text { "elm.text"; desc { "default"; rel.to: "base"; } } } inherit: "elm/button/event/default"; programs { /* Program for pressed effect */ program { "on_pressed"; } /* Program for unpressed effect */ program { "on_unpressed"; } /* Program for clicked effect */ program { "on_clicked"; } /* Program for disabled effect */ program { "on_disabled"; } /* Program for enabled effect */ program { "on_enabled"; } } } #define BUTTON_VECTOR_PART(min_size, ratio, vector_base, clipper_vector_base, left_top, right_top, mid, left_bottom, right_bottom) \ vector { vector_base"_top_left"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 0.0 0.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: left_top; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_top_right"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 1.0 0.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: right_top; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_top_mid"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_top_left"; \ rel1.relative: 1.0 0.0; \ rel2.to: vector_base"_top_right"; \ rel2.relative: 0.0 1.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_mid"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_top_left"; \ rel1.relative: 0.0 1.0; \ rel2.to: vector_base"_bottom_right"; \ rel2.relative: 1.0 0.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_left"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 0.0 1.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: left_bottom; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_right"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 1.0 1.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: right_bottom; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_mid"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_bottom_left"; \ rel1.relative: 1.0 0.0; \ rel2.to: vector_base"_bottom_right"; \ rel2.relative: 0.0 1.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_top_left_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 0.0 0.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: right_top; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_top_right_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 1.0 0.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: left_top; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_top_mid_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_top_left_rtl"; \ rel1.relative: 1.0 0.0; \ rel2.to: vector_base"_top_right_rtl"; \ rel2.relative: 0.0 1.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_mid_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_top_left_rtl"; \ rel1.relative: 0.0 1.0; \ rel2.to: vector_base"_bottom_right_rtl"; \ rel2.relative: 1.0 0.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_left_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 0.0 1.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: right_bottom; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_right_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ align: 1.0 1.0; \ max: (min_size)*ratio (min_size)*ratio; \ rel1.to: vector_base; \ rel2.to: vector_base; \ rel1.relative: 0.0 0.0; \ rel2.relative: 1.0 1.0; \ image.normal: left_bottom; \ } \ desc { "ready"; \ inherit: "default"; \ min: (min_size)-1 (min_size)-1; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } \ vector { vector_base"_bottom_mid_rtl"; \ clip: clipper_vector_base; \ desc { "default"; \ vis; \ rel1.to: vector_base"_bottom_left_rtl"; \ rel1.relative: 1.0 0.0; \ rel2.to: vector_base"_bottom_right_rtl"; \ rel2.relative: 0.0 1.0; \ image.normal: mid; \ } \ desc { "ready"; \ inherit: "default"; \ } \ desc { "pressed"; \ inherit: "ready"; \ } \ desc { "hidden" \ hid; \ } \ } #define BUTTON_VECTOR_PART_MIRRORED_VALUE \ public rtl_mode = 0; #define BUTTON_VECTOR_PART_MIRRORED_SET_STATE(vector_base, _rtl, _state) \ set_state(PART:vector_base"_top_left"_rtl, _state, 0.0); \ set_state(PART:vector_base"_top_right"_rtl, _state, 0.0); \ set_state(PART:vector_base"_bottom_left"_rtl, _state, 0.0); \ set_state(PART:vector_base"_bottom_right"_rtl, _state, 0.0); \ set_state(PART:vector_base"_top_mid"_rtl, _state, 0.0); \ set_state(PART:vector_base"_mid"_rtl, _state, 0.0); \ set_state(PART:vector_base"_bottom_mid"_rtl, _state, 0.0); #define BUTTON_VECTOR_PART_MIRRORED_PROGRAM( _icon ) \ program { "rtl_mirrored"; \ signal: "edje,state,rtl"; \ source: "edje"; \ script { \ set_int(rtl_mode, 1); \ if( strcmp(#_icon, "icon")) { \ set_state(PART:_icon, "rtl", 0.0); \ } \ } \ } \ program { "ltr_mirrored"; \ signal: "edje,state,ltr"; \ source: "edje"; \ script { \ set_int(rtl_mode, 0); \ if( strcmp(#_icon, "icon")) { \ set_state(PART:_icon, "default", 0.0); \ } \ } \ } group { "elm/button/base/default"; images { image: "core_list_button_bg.#.png" COMP; } parts { rect { "clipper_opacity"; desc { "default"; color_class: "button/default/opacity"; } } spacer { "base"; scale; desc { "default"; min: BUTTON_MIN_WIDTH_INC BUTTON_MIN_HEIGHT_INC; } } //Base Shape Part image { "bg"; clip: "clipper_bg"; scale; desc { "default"; min: 0 BUTTON_MIN_HEIGHT_INC; rel.to: "base"; image.normal: "core_list_button_bg.#.png"; } } rect { "clipper_bg"; scale; clip: "clipper_opacity"; desc { "default"; color_class: "button/default/bg"; } desc { "pressed"; color_class: "button/default/bg_pressed"; } desc { "disabled"; color_class: "button/default/bg_disabled"; } } //Effect Shape Part image { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; min: 0 BUTTON_MIN_HEIGHT_INC; rel.to: "base"; image.normal: "core_list_button_bg.#.png"; } } rect { "clipper_bg_effect"; clip: "clipper_opacity"; desc { "default"; color: 0 0 0 0; color_class: "button/default/effect"; } desc { "pressed"; inherit: "default"; color: 255 255 255 255; } } spacer { "padding_top_left"; scale; desc { "default"; rel.to: "base"; align: 0.0 0.0; rel2.relative: 0.0 0.0; min: BUTTON_PADDING_LEFT_RIGHT_INC BUTTON_PADDING_TOP_HEIGHT_INC; fixed: 1 1; } } spacer { "padding_bottom_right"; scale; desc { "default"; rel.to: "base"; align: 1.0 1.0; rel1.relative: 1.0 1.0; min: BUTTON_PADDING_LEFT_RIGHT_INC BUTTON_PADDING_BOTTOM_HEIGHT_INC; fixed: 1 1; } } spacer { "icon_rect"; scale; desc { "default"; align: 0.0 0.5; rel1 { relative: 1.0 1.0; to: "padding_top_left"; } rel2 { relative: 1.0 0.0; to_x: "padding_top_left"; to_y: "padding_bottom_right"; } min: 0 BUTTON_ICON_DEFAULT_HEIGHT_INC; fixed: 1 1; } desc { "visible"; inherit: "default"; min: BUTTON_ICON_DEFAULT_WIDTH_INC BUTTON_ICON_DEFAULT_HEIGHT_INC; max: BUTTON_ICON_DEFAULT_WIDTH_INC BUTTON_ICON_DEFAULT_HEIGHT_INC; } desc { "icon_only"; inherit: "default"; } } spacer { "icon_text_padding"; scale; desc { "default"; align: 1.0 0.5; min: 0 0; rel1 { relative: 0.0 0.0; to: "elm.text"; } rel2 { relative: 0.0 1.0; to: "elm.text"; } fixed: 1 1; } desc { "visible"; inherit: "default"; min: BUTTON_PADDING_ICON_RIGHT_INC 0; } } swallow { "elm.swallow.content"; scale; clip: "clipper_elm.swallow.content"; desc { "default"; align: 0.0 1.0; rel1 { relative: 1.0 1.0; to: "padding_top_left"; } rel2 { relative: 1.0 1.0; to_x: "padding_top_left"; to_y: "padding_bottom_right"; } min: 0 BUTTON_ICON_DEFAULT_HEIGHT_INC; fixed: 1 0; } desc { "visible"; inherit: "default"; align: 1.0 0.5; rel1 { relative: 0.0 1.0; to_x: "icon_text_padding"; to_y: "padding_top_left"; } rel2 { relative: 0.0 0.0; to_x: "icon_text_padding"; to_y: "padding_bottom_right"; } min: BUTTON_ICON_DEFAULT_WIDTH_INC BUTTON_ICON_DEFAULT_HEIGHT_INC; } desc { "icon_only"; rel.to: "bg"; min: BUTTON_ICON_DEFAULT_WIDTH_INC BUTTON_ICON_DEFAULT_HEIGHT_INC; max: BUTTON_ICON_DEFAULT_WIDTH_INC BUTTON_ICON_DEFAULT_HEIGHT_INC; align: 0.5 0.5; fixed: 1 1; } } textblock { "elm.text"; nomouse; scale; clip: "clipper_opacity"; desc { "default"; fixed: 1 1; rel1 { relative: 1.0 1.0; to_x: "icon_rect"; to_y: "padding_top_left"; } rel2 { relative: 0.0 0.0; to: "padding_bottom_right"; } text { style: "button_main"; max: 1 0; } } desc { "pressed"; inherit: "default"; text.style: "button_main_press"; } desc { "disabled"; inherit: "default"; text.style: "button_main_dim"; } } rect { "clipper_elm.swallow.content"; clip: "clipper_opacity"; desc { "default"; color_class: "button/default/icon"; } desc { "pressed"; color_class: "button/default/icon_pressed"; } desc { "disabled"; color_class: "button/default/icon_disabled"; } } } inherit: "elm/button/event/default"; script { public mouse_down = 0; public multi_down = 0; public disabled = 0; public text = 0; public content = 0; public animate = 0; public selected = 0; public minw = 0; public minh = 0; } program_remove: "unpressed"; program_remove: "clicked"; programs { program { "on_pressed"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(animate) == 0) { emit("elm,action,unpress", ""); run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"elm.text", "pressed", 0.0); set_state(PART:"clipper_elm.swallow.content", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } } } } program { "on_enabled"; script { set_int(disabled, 0); set_state(PART:"clipper_elm.swallow.content", "default", 0.0); set_state(PART:"clipper_bg", "default", 0.0); set_state(PART:"elm.text", "default", 0.0); } } program { "on_disabled"; script { set_int(disabled, 1); if (get_int(animate) == 1) return; set_state(PART:"clipper_elm.swallow.content", "disabled", 0.0); set_state(PART:"clipper_bg", "disabled", 0.0); set_state(PART:"elm.text", "disabled", 0.0); } } program { "pressed_effect"; script { set_state(PART:"elm.text", "pressed", 0.0); set_state(PART:"clipper_elm.swallow.content", "pressed", 0.0); set_state(PART:"clipper_bg", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"unpressed_effect_bg_effect"); run_program(PROGRAM:"unpressed_effect_text"); } else { run_program(PROGRAM:"disabled_unpress_effect_bg_effect"); run_program(PROGRAM:"disabled_unpress_effect_text"); run_program(PROGRAM:"disabled_unpress_effect_icon"); } } } program { "unpressed_effect_bg_effect"; action: STATE_SET "default"; targets: "clipper_bg" "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect_text"; action: STATE_SET "default"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); after: "unpressed_effect_icon"; } program { "unpressed_effect_icon"; action: STATE_SET "default"; target: "clipper_elm.swallow.content"; after: "finished_animation"; } program { "disabled_unpress_effect_bg_effect"; action: STATE_SET "default"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_unpress_effect_text"; action: STATE_SET "disabled"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_unpress_effect_icon"; action: STATE_SET "disabled"; targets: "clipper_bg" "clipper_elm.swallow.content"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "finished_animation"; action: STATE_SET "default"; targets: "clipper_bg" "clipper_bg_effect"; } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(multi_down) == 0) { if (get_int(disabled) == 0) { run_program(PROGRAM:"touch_sound"); run_program(PROGRAM:"clicked_signal"); } } } } program { "touch_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "icon_show"; signal: "elm,state,icon,visible"; source: "elm"; script { set_int(content, 1); set_state(PART:"icon_text_padding", "visible", 0.0); if (get_int(text) == 1) { set_state(PART:"icon_rect", "visible", 0.0); set_state(PART:"elm.swallow.content", "visible", 0.0); } else { set_state(PART:"icon_rect", "icon_only", 0.0); set_state(PART:"elm.swallow.content", "icon_only", 0.0); } } } program { "icon_hide"; signal: "elm,state,icon,hidden"; source: "elm"; script { set_int(content, 0); set_state(PART:"icon_text_padding", "default", 0.0); set_state(PART:"icon_rect", "default", 0.0); set_state(PART:"elm.swallow.content", "default", 0.0); } } program { "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { set_int(text, 1); if (get_int(content) == 1) { set_state(PART:"icon_rect", "visible", 0.0); set_state(PART:"elm.swallow.content", "visible", 0.0); } } } program { "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { set_int(text, 0); if (get_int(content) == 1) { set_state(PART:"icon_rect", "icon_only", 0.0); set_state(PART:"elm.swallow.content", "icon_only", 0.0); } } } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } } } group { "elm/button/base/circle"; images { vector: "core_icon_container.svg"; } parts { rect { "clipper_opacity"; desc { "default"; color_class: "button/circle/opacity"; } } spacer { "base"; scale; desc { "default"; min: BUTTON_CIRCLE_BASE_SIZE_INC; } desc { "extended"; min: BUTTON_CIRCLE_EXTENDED_SIZE_INC; } } //Base Shape Part vector { "bg"; clip: "clipper_bg"; scale; desc { "default"; min: BUTTON_CIRCLE_SIZE_INC; rel1.relative: 0.5 0; rel2.relative: 0.5 0; align: 0.5 0; fixed: 1 1; image.normal: "core_icon_container.svg"; } } rect { "clipper_bg"; clip: "clipper_opacity"; desc { "default"; color_class: "button/circle/bg"; } desc { "pressed"; color_class: "button/circle/bg_pressed"; } desc { "disabled"; color_class: "button/circle/bg_disabled"; } } spacer { "effect_spacer"; desc { "default"; rel.to: "bg"; } } //Effect Shape Part vector { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; rel.to: "effect_spacer"; image.normal: "core_icon_container.svg"; } desc { "pressed"; inherit: "default"; } } rect { "clipper_bg_effect"; clip: "clipper_opacity"; desc { "default"; color: 0 0 0 0; color_class: "button/circle/effect"; } desc { "pressed"; inherit: "default"; color: 255 255 255 255; } } swallow { "elm.swallow.content"; scale; clip: "clipper_elm.swallow.content"; desc { "default"; min: BUTTON_CIRCLE_ICON_SIZE_INC; fixed: 1 1; rel.to: "bg"; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; } } spacer { "icon_text_padding"; scale; desc { "default"; rel1.to_y: "bg"; rel2.to_y: "bg"; rel1.relative: 0.0 1.0; rel2.relative: 1.0 1.0; align: 0.5 0.0; min: 0 0; fixed: 1 1; } desc { "visible"; inherit: "default"; min: 0 BUTTON_CIRCLE_PADDING_ICON_BOTTOM_INC; } } spacer { "text_left_padding"; scale; desc { "default"; min: BUTTON_CIRCLE_PADDING_TEXT_LEFT_RIGHT_INC 0; rel1 { relative: 0.0 1.0; to: "icon_text_padding"; } rel2.relative: 0.0 1.0; align: 0.0 0.5; fixed: 1 0; } } spacer { "text_right_padding"; scale; desc { "default"; min: BUTTON_CIRCLE_PADDING_TEXT_LEFT_RIGHT_INC 0; rel1 { relative: 1.0 1.0; to: "icon_text_padding"; } align: 1.0 0.5; fixed: 1 0; } } textblock { "elm.text"; nomouse; scale; clip: "clipper_opacity"; desc { "default"; rel1 { relative: 1.0 0.0; to: "text_left_padding"; } rel2 { relative: 0.0 1.0; to: "text_right_padding"; } text { style: "button_circle"; align: 0.5 0; min: 0 0; } align: 0.5 0; min: 0 0; } desc { "pressed"; inherit: "default"; text.style: "button_circle_press"; } desc { "disabled"; inherit: "default"; text.style: "button_circle_dim"; } } rect { "clipper_elm.swallow.content"; clip: "clipper_opacity"; desc { "default"; color_class: "button/circle/icon"; } desc { "pressed"; color_class: "button/circle/icon_pressed"; } desc { "disabled"; color_class: "button/circle/icon_disabled"; } } } inherit: "elm/button/event/default"; script { public mouse_down = 0; public multi_down = 0; public disabled = 0; public animate = 0; } program_remove: "unpressed"; program_remove: "clicked"; programs { program { "on_pressed"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(animate) == 0) { emit("elm,action,unpress", ""); run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"elm.text", "pressed", 0.0); set_state(PART:"clipper_elm.swallow.content", "pressed", 0.0); set_state(PART:"bg_effect", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } } } } program { "on_disabled"; script { set_int(disabled, 1); if (get_int(animate) == 1) return; set_state(PART:"clipper_elm.swallow.content", "disabled", 0.0); set_state(PART:"clipper_bg", "disabled", 0.0); set_state(PART:"elm.text", "disabled", 0.0); } } program { "on_enabled"; script { set_int(disabled, 0); set_state(PART:"clipper_elm.swallow.content", "default", 0.0); set_state(PART:"clipper_bg", "default", 0.0); set_state(PART:"elm.text", "default", 0.0); } } program { "pressed_effect"; action: STATE_SET "pressed"; targets: "bg_effect" "elm.text" "clipper_elm.swallow.content" "clipper_bg" "clipper_bg_effect"; after: "pressed_effect3"; } program { "pressed_effect3"; script { set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"unpressed_effect_bg_effect"); run_program(PROGRAM:"unpressed_effect_text"); } else { run_program(PROGRAM:"disabled_unpress_effect_bg_effect"); run_program(PROGRAM:"disabled_unpress_effect_text"); run_program(PROGRAM:"disabled_unpress_effect_icon"); } } } program { "unpressed_effect_bg_effect"; action: STATE_SET "default"; targets: "bg_effect" "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect_text"; action: STATE_SET "default"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); after: "unpressed_effect_icon"; } program { "unpressed_effect_icon"; action: STATE_SET "default"; target: "clipper_elm.swallow.content"; after: "finished_animation"; } program { "disabled_unpress_effect_bg_effect"; action: STATE_SET "default"; targets: "bg_effect" "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_unpress_effect_text"; action: STATE_SET "disabled"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_unpress_effect_icon"; action: STATE_SET "disabled"; targets: "clipper_elm.swallow.content" "clipper_bg"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "finished_animation"; action: STATE_SET "default"; targets: "bg_effect" "clipper_bg_effect" "clipper_bg"; } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(multi_down) == 0) { if (get_int(disabled) == 0) { run_program(PROGRAM:"touch_sound"); run_program(PROGRAM:"clicked_signal"); } } } } program { "touch_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { set_state(PART:"base", "extended", 0.0); set_state(PART:"icon_text_padding", "visible", 0.0); } } program { "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { set_state(PART:"base", "default", 0.0); set_state(PART:"icon_text_padding", "default", 0.0); } } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } } } group { "elm/button/base/floatingbutton/default"; images { vector: "core_icon_container.svg"; } parts { spacer { "base"; scale; nomouse; desc { "default"; min: BUTTON_ICON_WIDTH_INC BUTTON_ICON_HEIGHT_INC; max: BUTTON_ICON_WIDTH_INC BUTTON_ICON_HEIGHT_INC; } } //Base Shape Part vector { "bg"; clip: "clipper_bg"; scale; desc { "default"; rel.to: "base"; align: 0.5 0; fixed: 1 1; image.normal: "core_icon_container.svg"; } } rect { "clipper_bg"; desc { "default"; color: 0 0 0 0; } desc { "pressed"; color: 0 0 0 0; } desc { "disabled"; color: 0 0 0 0; } } spacer { "effect_spacer"; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; } } //Effect Shape Part vector { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; image.normal: "core_icon_container.svg"; } desc { "ready"; fixed: 1 1; rel.to: "effect_spacer"; rel1.relative: 0.15 0.15; rel2.relative: 0.85 0.85; image.normal: "core_icon_container.svg"; } desc { "pressed"; inherit: "ready"; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } rect { "clipper_bg_effect"; desc { "default"; fixed: 1 1; rel.to: "bg_effect"; color: 0 0 0 0; color_class: "floatingbutton/default/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } swallow { "elm.swallow.content"; scale; clip: "clipper_elm.swallow.content"; desc { "default"; min: BUTTON_ICON_WIDTH_INC BUTTON_ICON_HEIGHT_INC; max: BUTTON_ICON_WIDTH_INC BUTTON_ICON_HEIGHT_INC; rel.to: "base"; align: 0.5 0.5; fixed: 1 1; } } rect { "clipper_elm.swallow.content"; desc { "default"; color_class: "floatingbutton/default/icon"; } desc { "pressed"; inherit: "default"; color_class: "floatingbutton/default/icon_pressed"; } desc { "disabled"; inherit: "default"; color_class: "floatingbutton/default/icon_disabled"; } } } inherit: "elm/button/event/default"; script { public mouse_down = 0; public multi_down = 0; public disabled = 0; public animate = 0; public rel_x = 0; public rel_y = 0; public get_circumscription_radius(base_effect, radius_w, radius_h) { new x, y, w, h, Float:radius; get_geometry(base_effect, x, y, w, h); radius = sqrt(pow(w, 2) + pow(h, 2)); set_float(radius_w, ((radius / w) - 1) / 2); set_float(radius_h, ((radius / h) - 1) / 2); } } program_remove: "unpressed"; program_remove: "clicked"; programs { program { "on_pressed"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); set_int(animate, 1); set_state(PART:"effect_spacer", "default", 0.0); get_circumscription_radius(PART:"effect_spacer", rel_x, rel_y); custom_state(PART:"effect_spacer", "default", 0.0); set_state(PART:"effect_spacer", "custom", 0.0); set_state_val(PART:"effect_spacer", STATE_REL1, (get_float(rel_x) * -1), (get_float(rel_y) * -1)); set_state_val(PART:"effect_spacer", STATE_REL2, (get_float(rel_x) + 1), (get_float(rel_y) + 1)); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(disabled) == 0) { if (get_int(animate) == 0) { run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"bg_effect", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } emit("elm,action,unpress", ""); } } } } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(multi_down) == 0) { if (get_int(disabled) == 0) { run_program(PROGRAM:"play_sound"); run_program(PROGRAM:"clicked_signal"); } } } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "on_enabled"; script { set_int(disabled, 0); set_state(PART:"clipper_elm.swallow.content", "default", 0.0); } } program { "on_disabled"; script { set_int(disabled, 1); if (get_int(animate) == 1) return; set_state(PART:"clipper_elm.swallow.content", "disabled", 0.0); } } program { "pressed_effect"; action: STATE_SET "ready"; targets: "bg_effect" "clipper_bg_effect"; after: "pressed_effect2"; } program { "pressed_effect2"; action: STATE_SET "pressed"; targets: "clipper_elm.swallow.content" "bg_effect" "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.15); after: "pressed_effect3"; } program { "pressed_effect3"; script { set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"unpressed_effect2"); run_program(PROGRAM:"unpressed_effect3"); } else { run_program(PROGRAM:"disabled_effect"); run_program(PROGRAM:"disabled_effect2"); } } } program { "unpressed_effect2"; action: STATE_SET "default"; target: "clipper_elm.swallow.content"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect3"; action: STATE_SET "ready"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "disabled_effect"; action: STATE_SET "disabled"; target: "clipper_elm.swallow.content"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_effect2"; action: STATE_SET "ready"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "finished_animation"; action: STATE_SET "default"; targets: "bg_effect" "clipper_bg_effect" "clipper_bg"; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { signal: "elm,state,default"; source: "elm"; script { set_state(PART:"clipper_elm.swallow.content", "default", 0.0); set_state(PART:"bg_effect", "default", 0.0); set_state(PART:"clipper_bg_effect", "default", 0.0); set_state(PART:"effect_spacer", "default", 0.0); set_int(mouse_down, 0); } } } } group { "elm/button/base/floatingbutton/white"; alias: "elm/button/base/floatingbutton/white_bg"; inherit: "elm/button/base/floatingbutton/default"; parts { rect { "clipper_bg"; desc { "default"; color: 0 0 0 0; } desc { "pressed"; color: 0 0 0 0; } desc { "disabled"; color: 0 0 0 0; } } rect { "clipper_bg_effect"; desc { "default"; color: 0 0 0 0; color_class: "floatingbutton/white/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } rect { "clipper_elm.swallow.content"; desc { "default"; color_class: "floatingbutton/white/icon"; } desc { "pressed"; inherit: "default"; color_class: "floatingbutton/white/icon_pressed"; } desc { "disabled"; inherit: "default"; color_class: "floatingbutton/white/icon_disabled"; } } } } group { "elm/button/base/editfield_clear"; inherit: "elm/button/base/floatingbutton/default"; images { image: "core_button_icon_clear.png" COMP; set { name: "core_focus.#"; image { image: SMALL"images/Presentation_views/core_focus.#.png" COMP; } image { image: MEDIUM"images/Presentation_views/core_focus.#.png" COMP; } } } data.item: "focus_highlight" "on"; parts { spacer { "base"; scale; nomouse; desc { "default"; min: BUTTON_EDITFIELD_CLEAR_BUTTON_WIDTH_INC BUTTON_EDITFIELD_CLEAR_BUTTON_HEIGHT_INC; max: BUTTON_EDITFIELD_CLEAR_BUTTON_WIDTH_INC BUTTON_EDITFIELD_CLEAR_BUTTON_HEIGHT_INC; } } rect { "clipper_bg"; desc { "default"; hid; fixed: 1 1; rel.to: "bg"; color_class: "button/editfield_clear/bg"; } desc { "ready"; inherit: "default"; vis; color_class: "button/editfield_clear/bg_pressed"; } desc { "pressed"; inherit: "default"; vis; color_class: "button/editfield_clear/bg_disabled"; } } rect { "clipper_bg_effect"; desc { "default"; color: 0 0 0 0; color_class: "button/editfield_clear/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } image { "button_center_part"; clip: "clipper_elm.swallow.content"; nomouse; scale; desc { "default"; rel.to: "base"; image.normal: "core_button_icon_clear.png"; } } rect { "clipper_elm.swallow.content"; desc { "default"; color_class: "button/editfield_clear/icon"; } desc { "pressed"; color_class: "button/editfield_clear/icon_pressed"; } desc { "disabled"; color_class: "button/editfield_clear/icon_disabled"; } } image { "focus_image"; scale; nomouse; repeat; desc { "default"; image.normal: "core_focus.#"; hid; } desc { "focused"; inherit: "default"; vis; color_class: "focus/highlight/default"; } } } programs { program { "action_focus"; signal: "elm,action,focus_highlight,show"; source: "elm"; action: STATE_SET "focused"; target: "focus_image"; } program { "action_unfocus"; signal: "elm,action,focus_highlight,hide"; source: "elm"; action: STATE_SET "default"; target: "focus_image"; } } } group { "elm/button/base/bottom"; inherit: "elm/button/base/default"; images { image: "core_button_bg.#.png" COMP; } parts { rect { "clipper_opacity"; desc { "default"; color_class: "button/bottom/opacity"; } } spacer { "base"; scale; desc { "default"; min: BUTTON_BOTTOM_MIN_WIDTH_INC BUTTON_BOTTOM_MIN_HEIGHT_INC; max: BUTTON_BOTTOM_MAX_WIDTH_INC BUTTON_BOTTOM_MAX_HEIGHT_INC; } } //Base Shape Part image { "bg"; clip: "clipper_bg"; scale; desc { "default"; min: 0 BUTTON_BOTTOM_MIN_HEIGHT_INC; max: BUTTON_BOTTOM_MAX_WIDTH_INC BUTTON_BOTTOM_MAX_HEIGHT_INC; image.normal: "core_button_bg.#.png"; } } rect { "clipper_bg"; clip: "clipper_opacity"; desc { "default"; color_class: "button/bottom/bg"; } desc { "pressed"; color_class: "button/bottom/bg_pressed"; } desc { "disabled"; color_class: "button/bottom/bg_disabled"; } } //Effect Shape Part image { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; rel.to: "base"; image.normal: "core_button_bg.#.png"; } } rect { "clipper_bg_effect"; clip: "clipper_opacity"; desc { "default"; color: 0 0 0 0; color_class: "button/bottom/effect"; } desc { "pressed"; inherit: "default"; color: 255 255 255 255; } } spacer { "padding_top_left"; scale; desc { "default"; rel.to: "bg"; align: 0.0 0.0; rel1.relative: 0.0 0.0; min: BUTTON_PADDING_LEFT_RIGHT_INC BUTTON_BOTTOM_PADDING_TOP_HEIGHT_INC; fixed: 1 1; } } spacer { "padding_bottom_right"; scale; desc { "default"; rel.to: "bg"; align: 1.0 1.0; rel1.relative: 1.0 1.0; min: BUTTON_PADDING_LEFT_RIGHT_INC BUTTON_BOTTOM_PADDING_BOTTOM_HEIGHT_INC; fixed: 1 1; } } textblock { "elm.text"; nomouse; scale; clip: "clipper_opacity"; desc { "default"; fixed: 1 1; rel1 { relative: 1.0 1.0; to_x: "icon_rect"; to_y: "padding_top_left"; } rel2 { relative: 0.0 0.0; to: "padding_bottom_right"; } text { style: "button_bottom"; max: 1 0; } } desc { "pressed"; inherit: "default"; text.style: "button_bottom_press"; } desc { "disabled"; inherit: "default"; text.style: "button_bottom_dim"; } } } } group { "elm/button/base/popup"; inherit: "elm/button/base/bottom"; parts { rect { "clipper_opacity"; desc { "default"; color_class: "button/popup/opacity"; } } spacer { "base"; scale; desc { "default"; min: BUTTON_POPUP_MIN_WIDTH_INC BUTTON_POPUP_MIN_HEIGHT_INC; } } //Base Shape Part image { "bg"; clip: "clipper_bg"; scale; desc { "default"; min: 0 BUTTON_POPUP_MIN_HEIGHT_INC; image.normal: "core_button_bg.#.png"; } } rect { "clipper_bg"; desc { "default"; color_class: "button/popup/bg"; } desc { "pressed"; color_class: "button/popup/bg_pressed"; } desc { "disabled"; color_class: "button/popup/bg_disabled"; } } rect { "clipper_bg_effect"; desc { "default"; color_class: "button/popup/effect"; } desc { "pressed"; color: 255 255 255 255; } } textblock { "elm.text"; desc { "default"; text.style: "button_popup"; } desc { "pressed"; text.style: "button_popup_press"; } desc { "disabled"; text.style: "button_popup_dim"; } } } } /* This transparent button style is used by applications which use webview. */ group{ "elm/button/base/transparent"; script { public mouse_down = 0; public multi_down = 0; } parts { spacer { "tizen_vg_shape"; scale; desc { "default"; } desc { "disabled"; inherit: "default"; } } swallow { "elm.swallow.content"; scale; desc { "default"; } } rect { "event"; scale; /* Do not remove the following line. * elm.swallow.content part should receive mouse events. */ repeat; ignore_flags: ON_HOLD; desc { "default"; color: 0 0 0 0; } } } programs { program { "pressed"; signal: "mouse,down,1*"; source: "event"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { set_int(mouse_down, 1); run_program(PROGRAM:"button_press1"); } } } program { "button_press1"; script { new st[31]; new Float:vl; get_state(PART:"tizen_vg_shape", st, 30, vl); if (strcmp(st, "disabled")) { emit("elm,action,press", ""); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); run_program(PROGRAM:"button_unpress1"); } } } program { "button_unpress1"; script { new st[31]; new Float:vl; get_state(PART:"tizen_vg_shape", st, 30, vl); if (strcmp(st, "disabled")) { emit("elm,action,unpress", ""); } } } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { new st[31]; new Float:vl; if (get_int(multi_down) == 0) { get_state(PART:"tizen_vg_shape", st, 30, vl); if (strcmp(st, "disabled")) { emit("elm,action,click", ""); } } } } program { "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled"; target: "tizen_vg_shape"; } program { "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default"; target: "tizen_vg_shape"; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"event", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"event", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_mouse_events(PART:"event", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_mouse_events(PART:"event", 0); } } } } /////////////////////////////////////////////////////////////////////////////////////// #define BUTTON_ICON_STYLES(style_name, image_normal, color_class_bg_normal, color_class_bg_press, color_class_bg_dim, color_class_icon_normal, color_class_icon_press, color_class_icon_dim, color_class_effect, min_width, min_height, effect_ready_rel1_x, effect_ready_rel1_y, effect_ready_rel2_x, effect_ready_rel2_y, effect_pressed_rel1_x, effect_pressed_rel1_y, effect_pressed_rel2_x, effect_pressed_rel2_y) \ group { "elm/button/base/"style_name; \ images { \ image: image_normal COMP; \ vector: "core_press_circle.svg"; \ } \ parts { \ spacer { "base"; \ scale; \ desc { "default"; \ min: min_width min_height; \ max: min_width min_height; \ } \ } \ swallow { "bg"; \ clip: "clipper_bg"; \ scale; \ desc { "default"; \ } \ desc { "ready"; \ vis; \ } \ desc { "pressed"; \ vis; \ } \ desc { "disabled"; \ vis; \ } \ } \ rect { "clipper_bg"; \ desc { "default"; \ color_class: color_class_bg_normal; \ } \ desc { "ready"; \ color_class: color_class_bg_normal; \ } \ desc { "pressed"; \ color_class: color_class_bg_press; \ } \ desc { "disabled"; \ color_class: color_class_bg_dim; \ } \ } \ spacer { "effect_spacer";\ scale; \ desc { "default"; \ fixed: 1 1; \ rel1.relative: 0.5 0.5; \ rel2.relative: 0.5 0.5; \ } \ } \ vector { "bg_effect"; \ clip: "clipper_bg_effect"; \ scale; \ desc { "default"; \ fixed: 1 1; \ rel1.relative: 0.5 0.5; \ rel2.relative: 0.5 0.5; \ image.normal: "core_press_circle.svg"; \ } \ desc { "ready"; \ fixed: 1 1; \ rel.to: "effect_spacer"; \ rel1.relative: effect_ready_rel1_x effect_ready_rel1_y; \ rel2.relative: effect_ready_rel2_x effect_ready_rel2_y; \ image.normal: "core_press_circle.svg"; \ } \ desc { "pressed"; \ inherit: "ready"; \ rel1.relative: effect_pressed_rel1_x effect_pressed_rel1_y; \ rel2.relative: effect_pressed_rel2_x effect_pressed_rel2_y; \ } \ } \ rect { "clipper_bg_effect"; \ desc { "default"; \ fixed: 1 1; \ rel1.to: "bg_effect"; \ rel2.to: "bg_effect"; \ color: 0 0 0 0; \ color_class: color_class_effect; \ } \ desc { "ready"; \ inherit: "default"; \ vis; \ } \ desc { "pressed"; \ inherit: "ready"; \ color: 255 255 255 255; \ } \ } \ image { "button_center_part"; \ nomouse; \ scale; \ desc { "default"; \ rel1.to: "base"; \ rel2.to: "base"; \ image.normal: image_normal; \ color_class: color_class_icon_normal; \ } \ desc { "pressed"; \ inherit: "default"; \ color_class: color_class_icon_press; \ } \ desc { "disabled"; \ inherit: "default"; \ color_class: color_class_icon_dim; \ } \ } \ } \ inherit: "elm/button/event/default"; \ script { \ public mouse_down = 0; \ public multi_down = 0; \ public disabled = 0; \ public animate = 0; \ public rel_x = 0; \ public rel_y = 0; \ public get_circumscription_radius(base_effect, radius_w, radius_h) { \ new x, y, w, h, Float:radius; \ get_geometry(base_effect, x, y, w, h); \ radius = sqrt(pow(w, 2) + pow(h, 2)); \ set_float(radius_w, ((radius / w) - 1) / 2); \ set_float(radius_h, ((radius / h) - 1) / 2); \ } \ } \ program_remove: "unpressed"; \ program_remove: "clicked"; \ programs { \ program { "on_pressed"; \ script { \ if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { \ stop_program(PROGRAM:"delay_unpressed_effect"); \ set_int(mouse_down, 1); \ set_int(animate, 1); \ get_circumscription_radius(PART:"base", rel_x, rel_y); \ custom_state(PART:"effect_spacer", "default", 0.0); \ set_state(PART:"effect_spacer", "custom",0.0); \ set_state_val(PART:"effect_spacer", STATE_REL1, (get_float(rel_x) * -1), (get_float(rel_y) * -1)); \ set_state_val(PART:"effect_spacer", STATE_REL2, (get_float(rel_x) + 1), (get_float(rel_y) + 1)); \ run_program(PROGRAM:"pressed_effect"); \ } \ } \ } \ program { "unpressed"; \ signal: "mouse,up,1"; \ source: "event"; \ script { \ if (get_int(mouse_down) == 1) { \ set_int(mouse_down, 0); \ if (get_int(disabled) == 0) { \ if (get_int(animate) == 0) { \ run_program(PROGRAM:"unpressed_effect"); \ } else { \ set_state(PART:"bg_effect", "pressed", 0.0); \ set_state(PART:"clipper_bg_effect", "pressed", 0.0); \ set_state(PART:"button_center_part", "pressed", 0.0); \ set_int(animate, 0); \ run_program(PROGRAM:"delay_unpressed_effect"); \ } \ emit("elm,action,unpress", ""); \ } \ } \ } \ } \ program { "clicked"; \ signal: "mouse,clicked,1"; \ source: "event"; \ script { \ if (get_int(multi_down) == 0) \ { \ if (get_int(disabled) == 0) \ { \ run_program(PROGRAM:"touch_sound"); \ run_program(PROGRAM:"button_click2"); \ } \ } \ } \ } \ program { "on_disabled"; \ script { \ set_int(disabled, 1); \ if (get_int(animate) == 1) return; \ set_state(PART:"button_center_part", "disabled", 0.0); \ } \ } \ program { "on_enabled"; \ action: STATE_SET "default"; \ script { \ set_int(disabled, 0); \ set_state(PART:"button_center_part", "default", 0.0); \ } \ } \ program { "touch_sound"; \ action: RUN_PLUGIN "touch_sound"; \ } \ program { "button_click2"; \ in: 0.001 0.0; \ action: SIGNAL_EMIT "elm,action,click" ""; \ } \ program { "pressed_effect"; \ action: STATE_SET "ready"; \ targets: "clipper_bg" "bg" "clipper_bg_effect" "bg_effect"; \ after: "pressed_effect2"; \ } \ program { "pressed_effect2"; \ action: STATE_SET "pressed"; \ targets: "clipper_bg" "bg" "clipper_bg_effect" "bg_effect" "button_center_part"; \ transition: GLIDE_EASE_OUT(0.15); \ after: "pressed_effect3"; \ } \ program { "pressed_effect3"; \ script { \ set_int(animate, 0); \ } \ } \ program { "delay_unpressed_effect"; \ in: 0.1 0.0; \ after: "unpressed_effect"; \ } \ program { "unpressed_effect"; \ script { \ if (get_int(disabled) == 0) { \ run_program(PROGRAM:"unpressed_effect2"); \ run_program(PROGRAM:"unpressed_effect3"); \ } \ else { \ run_program(PROGRAM:"disabled_effect"); \ run_program(PROGRAM:"disabled_effect2"); \ } \ } \ } \ program { "unpressed_effect2"; \ action: STATE_SET "default"; \ target: "button_center_part"; \ transition: GLIDE_EASE_OUT(0.45); \ } \ program { "unpressed_effect3"; \ action: STATE_SET "ready"; \ targets: "clipper_bg" "clipper_bg_effect"; \ transition: GLIDE_EASE_OUT(0.45); \ after: "finished_animation"; \ } \ program { "disabled_effect"; \ action: STATE_SET "disabled"; \ target: "button_center_part"; \ transition: GLIDE_EASE_OUT(0.45); \ } \ program { "disabled_effect2"; \ action: STATE_SET "ready"; \ targets: "clipper_bg" "clipper_bg_effect"; \ transition: GLIDE_EASE_OUT(0.45); \ after: "finished_animation"; \ } \ program { "finished_animation"; \ action: STATE_SET "default"; \ targets: "bg" "clipper_bg" "bg_effect" "clipper_bg_effect"; \ } \ program { "multi_down"; \ signal: "elm,action,multi,down"; \ source: "elm"; \ script { \ set_int(multi_down, 1); \ } \ } \ program { "multi_up"; \ signal: "elm,action,multi,up"; \ source: "elm"; \ script { \ set_int(multi_down, 0); \ } \ } \ } \ } /////////////////////////////////////////////////////////////////////////////////////// BUTTON_ICON_STYLES("icon_reorder", "core_button_reorder.png", "button/icon_reorder/bg", "button/icon_reorder/bg_pressed", "button/icon_reorder/bg_disabled", "button/icon_reorder/icon", "button/icon_reorder/icon_pressed", "button/icon_reorder/icon_disabled", "button/icon_reorder/effect", BUTTON_ICON_WIDTH_INC, BUTTON_ICON_HEIGHT_INC, 0.0, 0.0, 1.0, 1.0, -0.15, -0.15, 1.15, 1.15) /////////////////////////////////////////////////////////////////////////////////////// BUTTON_ICON_STYLES("icon_cancel", "core_button_cancel.png", "button/icon_cancel/bg", "button/icon_cancel/bg_pressed", "button/icon_cancel/bg_disabled", "button/icon_cancel/icon", "button/icon_cancel/icon_pressed", "button/icon_cancel/icon_disabled", "button/icon_cancel/effect", BUTTON_ICON_WIDTH_INC, BUTTON_ICON_HEIGHT_INC, 0.0, 0.0, 1.0, 1.0, -0.15, -0.15, 1.15, 1.15) /////////////////////////////////////////////////////////////////////////////////////// BUTTON_ICON_STYLES("icon_expand_add", "core_button_add.png", "button/icon_expand_add/bg", "button/icon_expand_add/bg_pressed", "button/icon_expand_add/bg_disabled", "button/icon_expand_add/icon", "button/icon_expand_add/icon_pressed", "button/icon_expand_add/icon_disabled", "button/icon_expand_add/effect", BUTTON_ICON_WIDTH_INC, BUTTON_ICON_HEIGHT_INC, 0.0, 0.0, 1.0, 1.0, -0.15, -0.15, 1.15, 1.15) /////////////////////////////////////////////////////////////////////////////////////// BUTTON_ICON_STYLES("icon_expand_delete", "core_button_delete.png", "button/icon_expand_delete/bg", "button/icon_expand_delete/bg_pressed", "button/icon_expand_delete/bg_disabled", "button/icon_expand_delete/icon", "button/icon_expand_delete/icon_pressed","button/icon_expand_delete/icon_disabled", "button/icon_expand_delete/effect", BUTTON_ICON_WIDTH_INC, BUTTON_ICON_HEIGHT_INC, 0.0, 0.0, 1.0, 1.0, -0.15, -0.15, 1.15, 1.15) /////////////////////////////////////////////////////////////////////////////////////// BUTTON_ICON_STYLES("calendar/decrease/default", "core_date_picker_arrow_l.png", "calendar/default/bg_prev_button", "calendar/default/bg_prev_button_pressed", "calendar/default/bg_prev_button_disabled", "calendar/default/icon_prev_button", "calendar/default/icon_prev_button_pressed", "calendar/default/icon_prev_button_disabled", "calendar/default/effect_prev_button", BUTTON_CALENDAR_DATE_PICKER_LEFT_RIGHT_ARROW_WIDTH_INC, BUTTON_CALENDAR_DATE_PICKER_LEFT_RIGHT_ARROW_HEIGHT_INC, 0.15, 0.15, 0.85, 0.85, 0.0, 0.0, 1.0, 1.0) BUTTON_ICON_STYLES("calendar/increase/default", "core_date_picker_arrow_r.png", "calendar/default/bg_next_button", "calendar/default/bg_next_button_pressed", "calendar/default/bg_next_button_disabled", "calendar/default/icon_next_button", "calendar/default/icon_next_button_pressed", "calendar/default/icon_next_button_disabled", "calendar/default/effect_next_button", BUTTON_CALENDAR_DATE_PICKER_LEFT_RIGHT_ARROW_WIDTH_INC, BUTTON_CALENDAR_DATE_PICKER_LEFT_RIGHT_ARROW_HEIGHT_INC, 0.15, 0.15, 0.85, 0.85, 0.0, 0.0, 1.0, 1.0) /////////////////////////////////////////////////////////////////////////////////////// group { "elm/button/base/contacts"; data { item: "focus_highlight" "on"; } images { set { name: "core_list_button_bg.#"; image { image: SMALL"images/User_Input_Elements/core_list_button_bg.#.png" COMP; } image { image: MEDIUM"images/User_Input_Elements/core_list_button_bg.#.png" COMP; } } } script { public button_state = 0; public mouse_down = 0; public multi_down = 0; } parts { spacer { "button_image_base"; scale; desc { "default"; rel1 { to_x: "padding.left"; to_y: "elm.text"; } rel2 { to_x: "padding.right"; to_y: "elm.text"; } min: 0 BUTTON_MIN_HEIGHT_INC; max: -1 BUTTON_MIN_HEIGHT_INC; } } image { "button_image"; scale; desc { "default"; rel1.to: "button_image_base"; rel2.to: "button_image_base"; image.normal: "core_list_button_bg.#"; color: 38 107 191 255; } desc { "pressed"; inherit: "default"; color: 30 85 153 255; } desc { "disabled"; inherit: "default"; color: 76 128 191 255; } } spacer { "padding.left"; scale; desc { "default"; min: BUTTON_PADDING_LEFT_RIGHT_INC 0; fixed: 1 0; rel2 { relative: 0.0 1.0; to_x: "elm.text"; } align: 1.0 0.0; } } spacer { "padding.right"; scale; desc { "default"; min: BUTTON_PADDING_LEFT_RIGHT_INC 0; fixed: 1 0; rel1 { relative: 1.0 0.0; to_x: "elm.text"; } align: 0.0 0.0; } } textblock { "elm.text"; nomouse; scale; desc { "default"; hid; fixed: 1 1; text { style: "button_contacts"; min: 1 1; } } desc { "visible"; inherit: "default"; vis; min: 1 1; } desc { "pressed"; inherit: "visible"; text { style: "button_contacts_press"; } } desc { "disabled"; inherit: "default"; } desc { "disabled_visible"; inherit: "visible"; text { style: "button_contacts_dim"; min: 1 1; } } } rect { "over1"; nomouse; desc { "default"; rel2.relative: 1.0 0.5; color: 0 0 0 0; } } rect { "over2"; repeat; ignore_flags: ON_HOLD; desc { "default"; rel1.to: "button_image_base"; rel2.to: "button_image_base"; color: 0 0 0 0; } } rect { "over3"; repeat; desc { "default"; rel1.to: "button_image_base"; rel2.to: "button_image_base"; color: 0 0 0 0; } } rect { "disabler"; desc { "default"; rel1.to: "button_image_base"; rel2.to: "button_image_base"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } programs { program { "button_press"; signal: "mouse,down,1*"; source: "over3"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { set_int(mouse_down, 1); run_program(PROGRAM:"button_press2"); } } } program { "button_press2"; action: SIGNAL_EMIT "elm,action,press" ""; after: "button_press_anim"; } program { "button_press_anim"; action: STATE_SET "pressed"; target: "button_image"; target: "elm.text"; } program { "key_press"; signal: "elm,action,pressed"; source: "elm"; script { new st[31]; new Float:vl; set_state(PART:"button_image", "pressed", 0.0); get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) set_state(PART:"elm.text", "pressed", 0.0); } } program { "key_unpress"; signal: "elm,action,unpressed"; source: "elm"; script { new st[31]; new Float:vl; set_state(PART:"button_image", "default", 0.0); get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "pressed")) set_state(PART:"elm.text", "visible", 0.0); } } program { "button_unpress"; signal: "mouse,up,1*"; source: "over3"; script { new st[31]; new Float:vl; if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "pressed") ) { emit("elm,action,default,text,set", ""); set_state(PART:"elm.text", "visible", 0.0); } if (get_int(button_state) != 1) set_state(PART:"button_image", "default", 0.0); run_program(PROGRAM:"button_unpress2"); } } } program { "button_unpress2"; action: SIGNAL_EMIT "elm,action,unpress" ""; } program { "button_click"; signal: "mouse,clicked,1"; source: "over3"; script { if (get_int(multi_down) == 0) { run_program(PROGRAM:"play_sound"); run_program(PROGRAM:"button_click2"); } } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "button_click2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { if (get_int(button_state) != 1) set_state(PART:"elm.text", "visible", 0.0); else set_state(PART:"elm.text", "disabled_visible", 0.0); } } program { "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; action: STATE_SET "default"; target: "elm.text"; } program { "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled"; target: "button_image"; target: "disabler"; after: "disable_text"; } program { "disable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) set_state(PART:"elm.text", "disabled_visible", 0.0); else set_state(PART:"elm.text", "disabled", 0.0); set_int(button_state, 1); } } program { "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default"; target: "button_image"; target: "disabler"; after: "enable_text"; } program { "enable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "disabled_visible")) set_state(PART:"elm.text", "visible", 0.0); else set_state(PART:"elm.text", "default", 0.0); set_int(button_state, 0); } } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"over1", 0); set_mouse_events(PART:"over2", 0); set_mouse_events(PART:"over3", 0); set_mouse_events(PART:"disabler", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"over1", 1); set_mouse_events(PART:"over2", 1); set_mouse_events(PART:"over3", 1); set_mouse_events(PART:"disabler", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"over1", 1); set_repeat_events(PART:"over2", 1); set_repeat_events(PART:"over3", 1); set_repeat_events(PART:"disabler", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"over1", 0); set_repeat_events(PART:"over2", 0); set_repeat_events(PART:"over3", 0); set_repeat_events(PART:"disabler", 0); } } } } group { "elm/button/base/naviframe/title_done"; alias: "elm/button/base/tizen_view/title_done"; script { public mouse_down = 0; public multi_down = 0; public check_disabled = 0; } images { set { name: "core_title_button_bg"; image { image: SMALL"images/Old/core_title_button_bg.png" COMP; } image { image: MEDIUM"images/Old/core_title_button_bg.png" COMP; } } set { name: "core_title_icon_done"; image { image: SMALL"images/Old/core_title_icon_done.png" COMP; } image { image: MEDIUM"images/Old/core_title_icon_done.png" COMP; } } } parts { spacer { "base"; scale; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_BUTTON_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_BUTTON_SIZE_INC; fixed: 1 1; } } image { "button_bg"; scale; nomouse; clip: "button_bg_clipper"; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_SIZE_INC; fixed: 1 1; image.normal: "core_title_button_bg"; color: 255 255 255 255; } desc { "pressed"; inherit: "default"; color: 104 141 186 255; } desc { "disabled"; inherit: "default"; color: 43 93 155 255; } } rect { "button_bg_clipper"; nomouse; desc { "default"; rel1.to: "button_bg"; rel2.to: "button_bg"; color: 255 255 255 255; } desc { "pressed"; inherit: "default"; color: 104 141 186 255; } desc { "disabled"; inherit: "default"; color: 43 93 155 255; } } image { "button_icon"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_BUTTON_IMAGE_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_BUTTON_IMAGE_SIZE_INC; fixed: 1 1; image.normal: "core_title_icon_done"; color: 52 158 91 255; } desc { "pressed"; inherit: "default"; color: 2 61 132 255; } desc { "disabled"; inherit: "default"; color: 2 61 132 255; } } rect { "over2"; ignore_flags: ON_HOLD; desc { "default"; rel1.to: "base"; rel2.to: "base"; color: 0 0 0 0; } } rect { "over3"; repeat; desc { "default"; rel1.to: "base"; rel2.to: "base"; color: 0 0 0 0; } } rect { "disabler"; desc { "default"; rel1.to: "base"; rel2.to: "base"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } programs { program { "button_press"; signal: "mouse,down,1*"; source: "over2"; script { if ((get_int(check_disabled) == 0) && (get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { set_int(mouse_down, 1); set_state(PART:"button_bg_clipper", "pressed", 0.0); set_state(PART:"button_bg", "pressed", 0.0); set_state(PART:"button_icon", "pressed", 0.0); emit("elm,action,press", ""); } } } program { "button_unpress"; signal: "mouse,up,1*"; source: "over3"; script { if ((get_int(check_disabled) == 0) && (get_int(mouse_down) == 1)) { set_int(mouse_down, 0); set_state(PART:"button_bg_clipper", "default", 0.0); set_state(PART:"button_bg", "default", 0.0); set_state(PART:"button_icon", "default", 0.0); emit("elm,action,unpress", ""); } } } program { "button_click"; signal: "mouse,clicked,1"; source: "over2"; script { if ((get_int(check_disabled) == 0) && (get_int(multi_down) == 0)) { run_program(PROGRAM:"play_sound"); emit("elm,action,click", ""); } } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "key_press"; signal: "elm,action,pressed"; source: "elm"; script { if (get_int(check_disabled) == 0) { set_state(PART:"button_bg", "pressed", 0.0); set_state(PART:"button_icon", "pressed", 0.0); set_state(PART:"button_bg_clipper", "pressed", 0.0); } } } program { "key_unpress"; signal: "elm,action,unpressed"; source: "elm"; script { if (get_int(check_disabled) == 0) { set_state(PART:"button_bg", "default", 0.0); set_state(PART:"button_icon", "default", 0.0); set_state(PART:"button_bg_clipper", "default", 0.0); } } } program { "enable"; signal: "elm,state,enabled"; source: "elm"; script { set_int(check_disabled, 0); set_state(PART:"button_bg", "default", 0.0); set_state(PART:"button_icon", "default", 0.0); set_state(PART:"button_bg_clipper", "default", 0.0); } } program { "disable"; signal: "elm,state,disabled"; source: "elm"; script { set_int(check_disabled, 1); set_state(PART:"button_bg", "disabled", 0.0); set_state(PART:"button_icon", "disabled", 0.0); set_state(PART:"button_bg_clipper", "disabled", 0.0); } } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"over2", 0); set_mouse_events(PART:"over3", 0); set_mouse_events(PART:"disabler", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"over2", 1); set_mouse_events(PART:"over3", 1); set_mouse_events(PART:"disabler", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"over2", 1); set_repeat_events(PART:"over3", 1); set_repeat_events(PART:"disabler", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"over2", 0); set_repeat_events(PART:"over3", 0); set_repeat_events(PART:"disabler", 0); } } } } group { "elm/button/base/naviframe/title_cancel"; alias: "elm/button/base/tizen_view/title_cancel"; inherit: "elm/button/base/naviframe/title_done"; images { set { name: "core_title_icon_cancel"; image { image: SMALL"images/Old/core_title_icon_cancel.png" COMP; } image { image: MEDIUM"images/Old/core_title_icon_cancel.png" COMP; } } } parts { image { "button_icon"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_BUTTON_IMAGE_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_BUTTON_IMAGE_SIZE_INC; fixed: 1 1; image.normal: "core_title_icon_cancel"; color: 224 33 33 255; } desc { "pressed"; inherit: "default"; color: 2 61 132 255; } desc { "disabled"; inherit: "default"; color: 2 61 132 255; } } } } group { "elm/button/base/naviframe/title_left"; alias: "elm/button/base/tizen_view/title_left"; images { vector: "core_press_top_left.svg"; vector: "core_press_top_right.svg"; vector: "core_press_bottom_left.svg"; vector: "core_press_bottom_right.svg"; vector: "core_press_center.svg"; } target_group: "bg_effect_vector" "bg_effect_top_left" "bg_effect_top_right" "bg_effect_bottom_left" "bg_effect_bottom_right"; parts { spacer { "base"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_MIN_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_MAX_SIZE_INC; fixed: 1 1; } } spacer { "padding_bg"; scale; desc { "default"; fixed: 1 0; rel.to: "base"; rel1.relative: 0.0 0.0; rel2.relative: 0.0 1.0; min: NAVIFRAME_TITLE_LEFT_EFFECT_PADDING_WIDTH_INC 0; align: 0.0 0.5; } } spacer { "bg_spacer"; scale; desc { "default"; fixed: 1 1; rel1.to: "padding_bg"; rel2.to: "padding_bg"; rel1.relative: 1.0 0.0; rel2.relative: 1.0 1.0; align: 0.0 0.5; min: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_EFFECT_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_EFFECT_SIZE_INC; } } BUTTON_VECTOR_PART(NAVIFRAME_TITLE_BUTTON_CORNER_RADIUS , 0.7 , "bg", "clipper_bg" , "core_press_top_left.svg", "core_press_top_right.svg" , "core_press_center.svg" , "core_press_bottom_left.svg", "core_press_bottom_right.svg"); swallow { "bg"; scale; nomouse; clip: "clipper_bg"; desc { "default"; rel.to: "bg_spacer"; } } rect { "clipper_bg"; scale; desc { "default"; color_class: "button/naviframe/title_left/bg"; } desc { "pressed"; color_class: "button/naviframe/title_left/bg_pressed"; } desc { "disabled"; color_class: "button/naviframe/title_left/bg_disabled"; } } spacer { "effect_spacer"; scale; desc { "default"; rel.to: "bg"; } } BUTTON_VECTOR_PART(NAVIFRAME_TITLE_BUTTON_CORNER_RADIUS , 0.7 , "bg_effect", "clipper_bg_effect" , "core_press_top_left.svg", "core_press_top_right.svg" , "core_press_center.svg" , "core_press_bottom_left.svg", "core_press_bottom_right.svg"); //Effect Shape Part swallow { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; fixed: 1 1; rel1.to: "effect_spacer"; rel2.to: "effect_spacer"; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; } desc { "ready"; inherit: "default"; } desc { "pressed"; inherit: "default"; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } rect { "clipper_bg_effect"; desc { "default"; fixed: 1 1; rel.to: "bg_effect"; color: 0 0 0 0; color_class: "button/naviframe/title_left/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } spacer { "padding_left"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_LEFT_PADDING_WIDTH_INC 0; max: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_LEFT_PADDING_WIDTH_INC -1; align: 0.0 0.0; fixed: 1 0; rel1 { to: "base"; relative: 0.0 0.0; } rel2 { to: "base"; relative: 0.0 1.0; } } } spacer { "padding_right"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_RIGHT_PADDING_WIDTH_INC 0; max: BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_RIGHT_PADDING_WIDTH_INC -1; align: 1.0 0.0; fixed: 1 0; rel1 { to: "base"; relative: 1.0 0.0; } rel2 { to: "base"; relative: 1.0 1.0; } } } textblock { "elm.text"; scale; nomouse; desc { "default"; rel1 { to_x: "padding_left"; relative: 1.0 0.5; } rel2 { to_x: "padding_right"; relative: 0.0 0.5; } min: 0 BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_TEXT_HEIGHT_INC; max: -1 BUTTON_NAVIFRAME_TITLE_LEFT_BUTTON_TEXT_HEIGHT_INC; fixed: 0 1; text { style: "button_naviframe_title_left_text_normal"; min: 0 1; } } desc { "pressed"; inherit: "default"; text.style: "button_naviframe_title_left_text_pressed"; } desc { "disabled"; inherit: "default"; text.style: "button_naviframe_title_left_text_disabled"; } desc { "default_rtl"; inherit: "default"; text { style: "button_naviframe_title_right_text_normal"; min: 0 1; } } desc { "pressed_rtl"; inherit: "default_rtl"; text.style: "button_naviframe_title_right_text_pressed"; } desc { "disabled_rtl"; inherit: "default_rtl"; text.style: "button_naviframe_title_right_text_disabled"; } } } inherit: "elm/button/event/default"; script { public mouse_down = 0; public multi_down = 0; public disabled = 0; public animate = 0; public minw = 0; public minh = 0; public get_effect_min_size(base_effect, Float:ratio, min_w, min_h) { new x, y, w, h; get_geometry(base_effect, x, y, w, h); if (w > h) { set_float(min_w, (w - h * (1 - ratio)) / w); set_float(min_h, ratio); } else { set_float(min_w, ratio); set_float(min_h, (h - w * (1 - ratio)) / h); } } BUTTON_VECTOR_PART_MIRRORED_VALUE } program_remove: "unpressed"; program_remove: "clicked"; programs { program { "on_pressed"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { new Float:rel_w, Float:rel_h; stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); set_int(animate, 1); custom_state(PART:"bg_effect", "ready", 0.0); get_effect_min_size(PART:"effect_spacer", 0.7, minw, minh); rel_w = (1 - get_float(minw)) / 2; rel_h = (1 - get_float(minh)) / 2; set_state_val(PART:"bg_effect", STATE_REL1, rel_w, rel_h); set_state_val(PART:"bg_effect", STATE_REL2, 1 - rel_w, 1 - rel_h); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(disabled) == 0) { if (get_int(animate) == 0) { run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"bg_effect", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); if (get_int(rtl_mode) == 0) { set_state(PART:"elm.text", "pressed", 0.0); } else { set_state(PART:"elm.text", "pressed_rtl", 0.0); } set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } emit("elm,action,unpress", ""); } } } } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(multi_down) == 0) { if (get_int(disabled) == 0) { run_program(PROGRAM:"play_sound"); run_program(PROGRAM:"clicked_signal"); } } } } program { "on_enabled"; signal: "elm,state,enabled"; source: "elm"; script { set_int(disabled, 0); set_state(PART:"clipper_bg", "default", 0.0); if (get_int(rtl_mode) == 0) { set_state(PART:"elm.text", "default", 0.0); } else { set_state(PART:"elm.text", "default_rtl", 0.0); } } } program { "on_disabled"; signal: "elm,state,disabled"; source: "elm"; script { set_int(disabled, 1); if (get_int(animate) == 1) return; set_state(PART:"clipper_bg", "disabled", 0.0); if (get_int(rtl_mode) == 0) { set_state(PART:"elm.text", "disabled", 0.0); } else { set_state(PART:"elm.text", "disabled_rtl", 0.0); } } } program { "pressed_effect"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","default") BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","hidden") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","default") BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","hidden") } set_state(PART:"clipper_bg_effect", "ready", 0.0); set_state(PART:"bg_effect", "custom", 0.0); run_program(PROGRAM:"pressed_effect2"); } } program { "pressed_effect2"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","pressed") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","pressed") } run_program(PROGRAM:"pressed_effect2_1"); if(get_int(rtl_mode) == 0) { run_program(PROGRAM:"pressed_effect2_2"); } else { run_program(PROGRAM:"pressed_effect2_2_rtl"); } } } program { "pressed_effect2_1"; action: STATE_SET "pressed"; target: "clipper_bg_effect"; target: "bg_effect"; transition: GLIDE_EASE_OUT(0.15); } program { "pressed_effect2_2"; action: STATE_SET "pressed"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.15); after: "pressed_effect3"; } program { "pressed_effect2_2_rtl"; action: STATE_SET "pressed_rtl"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.15); after: "pressed_effect3"; } program { "pressed_effect3"; script { set_state(PART:"clipper_bg", "pressed", 0.0); set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { if (get_int(disabled) == 0) { if (get_int(rtl_mode) == 0) { run_program(PROGRAM:"unpressed_effect2"); } else { run_program(PROGRAM:"unpressed_effect2_rtl"); } run_program(PROGRAM:"unpressed_effect3"); } else { if (get_int(rtl_mode) == 0) { run_program(PROGRAM:"disabled_effect"); } else { run_program(PROGRAM:"disabled_effect_rtl"); } run_program(PROGRAM:"disabled_effect2"); } } } program { "unpressed_effect2"; action: STATE_SET "default"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect2_rtl"; action: STATE_SET "default_rtl"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect3"; action: STATE_SET "ready"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "disabled_effect"; action: STATE_SET "disabled"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_effect_rtl"; action: STATE_SET "disabled_rtl"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "disabled_effect2"; action: STATE_SET "ready"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); after: "finished_animation"; } program { "finished_animation"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","default") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","default") } set_state(PART:"clipper_bg_effect", "default", 0.0); set_state(PART:"clipper_bg", "default", 0.0); set_state(PART:"bg_effect", "default", 0.0); } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } BUTTON_VECTOR_PART_MIRRORED_PROGRAM(""); } } group { "elm/button/base/naviframe/title_right"; alias: "elm/button/base/tizen_view/title_right"; inherit: "elm/button/base/naviframe/title_left"; parts { spacer { "base"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_MIN_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_MAX_SIZE_INC; fixed: 1 1; } } spacer { "padding_bg"; scale; desc { "default"; fixed: 1 0; rel.to: "base"; rel1.relative: 1.0 0.0; rel2.relative: 1.0 1.0; min: NAVIFRAME_TITLE_RIGHT_EFFECT_PADDING_WIDTH_INC 0; align: 1.0 0.5; } } spacer { "bg_spacer"; scale; desc { "default"; fixed: 1 1; rel1.to: "padding_bg"; rel2.to: "padding_bg"; rel1.relative: 0.0 0.0; rel2.relative: 0.0 1.0; align: 1.0 0.5; min: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_EFFECT_SIZE_INC; max: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_EFFECT_SIZE_INC; } } rect { "clipper_bg"; scale; desc { "default"; color_class: "button/naviframe/title_right/bg"; } desc { "pressed"; color_class: "button/naviframe/title_right/bg_pressed"; } desc { "disabled"; color_class: "button/naviframe/title_right/bg_disabled"; } } //Effect Shape Part rect { "clipper_bg_effect"; desc { "default"; fixed: 1 1; rel.to: "bg_effect"; color: 0 0 0 0; color_class: "button/naviframe/title_right/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } spacer { "padding_left"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_LEFT_PADDING_WIDTH_INC 0; max: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_LEFT_PADDING_WIDTH_INC -1; align: 0.0 0.0; fixed: 1 0; rel1 { to: "base"; relative: 0.0 0.0; } rel2 { to: "base"; relative: 0.0 1.0; } } } spacer { "padding_right"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_RIGHT_PADDING_WIDTH_INC 0; max: BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_RIGHT_PADDING_WIDTH_INC -1; align: 1.0 0.0; fixed: 1 0; rel1 { to: "base"; relative: 1.0 0.0; } rel2 { to: "base"; relative: 1.0 1.0; } } } textblock { "elm.text"; scale; nomouse; desc { "default"; rel1 { to_x: "padding_left"; relative: 1.0 0.5; } rel2 { to_x: "padding_right"; relative: 0.0 0.5; } min: 0 BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_TEXT_HEIGHT_INC; max: -1 BUTTON_NAVIFRAME_TITLE_RIGHT_BUTTON_TEXT_HEIGHT_INC; fixed: 0 1; text { style: "button_naviframe_title_right_text_normal"; min: 0 1; } } desc { "pressed"; inherit: "default"; text.style: "button_naviframe_title_right_text_pressed"; } desc { "disabled"; inherit: "default"; text.style: "button_naviframe_title_right_text_disabled"; } desc { "default_rtl"; inherit: "default"; text { style: "button_naviframe_title_left_text_normal"; min: 0 1; } } desc { "pressed_rtl"; inherit: "default_rtl"; text.style: "button_naviframe_title_left_text_pressed"; } desc { "disabled_rtl"; inherit: "default_rtl"; text.style: "button_naviframe_title_left_text_disabled"; } } } } group { "elm/button/base/naviframe/back_btn/default"; alias: "elm/button/base/tizen_view/prev_btn"; alias: "elm/button/base/naviframe/end_btn/default"; images { vector: "core_press_top_left.svg"; vector: "core_press_top_right.svg"; vector: "core_press_bottom_left.svg"; vector: "core_press_bottom_right.svg"; vector: "core_press_center.svg"; } target_group: "bg_effect_vector" "bg_effect_top_left" "bg_effect_top_right" "bg_effect_bottom_left" "bg_effect_bottom_right"; images { set { name: "core_icon_back"; image { image: SMALL"images/Navigation_elements/core_icon_back.png" COMP; } image { image: MEDIUM"images/Navigation_elements/core_icon_back.png" COMP; } } } parts { spacer { "base"; scale; nomouse; desc { "default"; min: BUTTON_NAVIFRAME_BACK_BUTTON_SIZE_INC; max: BUTTON_NAVIFRAME_BACK_BUTTON_SIZE_INC; fixed: 1 1; } } spacer { "bg_spacer"; scale; desc { "default"; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; min: BUTTON_NAVIFRAME_BACK_BUTTON_EFFECT_MAX_SIZE_INC; max: BUTTON_NAVIFRAME_BACK_BUTTON_EFFECT_MAX_SIZE_INC; } } BUTTON_VECTOR_PART(BUTTON_NAVIFRAME_BACK_CORNER_RADIUS , 0.7 , "bg", "clipper_bg" , "core_press_top_left.svg", "core_press_top_right.svg" , "core_press_center.svg" , "core_press_bottom_left.svg", "core_press_bottom_right.svg"); swallow { "bg"; scale; nomouse; clip: "clipper_bg"; desc { "default"; rel.to: "bg_spacer"; } } rect { "clipper_bg"; scale; desc { "default"; color_class: "button/naviframe/back_btn/bg"; } desc { "pressed"; color_class: "button/naviframe/back_btn/bg_pressed"; } desc { "disabled"; color_class: "button/naviframe/back_btn/bg_disabled"; } } spacer { "effect_spacer"; scale; desc { "default"; rel.to: "bg"; } } BUTTON_VECTOR_PART(BUTTON_NAVIFRAME_BACK_CORNER_RADIUS , 0.7 , "bg_effect", "clipper_bg_effect" , "core_press_top_left.svg", "core_press_top_right.svg" , "core_press_center.svg" , "core_press_bottom_left.svg", "core_press_bottom_right.svg"); //Effect Shape Part swallow { "bg_effect"; clip: "clipper_bg_effect"; scale; desc { "default"; fixed: 1 1; rel1.to: "effect_spacer"; rel2.to: "effect_spacer"; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; } desc { "ready"; inherit: "default"; } desc { "pressed"; inherit: "default"; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } rect { "clipper_bg_effect"; desc { "default"; fixed: 1 1; rel.to: "bg_effect"; color: 0 0 0 0; color_class: "button/naviframe/back_btn/effect"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } image { "icon"; scale; nomouse; clip: "clipper_icon"; desc { "default"; min: BUTTON_NAVIFRAME_BACK_BUTTON_SIZE_INC; max: BUTTON_NAVIFRAME_BACK_BUTTON_SIZE_INC; fixed: 1 1; image.normal: "core_icon_back"; } desc { "rtl"; inherit: "default"; map.on: 1; map.rotation.y: 180.0; } } rect { "clipper_icon"; scale; desc { "default"; color_class: "button/naviframe/back_btn/icon"; } desc { "pressed"; color_class: "button/naviframe/back_btn/icon_pressed"; } desc { "disabled"; color_class: "button/naviframe/back_btn/icon_disabled"; } } } inherit: "elm/button/event/default"; script { public mouse_down = 0; public multi_down = 0; public animate = 0; public disabled = 0; public minw = 0; public minh = 0; public get_effect_min_size(base_effect, Float:ratio, min_w, min_h) { new x, y, w, h; get_geometry(base_effect, x, y, w, h); if (w > h) { set_float(min_w, (w - h * (1 - ratio)) / w); set_float(min_h, ratio); } else { set_float(min_w, ratio); set_float(min_h, (h - w * (1 - ratio)) / h); } } BUTTON_VECTOR_PART_MIRRORED_VALUE } program_remove: "unpressed"; program_remove: "clicked"; programs { program { "on_pressed"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { new Float:rel_w, Float:rel_h; stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); set_int(animate, 1); custom_state(PART:"bg_effect", "ready", 0.0); get_effect_min_size(PART:"effect_spacer", 0.7, minw, minh); rel_w = (1 - get_float(minw)) / 2; rel_h = (1 - get_float(minh)) / 2; set_state_val(PART:"bg_effect", STATE_REL1, rel_w, rel_h); set_state_val(PART:"bg_effect", STATE_REL2, 1 - rel_w, 1 - rel_h); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(disabled) == 0) { if (get_int(animate) == 0) { run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"bg_effect", "pressed", 0.0); set_state(PART:"clipper_bg_effect", "pressed", 0.0); set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } emit("elm,action,unpress", ""); } } } } program { "clicked"; signal: "mouse,clicked,1"; source: "event"; script { if ((get_int(multi_down) == 0) && (get_int(disabled) == 0)) { run_program(PROGRAM:"play_sound"); run_program(PROGRAM:"clicked_signal"); } } } program { "on_enabled"; script { set_int(disabled, 0); set_state(PART:"clipper_bg", "default", 0.0); set_state(PART:"clipper_icon", "default", 0.0); } } program { "on_disabled"; script { set_int(disabled, 1); if (get_int(animate) == 1) return; set_state(PART:"clipper_bg", "disabled", 0.0); set_state(PART:"clipper_icon", "disabled", 0.0); } } program { "pressed_effect"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","default") BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","hidden") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","default") BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","hidden") } set_state(PART:"clipper_bg_effect", "ready", 0.0); set_state(PART:"bg_effect", "custom", 0.0); run_program(PROGRAM:"pressed_effect2"); } } program { "pressed_effect2"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","pressed") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","pressed") } run_program(PROGRAM:"pressed_effect2_1"); } } program { "pressed_effect2_1"; action: STATE_SET "pressed"; target: "clipper_bg_effect"; target: "bg_effect"; target: "clipper_icon"; transition: GLIDE_EASE_OUT(0.15); after: "pressed_effect3"; } program { "pressed_effect3"; script { set_state(PART:"clipper_bg", "pressed", 0.0); set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { run_program(PROGRAM:"unpressed_effect2"); run_program(PROGRAM:"unpressed_effect2_1"); } } program { "unpressed_effect2"; action: STATE_SET "ready"; target: "clipper_bg_effect"; transition: GLIDE_EASE_OUT(0.45); after: "unpressed_effect3"; } program { "unpressed_effect2_1"; action: STATE_SET "default"; target: "clipper_icon"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect3"; script { if(get_int(rtl_mode) == 0) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","","default") } else if(get_int(rtl_mode) == 1) { BUTTON_VECTOR_PART_MIRRORED_SET_STATE("bg_effect","_rtl","default") } set_state(PART:"clipper_bg_effect", "default", 0.0); set_state(PART:"clipper_bg", "default", 0.0); set_state(PART:"bg_effect", "default", 0.0); } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } BUTTON_VECTOR_PART_MIRRORED_PROGRAM("icon") } } group { "elm/button/base/naviframe/drawers"; alias: "elm/button/base/tizen_view/drawers"; images { set { name: "core_icon_drawer"; image { image: SMALL"images/Old/core_icon_drawer.png" COMP; } image { image: MEDIUM"images/Old/core_icon_drawer.png" COMP; } } } script { public mouse_down = 0; public multi_down = 0; } parts { rect { "button_bg"; scale; nomouse; clip: "button_bg_clipper"; desc { "default"; min: BUTTON_NAVIFRAME_DRAWERS_WIDTH_INC 0; max: BUTTON_NAVIFRAME_DRAWERS_WIDTH_INC -1; fixed: 1 0; } } rect { "button_bg_clipper"; nomouse; desc { "default"; rel1.to: "button_bg"; rel2.to: "button_bg"; hid; } desc { "pressed"; inherit: "default"; color: 2 48 104 255; vis; } } image { "button_icon"; scale; nomouse; clip: "button_icon_clipper"; desc { "default"; min: BUTTON_NAVIFRAME_DRAWERS_IMAGE_SIZE_INC; max: BUTTON_NAVIFRAME_DRAWERS_IMAGE_SIZE_INC; fixed: 1 1; align: 0.0 0.5; rel1 { to: "button_bg"; relative: 0.0 0.0; } rel2 { to: "button_bg"; relative: 0.0 1.0; } image.normal: "core_icon_drawer"; } } rect { "button_icon_clipper"; nomouse; desc { "default"; rel1.to: "button_icon"; rel2.to: "button_icon"; color_class: "F043L1i"; } desc { "disabled"; inherit: "default"; color_class: "F043L1iD"; } } rect { "over2"; ignore_flags: ON_HOLD; desc { "default"; rel1.to: "button_bg"; rel2.to: "button_bg"; color: 0 0 0 0; } } rect { "over3"; repeat; desc { "default"; rel1.to: "button_bg"; rel2.to: "button_bg"; color: 0 0 0 0; } } rect { "disabler"; desc { "default"; rel1.to: "button_bg"; rel2.to: "button_bg"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } programs { program { "button_press"; signal: "mouse,down,1*"; source: "over2"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { set_int(mouse_down, 1); set_state(PART:"button_bg_clipper", "pressed", 0.0); emit("elm,action,press", ""); } } } program { "button_unpress"; signal: "mouse,up,1*"; source: "over3"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); set_state(PART:"button_bg_clipper", "default", 0.0); emit("elm,action,unpress", ""); } } } program { "button_click"; signal: "mouse,clicked,1"; source: "over2"; script { if (get_int(multi_down) == 0) { run_program(PROGRAM:"touch_sound"); emit("elm,action,click", ""); } } } program { "touch_sound"; action: RUN_PLUGIN "touch_sound"; } program { "key_press"; signal: "elm,action,pressed"; source: "elm"; action: STATE_SET "pressed"; target: "button_bg_clipper"; } program { "key_unpress"; signal: "elm,action,unpressed"; source: "elm"; action: STATE_SET "default"; target: "button_bg_clipper"; } program { "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default"; target: "button_icon_clipper"; } program { "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled"; target: "button_icon_clipper"; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"over2", 0); set_mouse_events(PART:"over3", 0); set_mouse_events(PART:"disabler", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"over2", 1); set_mouse_events(PART:"over3", 1); set_mouse_events(PART:"disabler", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"over2", 1); set_repeat_events(PART:"over3", 1); set_repeat_events(PART:"disabler", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"over2", 0); set_repeat_events(PART:"over3", 0); set_repeat_events(PART:"disabler", 0); } } } } // FIXME: style for focus UI (and temporally, for ctxpopup) // This style should have focus image for "focus_image" part after the image is added #define BUTTON_DEFAULT_FOCUS_STYLES(style_name) \ group { "elm/button/base/"style_name; \ data { \ item: "focus_highlight" "on"; \ } \ images { \ set { \ name: "core_focus.#"; \ image { \ image: SMALL"images/Presentation_views/core_focus.#.png" COMP; \ } \ image { \ image: MEDIUM"images/Presentation_views/core_focus.#.png" COMP; \ } \ } \ } \ script { \ public mouse_down = 0; \ public multi_down = 0; \ public click_cancel = 0; \ } \ parts { \ swallow { "elm.swallow.content"; \ scale; \ desc { "default"; \ } \ } \ image { "focus_image"; \ scale; \ nomouse; \ repeat; \ desc { "default"; \ image.normal: "core_focus.#"; \ hid; \ } \ desc { "focused"; \ inherit: "default"; \ vis; \ color: 61 185 204 255; \ } \ } \ rect { "over2"; \ repeat; \ ignore_flags: ON_HOLD; \ desc { "default"; \ color: 0 0 0 0; \ } \ } \ rect { "over3"; \ repeat; \ desc { "default"; \ color: 0 0 0 0; \ } \ } \ } \ programs { \ program { "button_press"; \ signal: "mouse,down,1*"; \ source: "over2"; \ script { \ if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \ { \ set_int(mouse_down, 1); \ emit("elm,action,press", ""); \ } \ set_int(click_cancel, 0); \ } \ } \ program { "button_unpress"; \ signal: "mouse,up,1*"; \ source: "over3"; \ script { \ if (get_int(mouse_down) == 1) \ { \ set_int(mouse_down, 0); \ emit("elm,action,unpress", ""); \ } \ } \ } \ program { "button_click"; \ signal: "mouse,clicked,1"; \ source: "over2"; \ script { \ if ((get_int(multi_down) == 0) && (get_int(click_cancel) == 0)) { \ emit("elm,action,click", ""); \ } \ set_int(click_cancel, 0); \ } \ } \ program { "mouse_over"; \ signal: "mouse,pressed,out"; \ source: "over2"; \ script { \ set_int(click_cancel, 1); \ } \ } \ program { "action_focus"; \ signal: "elm,action,focus_highlight,show"; \ source: "elm"; \ action: STATE_SET "focused"; \ target: "focus_image"; \ } \ program { "action_unfocus"; \ signal: "elm,action,focus_highlight,hide"; \ source: "elm"; \ action: STATE_SET "default"; \ target: "focus_image"; \ } \ program { "multi_down"; \ signal: "elm,action,multi,down"; \ source: "elm"; \ script { \ set_int(multi_down, 1); \ } \ } \ program { "multi_up"; \ signal: "elm,action,multi,up"; \ source: "elm"; \ script { \ set_int(multi_down, 0); \ } \ } \ program { "pass_event_enable"; \ signal: "elm,event,pass,enabled"; \ source: "elm"; \ script { \ set_mouse_events(PART:"over2", 0); \ set_mouse_events(PART:"over3", 0); \ } \ } \ program { "pass_event_disable"; \ signal: "elm,event,pass,disabled"; \ source:"elm"; \ script { \ set_mouse_events(PART:"over2", 1); \ set_mouse_events(PART:"over3", 1); \ } \ } \ program { "repeat_event_enable"; \ signal: "elm,event,repeat,enabled"; \ source: "elm"; \ script { \ set_mouse_events(PART:"over2", 1); \ set_mouse_events(PART:"over3", 1); \ } \ } \ program { "repeat_event_disable"; \ signal: "elm,event,repeat,disabled"; \ source:"elm"; \ script { \ set_mouse_events(PART:"over2", 0); \ set_mouse_events(PART:"over3", 0); \ } \ } \ } \ } BUTTON_DEFAULT_FOCUS_STYLES("focus") group { "elm/button/base/option"; images { set { name: "core_title_icon_option"; image { image: SMALL"images/Old/core_title_icon_option.png" COMP; } image { image: MEDIUM"images/Old/core_title_icon_option.png" COMP; } } } script { public mouse_down = 0; public multi_down = 0; } parts { spacer { "bg"; scale; desc { "default"; min: BUTTON_OPTION_MIN_MAX_INC; max: BUTTON_OPTION_MIN_MAX_INC; } } rect { "button_image"; scale; desc { "default"; hid; } desc { "pressed"; inherit: "default"; } desc { "disabled"; inherit: "default"; } desc { "focused"; inherit: "default"; } } image { "option_button"; scale; nomouse; clip: "option_button.clipper"; desc { "default"; min: BUTTON_OPTION_IMAGE_MIN_MAX_INC; max: BUTTON_OPTION_IMAGE_MIN_MAX_INC; align: 0.5 0.5; image.normal: "core_title_icon_option"; } } rect { "option_button.clipper"; desc { "default"; color: 2 61 132 255; } desc { "pressed"; color: 1 43 94 255; } desc { "disabled"; color: 7 7 7 76; } } rect { "over2"; ignore_flags: ON_HOLD; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; color: 0 0 0 0; } } rect { "over3"; repeat; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; color: 0 0 0 0; } } rect { "disabler"; desc { "default"; rel1.to: "bg"; rel2.to: "bg"; color: 0 0 0 0; hid; } desc { "disabled"; inherit: "default"; vis; } } } programs { program { "button_press"; signal: "mouse,down,1*"; source: "over2"; script { if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { set_int(mouse_down, 1); run_program(PROGRAM:"button_press2"); } } } program { "button_press2"; action: SIGNAL_EMIT "elm,action,press" ""; after: "button_press_anim"; } program { "button_press_anim"; action: STATE_SET "pressed"; target: "button_image"; target: "option_button.clipper"; } program { "button_unpress"; signal: "mouse,up,1*"; source: "over3"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); run_program(PROGRAM:"button_unpress2"); run_program(PROGRAM:"button_unpress_anim"); } } } program { "button_unpress2"; action: SIGNAL_EMIT "elm,action,unpress" ""; } program { "button_unpress_anim"; action: STATE_SET "default"; target: "button_image"; target: "option_button.clipper"; } program { "button_click"; signal: "mouse,clicked,1"; source: "over2"; script { if (get_int(multi_down) == 0) { run_program(PROGRAM:"play_sound"); run_program(PROGRAM:"button_click2"); } } } program { "play_sound"; action: RUN_PLUGIN "touch_sound"; } program { "button_click2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled"; target: "button_image"; target: "disabler"; target: "option_button.clipper"; } program { "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default"; target: "button_image"; target: "disabler"; target: "option_button.clipper"; } program { "multi_down"; signal: "elm,action,multi,down"; source: "elm"; script { set_int(multi_down, 1); } } program { "multi_up"; signal: "elm,action,multi,up"; source: "elm"; script { set_int(multi_down, 0); } } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"over2", 0); set_mouse_events(PART:"over3", 0); set_mouse_events(PART:"disabler", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"over2", 1); set_mouse_events(PART:"over3", 1); set_mouse_events(PART:"disabler", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"over2", 1); set_repeat_events(PART:"over3", 1); set_repeat_events(PART:"disabler", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"over2", 0); set_repeat_events(PART:"over3", 0); set_repeat_events(PART:"disabler", 0); } } } } group { "elm/button/base/datetime/ampm/time_layout"; alias: "elm/button/base/datetime/ampm/default"; alias: "elm/button/base/datetime/ampm"; inherit: "elm/button/base/default"; parts { rect { "clipper_opacity"; desc { "default"; color_class: "button/ampm/opacity"; } } spacer { "base"; desc { "default"; min: DATETIME_AMPM_BUTTON_WIDTH_SIZE_INC DATETIME_AMPM_BUTTON_HEIGHT_SIZE_INC; } } image { "bg"; desc { "default"; min: 0 DATETIME_AMPM_BUTTON_HEIGHT_SIZE_INC; } } rect { "clipper_bg"; desc { "default"; color_class: "datetime/time_layout/bg_ampm"; } desc { "pressed"; color_class: "datetime/time_layout/bg_ampm_pressed"; } desc { "disabled"; color_class: "datetime/time_layout/bg_ampm_disabled"; } desc { "unselected"; color_class: "datetime/time_layout/bg_ampm_unselected"; } } rect { "clipper_bg_effect"; desc { "default"; color: 0 0 0 0; color_class: "datetime/time_layout/effect_ampm"; hid; } desc { "ready"; inherit: "default"; vis; } desc { "pressed"; inherit: "ready"; color: 255 255 255 255; } } spacer { "padding_top_left"; desc { "default"; align: 0.0 0.0; fixed: 1 1; rel1.to: "base"; rel2 { to: "base"; relative: 0.0 0.0; } min: DATETIME_AMPM_BUTTON_TOP_LEFT_PADDING_INC; } } spacer { "padding_bottom_right"; desc { "default"; align: 1.0 1.0; fixed: 1 1; rel1 { to: "base"; relative: 1.0 1.0; } rel2.to: "base"; min: DATETIME_AMPM_BUTTON_BOTTOM_RIGHT_PADDING_INC; } } textblock { "elm.text"; desc { "default"; rel1 { to: "padding_top_left"; relative: 1.0 1.0; } rel2 { to: "padding_bottom_right"; relative: 0.0 0.0; } text.style: "button_ampm"; } desc { "pressed"; inherit: "default"; text.style: "button_ampm_press"; } desc { "unselected"; inherit: "default"; text.style: "button_ampm_unselected"; } desc { "disabled"; inherit: "default"; text.style: "button_ampm_dim"; } } } programs { program { "unselected"; signal: "elm,action,button,unselected"; source: "elm"; script { set_int(selected, 0); set_int(animate, 1); set_state(PART:"clipper_bg", "unselected", 0.0); set_state(PART:"elm.text", "unselected", 0.0); } } program { "selected"; signal: "elm,action,button,selected"; source: "elm"; script { set_int(selected, 1); set_state(PART:"clipper_bg", "default", 0.0); if (get_int(animate) == 0) set_state(PART:"elm.text", "default", 0.0); } } program { "unselected_effect"; action: STATE_SET "unselected"; target: "clipper_bg"; target: "elm.text"; transition: GLIDE_EASE_OUT(0.45); } program { "unpressed_effect"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"unpressed_effect_bg_effect"); if (get_int(selected) == 0) run_program(PROGRAM:"unselected_effect"); else run_program(PROGRAM:"unpressed_effect_text"); } else { run_program(PROGRAM:"disabled_unpress_effect_bg_effect"); run_program(PROGRAM:"disabled_unpress_effect_text"); run_program(PROGRAM:"disabled_unpress_effect_icon"); } } } } } group { "elm/button/base/hoversel_vertical_entry/default"; alias: "elm/button/base/hoversel_vertical_entry/entry"; alias: "elm/button/base/hoversel_horizontal_entry/default"; alias: "elm/button/base/hoversel_horizontal_entry/entry"; nomouse; script { public disabled = 0; } parts { spacer { "base"; scale; desc { "default"; min: 0 BUTTON_HOVERSEL_ENTRY_MIN_HEIGHT_INC; } } rect { "bg"; scale; mouse; desc { "default"; rel.to: "base"; color_class: "hoversel_item/default/bg"; } desc { "pressed"; inherit; color_class: "hoversel_item/default/bg_pressed"; } } rect { "effect"; scale; desc { "default"; rel.to: "base"; color: 0 0 0 0; color_class: "hoversel_item/default/effect"; } desc { "pressed"; inherit; color: 255 255 255 255; } } spacer { "padding_left"; scale; desc { "default"; min: BUTTON_HOVERSEL_ENTRY_LEFT_PADDING_INC 0; fixed: 1 0; align: 0.0 0.5; rel1.relative: 0.0 0.0; rel2.relative: 0.0 1.0; } } spacer { "padding_right"; scale; desc { "default"; min: BUTTON_HOVERSEL_ENTRY_RIGHT_PADDING_INC 0; fixed: 1 0; align: 1.0 0.5; rel1.relative: 1.0 0.0; rel2.relative: 1.0 1.0; } } textblock { "sizer_elm.text"; scale; desc { "default"; rel1 { to: "padding_left"; relative: 1.0 0.0; } rel2 { to: "padding_right"; relative: 0.0 1.0; } text { style: "button_hoversel_entry"; min: 1 0; text_source: "elm.text"; } align: 0.0 0.5; hid; } } rect { "clipper_elm.text"; scale; desc { "default"; rel.to: "elm.text"; } desc { "dismissed"; inherit; color: 0 0 0 0; } } textblock { "elm.text"; scale; clip: "clipper_elm.text"; desc { "default"; fixed: 1 1; rel1 { to: "padding_left"; relative: 1.0 0.0; } rel2 { to: "padding_right"; relative: 0.0 1.0; } text.style: "button_hoversel_entry"; } desc { "pressed"; inherit; text.style: "button_hoversel_entry_press"; } desc { "disabled"; inherit; text.style: "button_hoversel_entry_dim"; } } rect { "event"; scale; mouse; desc { "default"; color: 0 0 0 0; } desc { "disabled"; inherit; hid; } } } programs { program { "press"; signal: "mouse,down,1"; source: "event"; script { if (get_int(disabled) == 0) { emit("elm,action,press", ""); set_state(PART:"elm.text", "pressed", 0.0); run_program(PROGRAM:"pressed_effect"); } } } program { "pressed_effect"; action: STATE_SET "pressed"; target: "effect"; transition: LINEAR 0.017; } program { "unpress"; signal: "mouse,up,1"; source: "event"; script { if (get_int(disabled) == 0) { emit("elm,action,unpress", ""); set_state(PART:"elm.text", "default", 0.0); run_program(PROGRAM:"unpressed_effect"); } } } program { "unpressed_effect"; action: STATE_SET "default"; target: "effect"; transition: LINEAR 0.2; in: 0.1 0.0; } program { "dismiss"; signal: "elm,action,dismiss"; source: "elm"; action: STATE_SET "dismissed"; target: "clipper_elm.text"; transition: GLIDE_EASE_OUT(0.15); after: "finished_animation"; } program { "finished_animation"; action: STATE_SET "default"; target: "clipper_elm.text"; in: 0.15 0.0; } program { "click"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"touch_sound"); emit("elm,action,click", ""); } } } program { "disable"; signal: "elm,state,disabled"; source: "elm"; script { set_int(disabled, 1); set_state(PART:"event", "disabled", 0.0); set_state(PART:"elm.text", "disabled", 0.0); } } program { "enable"; signal: "elm,state,enabled"; source: "elm"; script { set_int(disabled, 0); set_state(PART:"event", "default", 0.0); set_state(PART:"elm.text", "default", 0.0); } } program { "touch_sound"; action: RUN_PLUGIN "touch_sound"; } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"event", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"event", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"event", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"event", 0); } } } } group { "elm/button/base/hoversel_vertical/default"; alias: "elm/button/base/hoversel_vertical/entry"; alias: "elm/button/base/hoversel_horizontal/default"; alias: "elm/button/base/hoversel_horizontal/entry"; alias: "elm/button/base/dropdown"; nomouse; images { set { name: "core_dropdown_label_icon_arrow"; image { image: SMALL"images/User_Input_Elements/core_dropdown_label_icon_arrow.png" COMP; } image { image: MEDIUM"images/User_Input_Elements/core_dropdown_label_icon_arrow.png" COMP; } } } script { public disabled = 0; public mouse_down = 0; public animate = 0; } parts { spacer { "base"; scale; desc { "default"; min: 0 BUTTON_HOVERSEL_MIN_HEIGHT_INC; } } rect { "bg"; scale; mouse; desc { "default"; rel.to: "base"; color_class: "hoversel/default/bg"; } desc { "pressed"; inherit; color_class: "hoversel/default/bg_pressed"; } } rect { "effect"; scale; desc { "default"; fixed: 1 1; rel1 { to_x: "underline"; to_y: "base"; } rel2 { to_x: "underline"; to_y: "base"; } color: 0 0 0 0; color_class: "hoversel/default/effect"; } desc { "pressed"; inherit; color: 255 255 255 255; } } spacer { "padding_left"; scale; desc { "default"; min: BUTTON_HOVERSEL_LEFT_PADDING_INC 0; fixed: 1 1; align: 0.0 0.5; rel1.relative: 0.0 0.0; rel2.relative: 0.0 1.0; } desc { "rtl"; inherit; min: BUTTON_HOVERSEL_RIGHT_PADDING_INC 0; } } spacer { "padding_right"; scale; desc { "default"; min: BUTTON_HOVERSEL_RIGHT_PADDING_INC 0; fixed: 1 1; align: 1.0 0.5; rel1.relative: 1.0 0.0; rel2.relative: 1.0 1.0; } desc { "rtl"; inherit; min: BUTTON_HOVERSEL_LEFT_PADDING_INC 0; } } textblock { "elm.text"; scale; desc { "default"; rel1 { to: "padding_left"; relative: 1.0 0.0; } rel2 { to: "padding_right"; relative: 0.0 1.0; } text.style: "button_hoversel"; } desc { "pressed"; inherit: "default"; text.style: "button_hoversel_press"; } desc { "disabled"; inherit: "default"; text.style: "button_hoversel_dim"; } } rect { "underline"; scale; desc { "default"; min: 0 BUTTON_HOVERSEL_UNDERLINE_HEIGHT_INC; fixed: 1 1; align: 0.5 1.0; rel1.relative: 0.0 1.0; rel2.relative: 1.0 1.0; color_class: "hoversel/default/underline"; } } spacer { "padding_underline"; scale; desc { "default"; align: 0.5 1.0; fixed: 1 1; min: 0 BUTTON_HOVERSEL_UNDERLINE_PADDING_INC; rel1 { to: "underline"; relative: 0.0 0.0; } rel2 { to: "underline"; relative: 1.0 0.0; } } } image { "icon"; scale; desc { "default"; min: BUTTON_HOVERSEL_ARROW_ICON_SIZE_INC; fixed: 1 1; align: 1.0 1.0; rel1 { to_y: "padding_underline"; relative: 1.0 0.0; } rel2 { to_y: "padding_underline"; relative: 1.0 0.0; } image.normal: "core_dropdown_label_icon_arrow"; color_class: "hoversel/default/icon"; } desc { "rtl" inherit; align: 0.0 1.0; rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; } } rect { "event"; scale; mouse; desc { "default"; color: 0 0 0 0; } desc { "disabled"; inherit; hid; } } } programs { program { "pressed_effect"; action: STATE_SET "pressed"; targets: "effect" "elm.text" "bg"; transition: LINEAR 0.016; after: "pressed_effect2"; } program { "pressed_effect2"; script { set_int(animate, 0); } } program { "delay_unpressed_effect"; in: 0.1 0.0; after: "unpressed_effect"; } program { "unpressed_effect"; script { if (get_int(disabled) == 0) run_program(PROGRAM:"unpressed_effect2"); else run_program(PROGRAM:"disabled_effect"); run_program(PROGRAM:"unpressed_effect3"); } } program { "unpressed_effect2"; action: STATE_SET "default"; target: "elm.text"; transition: LINEAR 0.2; } program { "disabled_effect"; action: STATE_SET "disabled"; target: "elm.text"; transition: LINEAR 0.2; } program { "unpressed_effect3"; action: STATE_SET "default"; target: "effect"; transition: LINEAR 0.2; after: "finished_animation"; } program { "finished_animation"; action: STATE_SET "default"; target: "bg"; } program { "pressed"; signal: "mouse,down,1*"; source: "event"; script { if ((get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { stop_program(PROGRAM:"delay_unpressed_effect"); set_int(mouse_down, 1); set_int(animate, 1); emit("elm,action,press", ""); run_program(PROGRAM:"pressed_effect"); } } } program { "unpressed"; signal: "mouse,up,1"; source: "event"; script { if (get_int(mouse_down) == 1) { set_int(mouse_down, 0); if (get_int(disabled) == 0) { if (get_int(animate) == 0) { emit("elm,action,unpress", ""); run_program(PROGRAM:"unpressed_effect"); } else { set_state(PART:"elm.text", "pressed", 0.0); set_state(PART:"bg", "pressed", 0.0); set_state(PART:"effect", "pressed", 0.0); set_int(animate, 0); run_program(PROGRAM:"delay_unpressed_effect"); } emit("elm,action,unpress", ""); } } } } program { "click"; signal: "mouse,clicked,1"; source: "event"; script { if (get_int(disabled) == 0) { run_program(PROGRAM:"touch_sound"); run_program(PROGRAM:"clicked_signal"); } } } program { "disable"; signal: "elm,state,disabled"; source: "elm"; script { set_int(disabled, 1); set_state(PART:"event", "disabled", 0.0); set_state(PART:"elm.text", "disabled", 0.0); } } program { "enable"; signal: "elm,state,enabled"; source: "elm"; script { set_int(disabled, 0); set_state(PART:"event", "default", 0.0); set_state(PART:"elm.text", "default", 0.0); } } program { "touch_sound"; action: RUN_PLUGIN "touch_sound"; } program { "clicked_signal"; in: 0.001 0.0; action: SIGNAL_EMIT "elm,action,click" ""; } program { "pass_event_enable"; signal: "elm,event,pass,enabled"; source: "elm"; script { set_mouse_events(PART:"event", 0); } } program { "pass_event_disable"; signal: "elm,event,pass,disabled"; source:"elm"; script { set_mouse_events(PART:"event", 1); } } program { "repeat_event_enable"; signal: "elm,event,repeat,enabled"; source: "elm"; script { set_repeat_events(PART:"event", 1); } } program { "repeat_event_disable"; signal: "elm,event,repeat,disabled"; source:"elm"; script { set_repeat_events(PART:"event", 0); } } program { signal: "edje,state,rtl"; source: "edje"; action: STATE_SET "rtl"; targets: "icon" "padding_left" "padding_right"; } program { signal: "edje,state,ltr"; source: "edje"; action: STATE_SET "default"; targets: "icon" "padding_left" "padding_right"; } } }