summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSungtaek Hong <sth253.hong@samsung.com>2017-03-28 13:30:35 (GMT)
committerSungtaek Hong <sth253.hong@samsung.com>2017-03-28 13:30:41 (GMT)
commit6c937e8b6408ad295c8d637b1b6b4781feecafc2 (patch)
treed376d7f39b449f819a2e56ad9963855361ef3820
parent176eb42b19be13273101ea473a23e9dc08721df4 (diff)
downloadefl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.zip
efl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.tar.gz
efl-theme-tizen-mobile-6c937e8b6408ad295c8d637b1b6b4781feecafc2.tar.bz2
Sharp: add Opacity clipper in button stylerefs/changes/24/121724/1
- 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.edc93
-rw-r--r--mobile/elm-sharp-theme-mobile.edc1
-rw-r--r--mobile/widgets_csharp/button.edc1359
3 files changed, 1453 insertions, 0 deletions
diff --git a/mobile/color_classes_csharp.edc b/mobile/color_classes_csharp.edc
index ed1aa82..5c122a5 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 d8375a1..ab45189 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 0000000..952a70a
--- /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";
+ }
+ }
+ }
+ }