diff options
author | Sungtaek Hong <sth253.hong@samsung.com> | 2017-03-28 22:30:35 +0900 |
---|---|---|
committer | Sungtaek Hong <sth253.hong@samsung.com> | 2017-03-28 22:30:41 +0900 |
commit | 6c937e8b6408ad295c8d637b1b6b4781feecafc2 (patch) | |
tree | d376d7f39b449f819a2e56ad9963855361ef3820 | |
parent | 176eb42b19be13273101ea473a23e9dc08721df4 (diff) | |
download | efl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.tar.gz efl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.tar.bz2 efl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.zip |
Sharp: add Opacity clipper in button style
- Currently, button in layout calculates wrong
geometry in Xamarin application.
- This is temporary patch until the issue is solved.
Change-Id: I499c40b798abc03120b02dee5c659dda3de56a26
Signed-off-by: Sungtaek Hong <sth253.hong@samsung.com>
-rw-r--r-- | mobile/color_classes_csharp.edc | 93 | ||||
-rw-r--r-- | mobile/elm-sharp-theme-mobile.edc | 1 | ||||
-rw-r--r-- | mobile/widgets_csharp/button.edc | 1359 |
3 files changed, 1453 insertions, 0 deletions
diff --git a/mobile/color_classes_csharp.edc b/mobile/color_classes_csharp.edc index ed1aa822..5c122a56 100644 --- a/mobile/color_classes_csharp.edc +++ b/mobile/color_classes_csharp.edc @@ -15,6 +15,99 @@ color_classes { color: 255 255 255 255; } /* + * Button + */ + color_class { "button/default/opacity"; + color: 255 255 255 255; + } + color_class { "button/default/bg"; + color: 82 199 217 255; + } + color_class { "button/default/bg_pressed"; + color: 82 199 217 255; + } + color_class { "button/default/bg_disabled"; + color: 147 208 217 255; + } + color_class { "button/default/text"; + color: 250 250 250 255; + } + color_class { "button/default/text_pressed"; + color: 250 250 250 255; + } + color_class { "button/default/text_disabled"; + color: 250 250 250 163; + } + color_class { "button/default/icon"; + color: 250 250 250 255; + } + color_class { "button/default/icon_pressed"; + color: 250 250 250 255; + } + color_class { "button/default/icon_disabled"; + color: 250 250 250 128; + } + color_class { "button/default/effect"; + color: 0 0 0 77; + } + color_class { "button/circle/bg"; + color: 0 255 0 255; + } + color_class { "button/circle/opacity"; + color: 255 255 255 255; + } + color_class { "button/circle/bg_pressed"; + color: 82 199 217 255; + } + color_class { "button/circle/bg_disabled"; + color: 147 208 217 255; + } + color_class { "button/circle/text"; + color: 0 0 0 222; + } + color_class { "button/circle/text_pressed"; + color: 0 0 0 222; + } + color_class { "button/circle/text_disabled"; + color: 0 0 0 115; + } + color_class { "button/circle/icon"; + color: 250 250 250 255; + } + color_class { "button/circle/icon_pressed"; + color: 250 250 250 255; + } + color_class { "button/circle/icon_disabled"; + color: 250 250 250 128; + } + color_class { "button/circle/effect"; + color: 0 0 0 77; + } + color_class { "button/bottom/opacity"; + color: 255 255 255 255; + } + color_class { "button/bottom/bg"; + color: 0 0 255 255; + } + color_class { "button/bottom/bg_pressed"; + color: 78 97 173 255; + } + color_class { "button/bottom/bg_disabled"; + color: 131 145 201 255; + } + color_class { "button/bottom/text"; + color: 250 250 250 255; + } + color_class { "button/bottom/text_pressed"; + color: 250 250 250 255; + } + color_class { "button/bottom/text_disabled"; + color: 250 250 250 163; + } + color_class { "button/bottom/effect"; + color: 0 0 0 77; + } + /* * Colorselector */ color_class { diff --git a/mobile/elm-sharp-theme-mobile.edc b/mobile/elm-sharp-theme-mobile.edc index d8375a13..ab451892 100644 --- a/mobile/elm-sharp-theme-mobile.edc +++ b/mobile/elm-sharp-theme-mobile.edc @@ -83,6 +83,7 @@ collections { #include "color_classes_csharp.edc" +#include "widgets_csharp/button.edc" #include "widgets_csharp/colorselector.edc" #include "widgets_csharp/entry.edc" #include "widgets_csharp/genlist.edc" diff --git a/mobile/widgets_csharp/button.edc b/mobile/widgets_csharp/button.edc new file mode 100644 index 00000000..952a70a5 --- /dev/null +++ b/mobile/widgets_csharp/button.edc @@ -0,0 +1,1359 @@ +/* + * 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/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"; + } + } + } + } |