summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSungtaek Hong <sth253.hong@samsung.com>2017-01-11 22:20:03 +0900
committerSungtaek Hong <sth253.hong@samsung.com>2017-01-11 22:20:03 +0900
commitaccb8bf4853e88b2cd2ea3d6073f45008eada6e4 (patch)
tree850e7019ba00346e9ff1ac2ec1f7daad62f81af7
parentdeb93a04bffe1718092063e6dd1a7b4286648e46 (diff)
downloadelm-sharp-accb8bf4853e88b2cd2ea3d6073f45008eada6e4.tar.gz
elm-sharp-accb8bf4853e88b2cd2ea3d6073f45008eada6e4.tar.bz2
elm-sharp-accb8bf4853e88b2cd2ea3d6073f45008eada6e4.zip
theme: add back_btn
Change-Id: I0283f16ec8cb5f6a59163453f1308281d05ca29a Signed-off-by: Sungtaek Hong <sth253.hong@samsung.com>
-rw-r--r--ElmSharp/theme/tv/HD-inc.edc40
-rw-r--r--ElmSharp/theme/tv/HD/images/Navigation_elements/core_icon_back.pngbin0 -> 1214 bytes
-rw-r--r--ElmSharp/theme/tv/color_classes.edc21
-rw-r--r--ElmSharp/theme/tv/macros.edc340
-rw-r--r--ElmSharp/theme/tv/widgets/button.edc464
5 files changed, 815 insertions, 50 deletions
diff --git a/ElmSharp/theme/tv/HD-inc.edc b/ElmSharp/theme/tv/HD-inc.edc
index 8d34a20..9cb95f2 100644
--- a/ElmSharp/theme/tv/HD-inc.edc
+++ b/ElmSharp/theme/tv/HD-inc.edc
@@ -41,6 +41,21 @@
#define BASE_SCALE_INC 2.0
//****************************************************************************//
+// Button
+//****************************************************************************//
+#define BUTTON_DEFAULT_PAD_SIZE 20 70
+#define BUTTON_DEFAULT_MIN_SIZE 196 70
+#define BUTTON_DEFAULT_FONT_SIZE 28
+#define BUTTON_TEXT_PAD_SIZE 20 45
+#define BUTTON_TEXT_MIN_SIZE 147 45
+#define BUTTON_TEXT_FONT_SIZE 28
+#define BUTTON_BORDER 4 4 4 4
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_SIZE_INC 80 80
+#define BUTTON_NAVIFRAME_BACK_BUTTON_EFFECT_MAX_SIZE_INC 80 80
+#define BUTTON_NAVIFRAME_BACK_CORNER_RADIUS 10
+
+//****************************************************************************//
// Check
//****************************************************************************//
#define CHECK_ONOFF_SIZE_INC 72 72
@@ -206,6 +221,31 @@
tag: "match" "+ color=#3db8cc";
styles {
+ style { name: "button_default";
+ base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text";
+ STYLE_TAGS
+ }
+ style { name: "button_default_focused";
+ base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text_focused";
+ STYLE_TAGS
+ }
+ style { name: "button_default_disabled";
+ base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text_disabled";
+ STYLE_TAGS
+ }
+ style { name: "button_ampm";
+ base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+ STYLE_TAGS
+ }
+ style { name: "button_ampm_dim";
+ base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+ STYLE_TAGS
+ }
+ style { name: "button_ampm_press";
+ base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
+ STYLE_TAGS
+ }
+
style { name: "check_on&off";
base: "color=#FFF color_class=check/on&off/text font=Tizen:weight=Light font_size=40 text_class=tizen ellipsis=1.0";
STYLE_TAGS
diff --git a/ElmSharp/theme/tv/HD/images/Navigation_elements/core_icon_back.png b/ElmSharp/theme/tv/HD/images/Navigation_elements/core_icon_back.png
new file mode 100644
index 0000000..baf1df0
--- /dev/null
+++ b/ElmSharp/theme/tv/HD/images/Navigation_elements/core_icon_back.png
Binary files differ
diff --git a/ElmSharp/theme/tv/color_classes.edc b/ElmSharp/theme/tv/color_classes.edc
index f574d58..c5e74a8 100644
--- a/ElmSharp/theme/tv/color_classes.edc
+++ b/ElmSharp/theme/tv/color_classes.edc
@@ -24,6 +24,27 @@ color_classes {
color_class { "button/default/text_disabled";
color: 89 89 89 102;
}
+ color_class { "button/naviframe/back_btn/bg";
+ color: 0 0 0 0;
+ }
+ color_class { "button/naviframe/back_btn/bg_pressed";
+ color: 0 0 0 0;
+ }
+ color_class { "button/naviframe/back_btn/bg_disabled";
+ color: 0 0 0 0;
+ }
+ color_class { "button/naviframe/back_btn/effect";
+ color: 0 0 0 77;
+ }
+ color_class { "button/naviframe/back_btn/icon";
+ color: 250 250 250 255;
+ }
+ color_class { "button/naviframe/back_btn/icon_pressed";
+ color: 34 104 115 255;
+ }
+ color_class { "button/naviframe/back_btn/icon_disabled";
+ color: 250 250 250 77;
+ }
/*
* Check
*/
diff --git a/ElmSharp/theme/tv/macros.edc b/ElmSharp/theme/tv/macros.edc
index d2678b1..cf5ab47 100644
--- a/ElmSharp/theme/tv/macros.edc
+++ b/ElmSharp/theme/tv/macros.edc
@@ -33,3 +33,343 @@
color3: 255 255 255 255; \
} \
}
+
+#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); \
+ } \
+ } \
+ }
diff --git a/ElmSharp/theme/tv/widgets/button.edc b/ElmSharp/theme/tv/widgets/button.edc
index f62c553..b4e313a 100644
--- a/ElmSharp/theme/tv/widgets/button.edc
+++ b/ElmSharp/theme/tv/widgets/button.edc
@@ -24,48 +24,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#define BUTTON_DEFAULT_PAD_SIZE 20 70
-#define BUTTON_DEFAULT_MIN_SIZE 196 70
-#define BUTTON_DEFAULT_FONT_SIZE 28
-#define BUTTON_TEXT_PAD_SIZE 20 45
-#define BUTTON_TEXT_MIN_SIZE 147 45
-#define BUTTON_TEXT_FONT_SIZE 20
-#define BUTTON_BORDER 4 4 4 4
-
-#define STYLE_TAGS \
- tag: "br" "\n";\
- tag: "ps" "ps";\
- tag: "tab" "\t";\
- tag: "b" "+ font_weight=Bold";
-
-// ************* button text ********** //
-styles {
- style { name: "button_default";
- base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text";
- STYLE_TAGS
- }
- style { name: "button_default_focused";
- base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text_focused";
- STYLE_TAGS
- }
- style { name: "button_default_dim";
- base: "align=center color=#ffffffff font="FONT_M" font_size="BUTTON_TEXT_FONT_SIZE" text_class=button ellipsis=1.0 color_class=button/default/text_disabled";
- STYLE_TAGS
- }
- style { name: "button_ampm";
- base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
- STYLE_TAGS
- }
- style { name: "button_ampm_dim";
- base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
- STYLE_TAGS
- }
- style { name: "button_ampm_press";
- base: "align=center color=#ffffffff font=Tizen:style=Light font_size=40 text_class=tizen";
- STYLE_TAGS
- }
-}
-
/*********************************************************************************
Document: Tizen TV_General Guide_GUI Guideline_v1.0_140430.ppt
Button
@@ -1623,11 +1581,417 @@ group { name: "elm/button/base/spinner/vertical_date_picker";
/***********************SPINNER BUTTONS STYLES******************************/
-#undef BUTTON_DEFAULT_PAD_SIZE
-#undef BUTTON_DEFAULT_MIN_SIZE
-#undef BUTTON_DEFAULT_FONT_SIZE
-#undef BUTTON_TEXT_PAD_SIZE
-#undef BUTTON_TEXT_MIN_SIZE
-#undef BUTTON_TEXT_FONT_SIZE
-#undef BUTTON_BORDER
-#undef STYLE_TAGS
+ 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/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: "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")
+ }
+ }
+