/* * Copyright 2012 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://floralicense.org/license/ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "style_tizen_hd_inc.edc" #define BUTTON_STATE_ENABLED 0 #define BUTTON_STATE_DISABLED 1 collections { ////////////////////////////////////////////////////////////////////////////////////// group { name: "elm/button/base/camera/default"; images { image: "00_button_01_normal.png" COMP; image: "00_button_01_normal_press.png" COMP; image: "00_button_01_normal_dim.png" COMP; image: "00_button_01_normal_Focus.png" COMP; } parts { part { name: "button_image"; scale: 1; description { state: "default" 0.0; image { normal: "00_button_01_normal.png"; border: BUTTON_TEXT_STYLE1_BG_BORDER_INC; border_scale: 1; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "00_button_01_normal_press.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; image.normal: "00_button_01_normal_dim.png"; } description { state: "focused" 0.0; inherit: "default" 0.0; image.normal: "00_button_01_normal_Focus.png"; } } part { name: "padding_left_top"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.0; rel2.relative: 0.0 0.0; min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC; fixed: 1 1; visible: 0; } } part { name: "bg"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; min: BUTTON_TEXT_STYLE1_BG_MIN_INC; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; min: BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC; } description { state: "icononly" 0.0; inherit: "default" 0.0; min: BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC; } } part { name: "padding_right_bottom"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; align: 1.0 1.0; rel1.relative: 1.0 1.0; min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC; fixed: 1 1; visible: 0; } } part { name: "icon_rect"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; visible: 0; min: 0 0; fixed: 1 0; rel1 { relative: 1.0 1.0; to: "padding_left_top"; } rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } align: 0.0 0.5; } description { state: "visible" 0.0; visible: 0; min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC; max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC; fixed: 1 0; rel1 { relative: 1.0 1.0; to: "padding_left_top"; } rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } align: 0.0 0.5; } description { state: "icononly" 0.0; inherit: "default" 0.0; } } part { name: "padding_after_icon"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; //when only icon or no icon is there align: 0.0 0.0; rel1 { relative: 1.0 0.0; to: "icon_rect"; } rel2.to: "icon_rect"; fixed: 1 0; min: 0 0; visible: 0; } description { state: "visible" 0.0; visible: 0; align: 0.0 0.0; rel1 { relative: 1.0 0.0; to: "icon_rect"; } rel2.to: "icon_rect"; fixed: 1 0; min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC; } description { state: "icononly" 0.0; inherit: "default" 0.0; } } part { name: "padding_before_text"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; //when only icon or no icon is there align: 1.0 0.5; rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } fixed: 1 0; min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; clip_to: "clipper"; description { state: "default" 0.0; visible: 0; align: 0.0 0.5; rel1 { relative: 1.0 1.0; to: "padding_left_top"; } rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } fixed: 1 0; } description { state: "visible" 0.0; fixed: 1 0; min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC; max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC; align: 1.0 0.5; rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } } description { state: "icononly" 0.0; min: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC; max: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "clipper"; description { state: "default" 0.0; visible: 0; rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } /*color: BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC;*/ text { font: FONT_NAME; size: 30; align: 0.5 0.5; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 0 0 0 128; } description { state: "disabled_visible" 0.0; inherit: "default" 0.0; color: BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC; visible: 1; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC; } } part { name: "over2"; type: RECT; repeat_events: 1; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } } part { name: "over3"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } part { name: "clipper"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "disabler"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { script { public button_state = BUTTON_STATE_ENABLED; } program { name: "button_click"; signal: "mouse,down,1"; source: "over2"; action: SIGNAL_EMIT "elm,action,press" ""; after: "button_click_anim"; } program { name: "button_click_anim"; action: STATE_SET "clicked" 0.0; target: "button_image"; after: "text_clicked"; } program { name: "text_clicked"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) set_state(PART:"elm.text", "clicked", 0.0); } } program { name: "button_unpress"; action: SIGNAL_EMIT "elm,action,unpress" ""; } program { name: "button_mouseout_clicked"; signal: "mouse,up,1"; source: "over3"; script { new st[31]; new Float:vl; get_state(PART:"elm.swallow.content", st, 30, vl); if (strcmp(st, "icononly")) { emit("elm,action,default,text,set", ""); set_state(PART:"elm.text", "visible", 0.0); } if (get_int(button_state) != BUTTON_STATE_DISABLED) set_state(PART:"button_image", "default", 0.0); } after: button_unpress; } program { name: "button_unclick3"; action: SIGNAL_EMIT "elm,action,click" ""; } program { name: "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { new st[31]; new Float:vl; get_state(PART:"elm.swallow.content", st, 30, vl); if (!strcmp(st, "icononly")) { set_state(PART:"elm.swallow.content", "visible", 0.0); set_state(PART:"icon_rect", "visible", 0.0); set_state(PART:"padding_after_icon", "visible", 0.0); set_state(PART:"bg", "visible", 0.0); } if (get_int(button_state) != BUTTON_STATE_DISABLED) set_state(PART:"elm.text", "visible", 0.0); else set_state(PART:"elm.text", "disabled_visible", 0.0); } } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { new st[31]; new Float:vl; get_state(PART:"elm.swallow.content", st, 30, vl); if (!strcmp(st, "visible")) { set_state(PART:"elm.swallow.content", "icononly", 0.0); set_state(PART:"icon_rect", "icononly", 0.0); set_state(PART:"padding_after_icon", "icononly", 0.0); set_state(PART:"bg", "icononly", 0.0); } set_state(PART:"elm.text", "default", 0.0); } } program { name: "icon_show"; signal: "elm,state,icon,visible"; source: "elm"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) { set_state(PART:"elm.swallow.content", "visible", 0.0); set_state(PART:"icon_rect", "visible", 0.0); set_state(PART:"padding_after_icon", "visible", 0.0); set_state(PART:"bg", "visible", 0.0); } else { set_state(PART:"elm.swallow.content", "icononly", 0.0); set_state(PART:"icon_rect", "icononly", 0.0); set_state(PART:"padding_after_icon", "icononly", 0.0); set_state(PART:"bg", "icononly", 0.0); } } } program { name: "icon_hide"; signal: "elm,state,icon,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.swallow.content"; target: "padding_after_icon"; target: "icon_rect"; target: "bg"; } program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "button_image"; target: "disabler"; after: "disable_text"; } program { name: "disable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) set_state(PART:"elm.text", "disabled_visible", 0.0); else set_state(PART:"elm.text", "disabled", 0.0); set_int(button_state, BUTTON_STATE_DISABLED); } } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "button_image"; target: "disabler"; after: "enable_text"; } program { name: "enable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "disabled_visible")) set_state(PART:"elm.text", "visible", 0.0); else set_state(PART:"elm.text", "default", 0.0); set_int(button_state, BUTTON_STATE_ENABLED); } } program { name: "focused"; //signal: "elm,action,focus"; //source: "elm"; action: STATE_SET "focused" 0.0; target: "button_image"; target: "elm.text"; } program { name: "unfocused"; //signal: "elm,action,unfocus"; //source: "elm"; action: STATE_SET "default" 0.0; target: "button_image"; after: "unfocus_text"; } program { name: "unfocus_text"; action: STATE_SET "visible" 0.0; target: "elm.text"; } } } } //end files