TizenRefApp-7258 [Call UI] Fix issue with freezing press effect on display property... 28/89228/2
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Thu, 22 Sep 2016 10:01:40 +0000 (13:01 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Thu, 22 Sep 2016 15:07:48 +0000 (18:07 +0300)
Change-Id: I6e635a535c5982ee2fe5df7bd6550874d812b805

edje_src/edc/call_edc/callui-view-one-hold-in-conference.edc
edje_src/edc/call_edc/callui_view_end_call.edc
res/edje/call_theme.edc
src/callui-display.c
src/callui-listeners-collection.c
src/callui-state-provider.c
src/callui-view-callend.c
src/callui-view-elements.c
src/callui-view-multi-call-split.c
src/callui-window.c
src/callui.c

index bb7e43d..ff535e0 100644 (file)
@@ -51,119 +51,11 @@ styles {
                base: "font="VC_FONT_REGULAR" font_size=34 color=#FFFAFAFF ellipsis=1.0";
        }
        style {
-               name: "ATO008";
-               base: "font="VC_FONT_REGULAR" font_size=27 color=#FFFAFAFF align=center";
-       }
-       style {
                name: "ATO011";
                base: "font="VC_FONT_REGULAR" font_size=40 color=#FFFAFAFF ellipsis=1.0";
        }
 }
 
-#define MERGE_SWAP_BTN(NAME, BG_IMAGE, ICON, BG_COLOR, PRESSED_COLOR) \
-       group { \
-               name: NAME; \
-               images.image: ICON COMP; \
-               parts { \
-                       part { name: "bg"; \
-                               type: IMAGE; \
-                               scale: 1; \
-                               description { \
-                                       state: "default" 0.0; \
-                                       image.normal: BG_IMAGE; \
-                                       color_class: BG_COLOR; \
-                               } \
-                       } \
-                       part { name: "bg_press"; \
-                               type: IMAGE; \
-                               scale: 1; \
-                               mouse_events: 1; \
-                               description { state: "default" 0.0; \
-                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
-                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
-                                       image.normal: BG_IMAGE; \
-                                       color_class: "transparent_black"; \
-                               } \
-                               description { state: "pressed" 0.0; \
-                                       inherit: "default" 0.0; \
-                                       color_class: PRESSED_COLOR; \
-                               } \
-                               description { state: "pressed_effect" 0.0; \
-                                       inherit: "pressed" 0.0; \
-                                       rel1 { relative: 0.15 0.15; to: "bg"; } \
-                                       rel2 { relative: 0.85 0.85; to: "bg"; } \
-                               } \
-                       } \
-                       part { name: "icon"; \
-                               type: IMAGE; \
-                               scale: 1; \
-                               description { \
-                                       state: "default" 0.0; \
-                                       rel1.relative: MS_BTN_ICON_L MS_BTN_ICON_T; \
-                                       rel2.relative: MS_BTN_ICON_R MS_BTN_ICON_B; \
-                                       image.normal: ICON; \
-                               } \
-                       } \
-                       part { name: "text"; \
-                               type: TEXTBLOCK; \
-                               scale: 1; \
-                               description { \
-                                       state: "default" 0.0; \
-                                       rel1 { \
-                                               relative: 0.0 1.0; \
-                                               to_y: "icon"; \
-                                       } \
-                                       rel2.relative: 1.0 MS_BTN_TEXT_B; \
-                                       text { \
-                                               style: "ATO008"; \
-                                       } \
-                               } \
-                       } \
-                       part { name: "over"; \
-                               type: RECT; \
-                               mouse_events: 1; \
-                               repeat_events: 1; \
-                               ignore_flags: ON_HOLD; \
-                               scale: 1; \
-                               description { state: "default" 0.0; \
-                                       color: COLOR_BG_ALPHA; \
-                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
-                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
-                               } \
-                       } \
-               } \
-               programs { \
-                       program { name: "btn_press"; \
-                               signal: "mouse,down,1*"; \
-                               source: "over"; \
-                               action: STATE_SET "pressed_effect" 0.0; \
-                               target: "bg_press"; \
-                               after: "btn_press_anim"; \
-                       } \
-                       program { name: "btn_press_anim"; \
-                               action: STATE_SET "pressed" 0.0; \
-                               target: "bg_press"; \
-                               transition: TRANSITION_GLIDE(0.15); \
-                       } \
-                       program { name: "btn_unpress"; \
-                               signal: "mouse,up,1"; \
-                               source: "over"; \
-                               action: STATE_SET "default" 0.0; \
-                               target: "bg_press"; \
-                               transition: TRANSITION_GLIDE(0.45); \
-                       } \
-                       program { name: "btn_clicked"; \
-                               signal: "mouse,clicked,1"; \
-                               source: "over"; \
-                               action: SIGNAL_EMIT "clicked" "hold_call_btn"; \
-                               after: "touch_snd"; \
-                       } \
-                       program { name: "touch_snd"; \
-                               action: RUN_PLUGIN "touch_sound"; \
-                       } \
-               } \
-       }
-
 #define BG_PART_IMAGE \
        part { name: "bg"; \
                type: IMAGE; \
@@ -381,16 +273,6 @@ group { \
 SPLIT_CALLER_INFO_LAYOUT("split_hold_info", BG_PART_IMAGE, HOLD_INFO_PADDING_TOP_MIN_H, HOLD_INFO_STATUS_TXT_PADDING_BOTTOM_H)
 SPLIT_CALLER_INFO_LAYOUT("split_active_info", BG_PART_SPACER, ACTIVE_INFO_PADDING_TOP_MIN_H, ACTIVE_INFO_STATUS_TXT_PADDING_BOTTOM_H)
 
-MERGE_SWAP_BTN("merge_btn",
-       IMG_SRC_DIR/"call_multi_hold_btn_merge_bg.png",
-       IMG_SRC_DIR/"call_multi_ic_merge.png",
-       "multi_hold_merge_btn_norm", "multi_hold_merge_btn_press")
-
-MERGE_SWAP_BTN("swap_btn",
-       IMG_SRC_DIR/"call_multi_hold_btn_swap_bg.png",
-       IMG_SRC_DIR/"call_multi_ic_swap.png",
-       "multi_hold_swap_btn_norm", "multi_hold_swap_btn_press")
-
 group { name: "split_callers_info";
        parts {
                part { name: "bg";
index e60e7b0..2533215 100644 (file)
 // APPLICATION AND VIEW MAIN LAYOUT DEFINES
 
 #define EC_LAYOUT_MINIMIZE_SIZE                                (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + EC_STATE_TXT_PAD_CONT_ICON + EC_CONT_ICON_DIMENT + EC_CONT_ICON_PAD_BOTTOM)
-
 #define EC_REPLY_BTN_HEIGHT                                    190
-#define EC_REPLY_BTN_ICON_PAD_TOP                      36
-#define EC_REPLY_BTN_ICON_DIMENT                       64
-#define EC_REPLY_BTN_TXT_HEIGHT                                38
-#define EC_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON    20
-#define EC_REPLY_BTN_TXT_PAD_TOP                       (EC_REPLY_BTN_ICON_PAD_TOP + EC_REPLY_BTN_ICON_DIMENT + EC_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON)
-#define EC_REPLY_BTN_ICON_SIZE                         EC_REPLY_BTN_ICON_DIMENT EC_REPLY_BTN_ICON_DIMENT
 
 styles {
-       style { name: "ec_reply_btn";
-               base: "font=Tizen:style=Regular align=center font_size=34 color=#808080 ellipsis=1.0";
-       }
        style { name: "ec_contact_name";
                base: "font=Tizen:style=Regular align=left font_size=56 color=#FFFFFF ellipsis=1.0";
        }
@@ -88,138 +78,6 @@ styles {
        }
 }
 
-#define EC_REPLY_BUTTON(style_name, img_path) \
-group { \
-       name: style_name; \
-       images { \
-               image: img_path COMP; \
-       } \
-       parts { \
-               CU_PART_RECT( "bg", \
-                       mouse_events: 1; \
-                       repeat_events: 0; \
-                       description { state: "default" 0.0; } \
-                       description { state: "pressed" 0.0; \
-                               inherit: "default" 0.0; \
-                               color_class: "ec_reply_btn_bg_norm"; \
-                       } \
-               ) \
-               CU_PART_RECT( "bg_press", \
-                       mouse_events: 1; \
-                       description { state: "default" 0.0; \
-                               rel1 { relative: 0.0 0.0; to: "bg"; } \
-                               rel2 { relative: 1.0 1.0; to: "bg"; } \
-                               color_class: "ec_reply_btn_bg_norm"; \
-                       } \
-                       description { state: "pressed" 0.0; \
-                               inherit: "default" 0.0; \
-                               color_class: "ec_reply_btn_bg_pressed"; \
-                       } \
-                       description { state: "pressed_effect" 0.0; \
-                               inherit: "pressed" 0.0; \
-                               rel1 { relative: 0.15 0.15; to: "bg"; } \
-                               rel2 { relative: 0.85 0.85; to: "bg"; } \
-                       } \
-               ) \
-               CU_PART_SPACER( "sizer", \
-                       description { state: "default" 0.0; \
-                               min: 0 EC_REPLY_BTN_HEIGHT; \
-                               max: -1 EC_REPLY_BTN_HEIGHT; \
-                               fixed: 1 1; \
-                       } \
-               ) \
-               CU_PART_SPACER( "icon.padding.top", \
-                       description { state: "default" 0.0; \
-                               min: 0 EC_REPLY_BTN_ICON_PAD_TOP; \
-                               fixed: 0 1; \
-                               rel1 { relative: 0.0 0.0; to: "sizer"; } \
-                               rel2 { relative: 1.0 0.0; to: "sizer"; } \
-                               align: 0.0 0.0; \
-                       } \
-               ) \
-               CU_PART_IMAGE( "icon", \
-                       description { state: "default" 0.0; \
-                               rel1 { relative: 0.0 1.0; to: "icon.padding.top"; } \
-                               rel2 { relative: 1.0 1.0; to: "icon.padding.top"; } \
-                               min: EC_REPLY_BTN_ICON_SIZE; \
-                               max: EC_REPLY_BTN_ICON_SIZE; \
-                               fixed: 1 1; \
-                               image.normal: img_path; \
-                               color_class: "ec_reply_btn_icon"; \
-                               align: 0.5 0.0; \
-                       } \
-               ) \
-               CU_PART_SPACER( "text.padding.top", \
-                       description { state: "default" 0.0; \
-                               min: 0 EC_REPLY_BTN_TXT_PAD_TOP; \
-                               fixed: 0 1; \
-                               rel1 { relative: 0.0 0.0; to: "sizer"; } \
-                               rel2 { relative: 1.0 0.0; to: "sizer"; } \
-                               align: 0.0 0.0; \
-                       } \
-               ) \
-               CU_PART_TEXTBLOCK( "text", \
-                       description { state: "default" 0.0; \
-                               rel1 { relative: 0.0 1.0; to: "text.padding.top"; } \
-                               rel2 { relative: 1.0 1.0; to: "text.padding.top"; } \
-                               min: 0 EC_REPLY_BTN_TXT_HEIGHT; \
-                               text { \
-                                       fit: 1 1; \
-                                       style:"ec_reply_btn"; \
-                               } \
-                       } \
-               ) \
-               CU_PART_RECT( "over", \
-                       type: RECT; \
-                       mouse_events: 1; \
-                       repeat_events: 1; \
-                       ignore_flags: ON_HOLD; \
-                       description { state: "default" 0.0; \
-                               color: COLOR_BG_ALPHA; \
-                               rel1 { relative: 0.0 0.0; to: "bg"; } \
-                               rel2 { relative: 1.0 1.0; to: "bg"; } \
-                       } \
-               ) \
-       } \
-       programs { \
-               program { name: "btn_press"; \
-                       signal: "mouse,down,1*"; \
-                       source: "over"; \
-                       action: STATE_SET "pressed_effect" 0.0; \
-                       target: "bg_press"; \
-                       after: "btn_press_anim"; \
-               } \
-               program { name: "btn_press_anim"; \
-                       action: STATE_SET "pressed" 0.0; \
-                       target: "bg_press"; \
-                       transition: TRANSITION_GLIDE(0.15); \
-               } \
-               program { name: "btn_unpress_anim"; \
-                       action: STATE_SET "default" 0.0; \
-                       target: "bg_press"; \
-                       transition: TRANSITION_GLIDE(0.45); \
-               } \
-               program { name: "btn_unpress"; \
-                       signal: "mouse,up,1"; \
-                       source: "over"; \
-                       action: SIGNAL_EMIT "elm,action,unpress" ""; \
-                       after: "btn_unpress_anim"; \
-               } \
-               program { name: "btn_clicked"; \
-                       signal: "mouse,clicked,1"; \
-                       source: "over"; \
-                       action: SIGNAL_EMIT "clicked" "reply_btn"; \
-                       after: "touch_snd"; \
-               } \
-               program { name: "touch_snd"; \
-                       action: RUN_PLUGIN "touch_sound"; \
-               } \
-       } \
-} \
-
-EC_REPLY_BUTTON("call_back", IMG_SRC_DIR/"call_end_call.png")
-EC_REPLY_BUTTON("message_button", IMG_SRC_DIR/"call_end_message.png")
-
 group { name: "end_call_view_ly";
        images {
                image: IMG_SRC_DIR/"background.png" COMP;
index 54fed21..3c1e41a 100644 (file)
 
 #define TOGGLE_BTN_MIN_SIZE                            90 90
 
+#define END_CALL_REPLY_BTN_HEIGHT                                      190
+#define END_CALL_REPLY_BTN_ICON_PAD_TOP                                36
+#define END_CALL_REPLY_BTN_ICON_DIMENT                         64
+#define END_CALL_REPLY_BTN_TXT_HEIGHT                          38
+#define END_CALL_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON      20
+#define END_CALL_REPLY_BTN_TXT_PAD_TOP                         (END_CALL_REPLY_BTN_ICON_PAD_TOP + END_CALL_REPLY_BTN_ICON_DIMENT + END_CALL_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON)
+#define END_CALL_REPLY_BTN_ICON_SIZE                           END_CALL_REPLY_BTN_ICON_DIMENT END_CALL_REPLY_BTN_ICON_DIMENT
+
 #define STYLE_TAGS \
        tag: "br" "\n";\
        tag: "ps" "ps";\
        tag: "b" "+ font_weight=Bold";
 
 styles {
-       style { name: "active_noti_btn_txt";
-               base: "align=center valign=center color=#ffffffff font=Tizen:style=Regular font_size=40 text_class=tizen ellipsis=1.0";
+       style { name: "active_noti_btn";
+               base: "font="VC_FONT_REGULAR" font_size=40 text_class=tizen color=#ffffffff ellipsis=1.0 align=center valign=center";
+               STYLE_TAGS
+       }
+       style { name: "held_call_manage_btn";
+               base: "font="VC_FONT_REGULAR" font_size=27 text_class=tizen color=#fffafaff ellipsis=1.0 align=center valign=center";
+               STYLE_TAGS
+       }
+       style { name: "ec_reply_btn";
+               base: "font="VC_FONT_REGULAR" font_size=34 text_class=tizen color=#808080ff ellipsis=1.0 align=center valign=center";
                STYLE_TAGS
        }
 }
@@ -56,10 +72,15 @@ styles {
                images { \
                        image: img1 COMP; \
                } \
+               script { \
+                       public mouse_down = 0; \
+                       public multi_down = 0; \
+                       public disabled = 0; \
+                       public animate = 0; \
+               } \
                parts { \
                        part { name: "bg"; \
                                type: RECT; \
-                               mouse_events: 1; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        color_class: "action_bar_bg_norm"; \
@@ -67,7 +88,6 @@ styles {
                        } \
                        part { name: "bg_press"; \
                                type: RECT; \
-                               mouse_events: 1; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        color_class: "action_bar_bg_norm"; \
@@ -82,6 +102,8 @@ styles {
                                } \
                        } \
                        part { name: "content_image"; \
+                               type: IMAGE; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        image.normal: img1; \
                                        aspect: 0.5 1.0; \
@@ -98,7 +120,6 @@ styles {
                        } \
                        part { name: "elm.text"; \
                                type: TEXT; \
-                               mouse_events: 0; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        fixed: 1 1; \
@@ -120,75 +141,144 @@ styles {
                        } \
                        part { name: "over"; \
                                type: RECT; \
-                               mouse_events: 1; \
-                               repeat_events: 1; \
-                               ignore_flags: ON_HOLD; \
-                               description { state: "default" 0.0; \
-                                       color: COLOR_BG_ALPHA; \
-                                       rel1 { relative: 0.25 0.1; } \
-                                       rel2 { relative: 0.75 0.9; } \
-                               } \
-                       } \
-                       part { name: "disabler"; \
-                               type: RECT; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        color: COLOR_BG_ALPHA; \
-                                       visible: 0; \
-                               } \
-                               description { state: "disabled" 0.0; \
-                                       inherit: "default" 0.0; \
-                                       visible: 1; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
                                } \
                        } \
                } \
                programs { \
-                       program { name: "btn_press"; \
-                               signal: "mouse,down,1*"; \
-                               source: "over"; \
+                       program { name: "pressed_effect"; \
                                action: STATE_SET "pressed_effect" 0.0; \
                                target: "bg_press"; \
-                               after: "btn_press_anim"; \
+                               after: "pressed_effect2"; \
                        } \
-                       program { name: "btn_press_anim"; \
+                       program { name: "pressed_effect2"; \
                                action: STATE_SET "pressed" 0.0; \
                                target: "bg_press"; \
                                transition: TRANSITION_GLIDE(0.15); \
+                               after: "pressed_effect3"; \
+                       } \
+                       program { name: "pressed_effect3"; \
+                               script { \
+                                       set_int(animate, 0); \
+                               } \
+                       } \
+                       program { name: "delay_unpressed_effect"; \
+                               in: 0.1 0.0; \
+                               after: "unpressed_effect"; \
+                       } \
+                       program { name: "unpressed_effect"; \
+                               script { \
+                                       if (get_int(disabled) == 0) { \
+                                               run_program(PROGRAM:"unpressed_effect2"); \
+                                       } else { \
+                                               run_program(PROGRAM:"disabled_effect2"); \
+                                               run_program(PROGRAM:"disabled_effect3"); \
+                                       } \
+                               } \
                        } \
-                       program { name: "btn_unpress_anim"; \
+                       program { name: "unpressed_effect2"; \
                                action: STATE_SET "default" 0.0; \
                                target: "bg_press"; \
                                transition: TRANSITION_GLIDE(0.45); \
                        } \
-                       program { name: "btn_unpress"; \
+                       program { name: "disabled_effect2"; \
+                               action: STATE_SET "disabled" 0.0; \
+                               target: "elm.text"; \
+                               target: "content_image"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                       } \
+                       program { name: "disabled_effect3"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "bg_press"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                       } \
+                       program { name: "pressed"; \
+                               signal: "mouse,down,1*"; \
+                               source: "over"; \
+                               script { \
+                                       if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { \
+                                               stop_program(PROGRAM:"delay_unpressed_effect"); \
+                                               set_int(mouse_down, 1); \
+                                               set_int(animate, 1); \
+                                               emit("elm,action,press", ""); \
+                                               run_program(PROGRAM:"pressed_effect"); \
+                                       } \
+                               } \
+                       } \
+                       program { name: "unpressed"; \
                                signal: "mouse,up,1"; \
                                source: "over"; \
-                               action: SIGNAL_EMIT "elm,action,unpress" ""; \
-                               after: "btn_unpress_anim"; \
+                               script { \
+                                       if (get_int(mouse_down) == 1) { \
+                                               set_int(mouse_down, 0); \
+                                               if (get_int(animate) == 0) { \
+                                                       run_program(PROGRAM:"unpressed_effect"); \
+                                               } else { \
+                                                       set_state(PART:"bg_press", "pressed", 0.0); \
+                                                       set_int(animate, 0); \
+                                                       run_program(PROGRAM:"delay_unpressed_effect"); \
+                                               } \
+                                               emit("elm,action,unpress", ""); \
+                                       } \
+                               } \
                        } \
-                       program { name: "clicked"; \
+                       program { name: "touch_snd"; \
                                signal: "mouse,clicked,1"; \
                                source: "over"; \
+                                       script { \
+                                               if (get_int(multi_down) == 0) { \
+                                                       if (get_int(disabled) == 0) { \
+                                                               run_program(PROGRAM:"touch_sound"); \
+                                                               run_program(PROGRAM:"clicked_signal"); \
+                                                       } \
+                                               } \
+                                       } \
+                       } \
+                       program { name: "touch_sound"; \
+                               action: RUN_PLUGIN "touch_sound"; \
+                       } \
+                       program { name: "clicked_signal"; \
+                               in: 0.001 0.0; \
                                action: SIGNAL_EMIT "elm,action,click" ""; \
-                               after: "touch_snd"; \
                        } \
                        program { name: "disable"; \
                                signal: "elm,state,disabled"; \
                                source: "elm"; \
-                               action: STATE_SET "disabled" 0.0; \
-                               target: "elm.text"; \
-                               target: "content_image"; \
-                               target: "disabler"; \
+                               script { \
+                                       set_int(disabled, 1); \
+                                       if (get_int(animate) == 1) return; \
+                                       set_state(PART:"bg_press", "default", 0.0); \
+                                       set_state(PART:"elm.text", "disabled", 0.0); \
+                                       set_state(PART:"content_image", "disabled", 0.0); \
+                               } \
                        } \
                        program { name: "enable"; \
                                signal: "elm,state,enabled"; \
                                source: "elm"; \
-                               action: STATE_SET "default" 0.0; \
-                               target: "elm.text"; \
-                               target: "content_image"; \
-                               target: "disabler"; \
+                               script { \
+                                       set_int(disabled, 0); \
+                                       set_state(PART:"bg_press", "default", 0.0); \
+                                       set_state(PART:"elm.text", "default", 0.0); \
+                                       set_state(PART:"content_image", "default", 0.0); \
+                               } \
                        } \
-                       program { name: "touch_snd"; \
-                               action: RUN_PLUGIN "touch_sound"; \
+                       program { name: "multi_down"; \
+                               signal: "elm,action,multi,down"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 1); \
+                               } \
+                       } \
+                       program { name: "multi_up"; \
+                               signal: "elm,action,multi,up"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 0); \
+                               } \
                        } \
                } \
        }
@@ -200,13 +290,15 @@ styles {
                        image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \
                } \
                script { \
+                       public mouse_down = 0; \
+                       public multi_down = 0; \
                        public disabled = 0; \
+                       public animate = 0; \
                        public activated = 0; \
                } \
                parts { \
                        part { name: "bg"; \
                                type: RECT; \
-                               mouse_events: 1; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        visible: 1; \
@@ -215,7 +307,6 @@ styles {
                        } \
                        part { name: "bg_press"; \
                                type: RECT; \
-                               mouse_events: 1; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        color_class: "action_bar_bg_norm"; \
@@ -230,6 +321,8 @@ styles {
                                } \
                        } \
                        part { name: "content_image"; \
+                               type: IMAGE; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        image.normal: img1; \
                                        aspect: 0.5 1.0; \
@@ -250,7 +343,6 @@ styles {
                        } \
                        part { name: "elm.text"; \
                                type: TEXT; \
-                               mouse_events: 0; \
                                scale: 1; \
                                description { state: "default" 0.0; \
                                        fixed: 1 1; \
@@ -275,6 +367,8 @@ styles {
                                } \
                        } \
                        part { name: "toggle_bar_image"; \
+                               type: IMAGE; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        image { \
                                                normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \
@@ -296,77 +390,128 @@ styles {
                        } \
                        part { name: "over"; \
                                type: RECT; \
-                               mouse_events: 1; \
-                               repeat_events: 1; \
-                               ignore_flags: ON_HOLD; \
-                               description { state: "default" 0.0; \
-                                       color: COLOR_BG_ALPHA; \
-                                       rel1 { relative: 0.25 0.1; } \
-                                       rel2 { relative: 0.75 0.9; } \
-                               } \
-                       } \
-                       part { name: "disabler"; \
-                               type: RECT; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        color: COLOR_BG_ALPHA; \
-                                       visible: 0; \
-                               } \
-                               description { state: "disabled" 0.0; \
-                                       inherit: "default" 0.0; \
-                                       visible: 1; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
                                } \
                        } \
                } \
                programs { \
-                       program { name: "btn_press"; \
-                               signal: "mouse,down,1*"; \
-                               source: "over"; \
+                       program { name: "pressed_effect"; \
                                action: STATE_SET "pressed_effect" 0.0; \
                                target: "bg_press"; \
-                               after: "btn_press_anim"; \
+                               after: "pressed_effect2"; \
                        } \
-                       program { name: "btn_press_anim"; \
+                       program { name: "pressed_effect2"; \
                                action: STATE_SET "pressed" 0.0; \
                                target: "bg_press"; \
                                transition: TRANSITION_GLIDE(0.15); \
+                               after: "pressed_effect3"; \
+                       } \
+                       program { name: "pressed_effect3"; \
+                               script { \
+                                       set_int(animate, 0); \
+                               } \
+                       } \
+                       program { name: "delay_unpressed_effect"; \
+                               in: 0.1 0.0; \
+                               after: "unpressed_effect"; \
+                       } \
+                       program { name: "unpressed_effect"; \
+                               script { \
+                                       if (get_int(disabled) == 0) { \
+                                               run_program(PROGRAM:"unpressed_effect2"); \
+                                       } else { \
+                                               run_program(PROGRAM:"disabled_effect2"); \
+                                               run_program(PROGRAM:"disabled_effect3"); \
+                                       } \
+                               } \
                        } \
-                       program { name: "btn_unpress_anim"; \
+                       program { name: "unpressed_effect2"; \
                                action: STATE_SET "default" 0.0; \
                                target: "bg_press"; \
                                transition: TRANSITION_GLIDE(0.45); \
                        } \
-                       program { name: "btn_unpress"; \
+                       program { name: "disabled_effect2"; \
+                               action: STATE_SET "disabled" 0.0; \
+                               target: "elm.text"; \
+                               target: "content_image"; \
+                               target: "toggle_bar_image"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                       } \
+                       program { name: "disabled_effect3"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "bg_press"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                       } \
+                       program { name: "pressed"; \
+                               signal: "mouse,down,1*"; \
+                               source: "over"; \
+                               script { \
+                                       if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { \
+                                               stop_program(PROGRAM:"delay_unpressed_effect"); \
+                                               set_int(mouse_down, 1); \
+                                               set_int(animate, 1); \
+                                               emit("elm,action,press", ""); \
+                                               run_program(PROGRAM:"pressed_effect"); \
+                                       } \
+                               } \
+                       } \
+                       program { name: "unpressed"; \
                                signal: "mouse,up,1"; \
                                source: "over"; \
-                               action: SIGNAL_EMIT "elm,action,unpress" ""; \
-                               after: "btn_unpress_anim"; \
+                               script { \
+                                       if (get_int(mouse_down) == 1) { \
+                                               set_int(mouse_down, 0); \
+                                               if (get_int(animate) == 0) { \
+                                                       run_program(PROGRAM:"unpressed_effect"); \
+                                               } else { \
+                                                       set_state(PART:"bg_press", "pressed", 0.0); \
+                                                       set_int(animate, 0); \
+                                                       run_program(PROGRAM:"delay_unpressed_effect"); \
+                                               } \
+                                               emit("elm,action,unpress", ""); \
+                                       } \
+                               } \
                        } \
                        program { name: "touch_snd"; \
                                signal: "mouse,clicked,1"; \
                                source: "over"; \
+                                       script { \
+                                               if (get_int(multi_down) == 0) { \
+                                                       if (get_int(disabled) == 0) { \
+                                                               run_program(PROGRAM:"touch_sound"); \
+                                                               run_program(PROGRAM:"clicked_signal"); \
+                                                       } \
+                                               } \
+                                       } \
+                       } \
+                       program { name: "touch_sound"; \
                                action: RUN_PLUGIN "touch_sound"; \
-                               after: button_unclick3; \
                        } \
-                       program { name: "button_unclick3"; \
+                       program { name: "clicked_signal"; \
+                               in: 0.001 0.0; \
                                action: SIGNAL_EMIT "elm,action,click" ""; \
                        } \
                        program { name: "disable"; \
                                signal: "elm,state,disabled"; \
                                source: "elm"; \
                                script { \
-                                       if (get_int(disabled) == 0) { \
-                                               set_state(PART:"elm.text", "disabled", 0.0); \
-                                               set_state(PART:"content_image", "disabled", 0.0); \
-                                               set_state(PART:"toggle_bar_image", "disabled", 0.0); \
-                                       } \
-                                       set_state(PART:"disabler", "disabled", 0.0); \
                                        set_int(disabled, 1); \
+                                       if (get_int(animate) == 1) return; \
+                                       set_state(PART:"bg_press", "default", 0.0); \
+                                       set_state(PART:"elm.text", "disabled", 0.0); \
+                                       set_state(PART:"content_image", "disabled", 0.0); \
+                                       set_state(PART:"toggle_bar_image", "disabled", 0.0); \
                                } \
                        } \
                        program { name: "enable"; \
                                signal: "elm,state,enabled"; \
                                source: "elm"; \
                                script { \
+                                       set_int(disabled, 0); \
                                        if (get_int(activated) == 0) { \
                                                set_state(PART:"elm.text", "default", 0.0); \
                                                set_state(PART:"content_image", "default", 0.0); \
@@ -376,8 +521,21 @@ styles {
                                                set_state(PART:"content_image", "pressed", 0.0); \
                                                set_state(PART:"toggle_bar_image", "pressed", 0.0); \
                                        } \
-                                       set_state(PART:"disabler", "default", 0.0); \
-                                       set_int(disabled, 0); \
+                                       set_state(PART:"bg_press", "default", 0.0); \
+                               } \
+                       } \
+                       program { name: "multi_down"; \
+                               signal: "elm,action,multi,down"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 1); \
+                               } \
+                       } \
+                       program { name: "multi_up"; \
+                               signal: "elm,action,multi,up"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 0); \
                                } \
                        } \
                        program { name: "activate"; \
@@ -621,6 +779,7 @@ styles {
                        } \
                        part { name: "tizen_vg_shape_clipper2"; \
                                type: RECT; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        visible: 0; \
                                        color: COLOR_BG_ALPHA; \
@@ -762,24 +921,25 @@ styles {
                                                to: "padding_right_bottom"; \
                                        } \
                                        text { \
-                                               style: "active_noti_btn_txt"; \
+                                               style: "active_noti_btn"; \
                                                max: 1 0; \
                                        } \
                                        color: 250 250 250 255; \
                                } \
                                description { state: "pressed" 0.0; \
                                        inherit: "default" 0.0; \
-                                       text.style: "active_noti_btn_txt"; \
+                                       text.style: "active_noti_btn"; \
                                        color: 250 250 250 255; \
                                } \
                                description { state: "disabled" 0.0; \
                                        inherit: "default" 0.0; \
-                                       text.style: "active_noti_btn_txt"; \
+                                       text.style: "active_noti_btn"; \
                                        color: 250 250 250 163; \
                                } \
                        } \
                        part { name: "clipper"; \
                                type: RECT; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                } \
                                description { state: "pressed" 0.0; \
@@ -791,6 +951,7 @@ styles {
                        } \
                        part { name: "event"; \
                                type: RECT; \
+                               scale: 1; \
                                description { state: "default" 0.0; \
                                        rel1.to: "tizen_vg_shape"; \
                                        rel2.to: "tizen_vg_shape"; \
@@ -1010,7 +1171,7 @@ styles {
                                signal: "elm,action,multi,down"; \
                                source: "elm"; \
                                script { \
-                               set_int(multi_down, 1); \
+                                       set_int(multi_down, 1); \
                                } \
                        } \
                        program { name: "multi_up"; \
@@ -1052,302 +1213,572 @@ styles {
        }
 
 #define CIRCLE_BTN_WITH_ICON(grp_name, btn_size, btn_bg_color_norm, btn_bg_color_dim, btn_icon_path, btn_icon_color_norm) \
-group { name: "elm/button/base/"grp_name; \
-       data.item: "vector_ux" "circle"; \
-       images { \
-               image: btn_icon_path COMP; \
-       } \
-       script { \
-               public mouse_down = 0; \
-               public multi_down = 0; \
-               public disabled = 0; \
-               public animate = 0; \
-       } \
-       parts { \
-               part { name: "base"; \
-                       scale: 1; \
-                       type: SPACER; \
-                       description { state: "default" 0.0; \
-                               min: btn_size btn_size; \
-                       } \
+       group { name: "elm/button/base/"grp_name; \
+               data.item: "vector_ux" "circle"; \
+               images { \
+                       image: btn_icon_path COMP; \
                } \
-               part { name: "tizen_vg_shape"; \
-                       type: SWALLOW; \
-                       clip_to: "tizen_vg_shape_clipper"; \
-                       scale: 1; \
-                       description { state: "default" 0.0; \
-                               min: btn_size btn_size; \
-                               rel1.relative: 0.5 0; \
-                               rel2.relative: 0.5 0; \
-                               align: 0.5 0; \
-                               fixed: 1 1; \
-                       } \
+               script { \
+                       public mouse_down = 0; \
+                       public multi_down = 0; \
+                       public disabled = 0; \
+                       public animate = 0; \
                } \
-               part { name: "tizen_vg_shape_clipper"; \
-                       type: RECT; \
-                       description { state: "default" 0.0; \
-                               color_class: btn_bg_color_norm; \
+               parts { \
+                       part { name: "base"; \
+                               scale: 1; \
+                               type: SPACER; \
+                               description { state: "default" 0.0; \
+                                       min: btn_size btn_size; \
+                               } \
                        } \
-                       description { state: "disabled" 0.0; \
-                               color_class: btn_bg_color_dim; \
+                       part { name: "tizen_vg_shape"; \
+                               type: SWALLOW; \
+                               clip_to: "tizen_vg_shape_clipper"; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       min: btn_size btn_size; \
+                                       rel1.relative: 0.5 0; \
+                                       rel2.relative: 0.5 0; \
+                                       align: 0.5 0; \
+                                       fixed: 1 1; \
+                               } \
                        } \
-               } \
-               part { name: "effect_spacer"; \
-                       type: SPACER; \
-                       description { state: "default" 0.0; \
-                               rel1.to: "tizen_vg_shape"; \
-                               rel2.to: "tizen_vg_shape"; \
+                       part { name: "tizen_vg_shape_clipper"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       color_class: btn_bg_color_norm; \
+                               } \
+                               description { state: "disabled" 0.0; \
+                                       color_class: btn_bg_color_dim; \
+                               } \
                        } \
-               } \
-               part { name: "tizen_vg_shape2"; \
-                       type: SWALLOW; \
-                       clip_to: "tizen_vg_shape_clipper2"; \
-                       scale: 1; \
-                       description { state: "default" 0.0; \
-                               rel1.to: "effect_spacer"; \
-                               rel2.to: "effect_spacer"; \
-                               rel1.relative: 0.15 0.15; \
-                               rel2.relative: 0.85 0.85; \
-                       } \
-                       description { state: "ready" 0.0; \
-                               inherit: "default" 0.0; \
-                       } \
-                       description { state: "pressed" 0.0; \
-                               inherit: "default" 0.0; \
-                               rel1.relative: 0.0 0.0; \
-                               rel2.relative: 1.0 1.0; \
+                       part { name: "effect_spacer"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       rel1.to: "tizen_vg_shape"; \
+                                       rel2.to: "tizen_vg_shape"; \
+                               } \
                        } \
-               } \
-               part { name: "tizen_vg_shape_clipper2"; \
-                       type: RECT; \
-                       description { state: "default" 0.0; \
-                               visible: 0; \
-                               color: COLOR_BG_ALPHA; \
+                       part { name: "tizen_vg_shape2"; \
+                               type: SWALLOW; \
+                               clip_to: "tizen_vg_shape_clipper2"; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       rel1.to: "effect_spacer"; \
+                                       rel2.to: "effect_spacer"; \
+                                       rel1.relative: 0.15 0.15; \
+                                       rel2.relative: 0.85 0.85; \
+                               } \
+                               description { state: "ready" 0.0; \
+                                       inherit: "default" 0.0; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       rel1.relative: 0.0 0.0; \
+                                       rel2.relative: 1.0 1.0; \
+                               } \
+                       } \
+                       part { name: "tizen_vg_shape_clipper2"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       visible: 0; \
+                                       color: COLOR_BG_ALPHA; \
+                               } \
+                               description { state: "ready" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       color: 0 0 0 77; \
+                               } \
                        } \
-                       description { state: "ready" 0.0; \
-                               inherit: "default" 0.0; \
-                               visible: 1; \
+                       part { name: "elm.icon"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               clip_to: "clipper"; \
+                               description { state: "default" 0.0; \
+                                       min: CIRCLE_BTN_DEF_ICON_SIZE; \
+                                       aspect_preference: SOURCE; \
+                                       color_class: btn_icon_color_norm; \
+                                       fixed: 1 1; \
+                                       rel1.to: "tizen_vg_shape"; \
+                                       rel2.to: "tizen_vg_shape"; \
+                                       rel1.relative: 0.5 0.5; \
+                                       rel2.relative: 0.5 0.5; \
+                                       image { \
+                                               normal: btn_icon_path; \
+                                               middle: DEFAULT; \
+                                       } \
+                               } \
                        } \
-                       description { state: "pressed" 0.0; \
-                               color: 0 0 0 77; \
+                       part { name: "clipper"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                               } \
+                               description { state: "disabled" 0.0; \
+                                       color: 255 255 255 127; \
+                               } \
                        } \
-               } \
-               part { name: "elm.icon"; \
-                       type: IMAGE; \
-                       scale: 1; \
-                       clip_to: "clipper"; \
-                       description { state: "default" 0.0; \
-                               min: CIRCLE_BTN_DEF_ICON_SIZE; \
-                               aspect_preference: SOURCE; \
-                               color_class: btn_icon_color_norm; \
-                               fixed: 1 1; \
-                               rel1.to: "tizen_vg_shape"; \
-                               rel2.to: "tizen_vg_shape"; \
-                               rel1.relative: 0.5 0.5; \
-                               rel2.relative: 0.5 0.5; \
-                               image { \
-                                       normal: btn_icon_path; \
-                                       middle: DEFAULT; \
+                       part { name: "event"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       rel1.to: "tizen_vg_shape"; \
+                                       rel2.to: "elm.icon"; \
+                                       color: COLOR_BG_ALPHA; \
                                } \
                        } \
                } \
-               part { name: "clipper"; \
-                       type: RECT; \
-                       description { state: "default" 0.0; \
+               programs { \
+                       program { name: "pressed_effect"; \
+                               action: STATE_SET "ready" 0.0; \
+                               target: "tizen_vg_shape2"; \
+                               target: "tizen_vg_shape_clipper2"; \
+                               after: "pressed_effect2"; \
                        } \
-                       description { state: "pressed" 0.0; \
+                       program { name: "pressed_effect2"; \
+                               action: STATE_SET "pressed" 0.0; \
+                               target: "tizen_vg_shape2"; \
+                               target: "clipper"; \
+                               target: "tizen_vg_shape_clipper2"; \
+                               transition: TRANSITION_GLIDE(0.15); \
+                               after: "pressed_effect3"; \
+                       } \
+                       program { name: "pressed_effect3"; \
+                               script { \
+                                       set_int(animate, 0); \
+                               } \
                        } \
-                       description { state: "disabled" 0.0; \
-                               color: 255 255 255 127; \
+                       program { name: "delay_unpressed_effect"; \
+                               in: 0.1 0.0; \
+                               after: "unpressed_effect"; \
                        } \
-               } \
-               part { name: "event"; \
-                       type: RECT; \
-                       description { state: "default" 0.0; \
-                               rel1.to: "tizen_vg_shape"; \
-                               rel2.to: "elm.icon"; \
-                               color: COLOR_BG_ALPHA; \
+                       program { name: "unpressed_effect"; \
+                               script { \
+                                       if (get_int(disabled) == 0) { \
+                                               run_program(PROGRAM:"unpressed_effect2"); \
+                                       } else { \
+                                               run_program(PROGRAM:"disabled_effect"); \
+                                               run_program(PROGRAM:"disabled_effect3"); \
+                                       } \
+                               } \
+                       } \
+                       program { name: "unpressed_effect2"; \
+                               action: STATE_SET "ready" 0.0; \
+                               target: "tizen_vg_shape_clipper2"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                               after: "unpressed_effect4"; \
+                       } \
+                       program { name: "unpressed_effect4"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "clipper"; \
+                               after: "finished_animation"; \
+                       } \
+                       program { name: "disabled_effect"; \
+                               action: STATE_SET "ready" 0.0; \
+                               target: "tizen_vg_shape_clipper2"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                       } \
+                       program { name: "disabled_effect3"; \
+                               action: STATE_SET "disabled" 0.0; \
+                               target: "clipper"; \
+                               target: "tizen_vg_shape_clipper"; \
+                               transition: TRANSITION_GLIDE(0.45); \
+                               after: "finished_animation"; \
+                       } \
+                       program { name: "finished_animation"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "tizen_vg_shape2"; \
+                               target: "tizen_vg_shape_clipper2"; \
+                       } \
+                       program { name: "pressed"; \
+                               signal: "mouse,down,1*"; \
+                               source: "event"; \
+                               script { \
+                                       if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { \
+                                               stop_program(PROGRAM:"delay_unpressed_effect"); \
+                                               set_int(mouse_down, 1); \
+                                               set_int(animate, 1); \
+                                               emit("elm,action,press", ""); \
+                                               run_program(PROGRAM:"pressed_effect"); \
+                                       } \
+                               } \
+                       } \
+                       program { name: "unpressed"; \
+                               signal: "mouse,up,1"; \
+                               source: "event"; \
+                               script { \
+                                       if (get_int(mouse_down) == 1) { \
+                                               set_int(mouse_down, 0); \
+                                               if (get_int(disabled) == 0) { \
+                                                       if (get_int(animate) == 0) { \
+                                                               emit("elm,action,unpress", ""); \
+                                                               run_program(PROGRAM:"unpressed_effect"); \
+                                                       } else { \
+                                                               set_state(PART:"clipper", "pressed", 0.0); \
+                                                               set_state(PART:"tizen_vg_shape2", "pressed", 0.0); \
+                                                               set_state(PART:"tizen_vg_shape_clipper2", "pressed", 0.0); \
+                                                               set_int(animate, 0); \
+                                                               run_program(PROGRAM:"delay_unpressed_effect"); \
+                                                       } \
+                                               } \
+                                       } \
+                               } \
+                       } \
+                       program { name: "touch_snd"; \
+                               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 { name: "touch_sound"; \
+                               action: RUN_PLUGIN "touch_sound"; \
+                       } \
+                       program { name: "clicked_signal"; \
+                               in: 0.001 0.0; \
+                               action: SIGNAL_EMIT "elm,action,click" ""; \
+                       } \
+                       program { name: "disable"; \
+                               signal: "elm,state,disabled"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(disabled, 1); \
+                                       if (get_int(animate) == 1) return; \
+                                       set_state(PART:"clipper", "disabled", 0.0); \
+                                       set_state(PART:"tizen_vg_shape_clipper", "disabled", 0.0); \
+                               } \
+                       } \
+                       program { name: "enable"; \
+                               signal: "elm,state,enabled"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(disabled, 0); \
+                                       set_state(PART:"clipper", "default", 0.0); \
+                                       set_state(PART:"tizen_vg_shape_clipper", "default", 0.0); \
+                               } \
+                       } \
+                       program { name: "multi_down"; \
+                               signal: "elm,action,multi,down"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 1); \
+                               } \
+                       } \
+                       program { name: "multi_up"; \
+                               signal: "elm,action,multi,up"; \
+                               source: "elm"; \
+                               script { \
+                                       set_int(multi_down, 0); \
+                               } \
+                       } \
+                       program { name: "pass_event_enable"; \
+                               signal: "elm,event,pass,enabled"; \
+                               source: "elm"; \
+                               script { \
+                                       set_mouse_events(PART:"event", 0); \
+                               } \
+                       } \
+                       program { name: "pass_event_disable"; \
+                               signal: "elm,event,pass,disabled"; \
+                               source:"elm"; \
+                               script { \
+                                       set_mouse_events(PART:"event", 1); \
+                               } \
+                       } \
+                       program { name: "repeat_event_enable"; \
+                               signal: "elm,event,repeat,enabled"; \
+                               source: "elm"; \
+                               script { \
+                                       set_mouse_events(PART:"event", 1); \
+                               } \
+                       } \
+                       program { name: "repeat_event_disable"; \
+                               signal: "elm,event,repeat,disabled"; \
+                               source:"elm"; \
+                               script { \
+                                       set_mouse_events(PART:"event", 0); \
+                               } \
                        } \
                } \
+       }
+
+#define PRESS_EFFECT_DEFAULT_SCRIPT_VAR \
+       public mouse_down = 0; \
+       public multi_down = 0; \
+       public animate = 0; \
+
+#define PRESS_EFFECT_DEFAULT_PROGRAMS \
+       program { name: "pressed_effect"; \
+               action: STATE_SET "pressed_effect" 0.0; \
+               target: "bg_press"; \
+               after: "pressed_effect2"; \
        } \
-       programs { \
-               program { name: "pressed_effect"; \
-                       action: STATE_SET "ready" 0.0; \
-                       target: "tizen_vg_shape2"; \
-                       target: "tizen_vg_shape_clipper2"; \
-                       after: "pressed_effect2"; \
-               } \
-               program { name: "pressed_effect2"; \
-                       action: STATE_SET "pressed" 0.0; \
-                       target: "tizen_vg_shape2"; \
-                       target: "clipper"; \
-                       target: "tizen_vg_shape_clipper2"; \
-                       transition: TRANSITION_GLIDE(0.15); \
-                       after: "pressed_effect3"; \
+       program { name: "pressed_effect2"; \
+               action: STATE_SET "pressed" 0.0; \
+               target: "bg_press"; \
+               transition: TRANSITION_GLIDE(0.15); \
+               after: "pressed_effect3"; \
+       } \
+       program { name: "pressed_effect3"; \
+               script { \
+                       set_int(animate, 0); \
                } \
-               program { name: "pressed_effect3"; \
-                       script { \
-                               set_int(animate, 0); \
+       } \
+       program { name: "delay_unpressed_effect"; \
+               in: 0.1 0.0; \
+               after: "unpressed_effect"; \
+       } \
+       program { name: "unpressed_effect"; \
+               action: STATE_SET "default" 0.0; \
+               target: "bg_press"; \
+               transition: TRANSITION_GLIDE(0.45); \
+       } \
+       program { name: "pressed"; \
+               signal: "mouse,down,1*"; \
+               source: "over"; \
+               script { \
+                       if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) { \
+                               stop_program(PROGRAM:"delay_unpressed_effect"); \
+                               set_int(mouse_down, 1); \
+                               set_int(animate, 1); \
+                               emit("elm,action,press", ""); \
+                               run_program(PROGRAM:"pressed_effect"); \
                        } \
                } \
-               program { name: "delay_unpressed_effect"; \
-                       in: 0.1 0.0; \
-                       after: "unpressed_effect"; \
-               } \
-               program { name: "unpressed_effect"; \
-                       script { \
-                               if (get_int(disabled) == 0) { \
-                                       run_program(PROGRAM:"unpressed_effect2"); \
+       } \
+       program { name: "unpressed"; \
+               signal: "mouse,up,1"; \
+               source: "over"; \
+               script { \
+                       if (get_int(mouse_down) == 1) { \
+                               set_int(mouse_down, 0); \
+                               if (get_int(animate) == 0) { \
+                                       run_program(PROGRAM:"unpressed_effect"); \
                                } else { \
-                                       run_program(PROGRAM:"disabled_effect"); \
-                                       run_program(PROGRAM:"disabled_effect3"); \
+                                       set_state(PART:"bg_press", "pressed", 0.0); \
+                                       set_int(animate, 0); \
+                                       run_program(PROGRAM:"delay_unpressed_effect"); \
                                } \
+                               emit("elm,action,unpress", ""); \
                        } \
                } \
-               program { name: "unpressed_effect2"; \
-                       action: STATE_SET "ready" 0.0; \
-                       target: "tizen_vg_shape_clipper2"; \
-                       transition: TRANSITION_GLIDE(0.45); \
-                       after: "unpressed_effect4"; \
-               } \
-               program { name: "unpressed_effect4"; \
-                       action: STATE_SET "default" 0.0; \
-                       target: "clipper"; \
-                       after: "finished_animation"; \
+       } \
+       program { name: "touch_snd"; \
+               signal: "mouse,clicked,1"; \
+               source: "over"; \
+                       script { \
+                               if (get_int(multi_down) == 0) { \
+                                       run_program(PROGRAM:"touch_sound"); \
+                                       run_program(PROGRAM:"clicked_signal"); \
+                               } \
+                       } \
+       } \
+       program { name: "touch_sound"; \
+               action: RUN_PLUGIN "touch_sound"; \
+       } \
+       program { name: "clicked_signal"; \
+               in: 0.001 0.0; \
+               action: SIGNAL_EMIT "elm,action,click" ""; \
+       } \
+       program { name: "multi_down"; \
+               signal: "elm,action,multi,down"; \
+               source: "elm"; \
+               script { \
+                       set_int(multi_down, 1); \
                } \
-               program { name: "disabled_effect"; \
-                       action: STATE_SET "ready" 0.0; \
-                       target: "tizen_vg_shape_clipper2"; \
-                       transition: TRANSITION_GLIDE(0.45); \
+       } \
+       program { name: "multi_up"; \
+               signal: "elm,action,multi,up"; \
+               source: "elm"; \
+               script { \
+                       set_int(multi_down, 0); \
                } \
-               program { name: "disabled_effect3"; \
-                       action: STATE_SET "disabled" 0.0; \
-                       target: "clipper"; \
-                       target: "tizen_vg_shape_clipper"; \
-                       transition: TRANSITION_GLIDE(0.45); \
-                       after: "finished_animation"; \
+       } \
+
+#define SPLIT_CALL_MANAGE_BTN(grp_name, bg_image, icon, bg_color_norm, bg_color_press) \
+       group { name: "elm/button/base/"grp_name; \
+               images { \
+                       image: bg_image COMP; \
+                       image: icon COMP; \
                } \
-               program { name: "finished_animation"; \
-                       action: STATE_SET "default" 0.0; \
-                       target: "tizen_vg_shape2"; \
-                       target: "tizen_vg_shape_clipper2"; \
+               script { \
+                       PRESS_EFFECT_DEFAULT_SCRIPT_VAR \
                } \
-               program { name: "pressed"; \
-                       signal: "mouse,down,1*"; \
-                       source: "event"; \
-                       script { \
-                               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0) && (get_int(disabled) == 0)) { \
-                                       stop_program(PROGRAM:"delay_unpressed_effect"); \
-                                       set_int(mouse_down, 1); \
-                                       set_int(animate, 1); \
-                                       emit("elm,action,press", ""); \
-                                       run_program(PROGRAM:"pressed_effect"); \
+               parts { part { name: "bg"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       image.normal: bg_image; \
+                                       color_class: bg_color_norm; \
                                } \
                        } \
-               } \
-               program { name: "unpressed"; \
-                       signal: "mouse,up,1"; \
-                       source: "event"; \
-                       script { \
-                               if (get_int(mouse_down) == 1) { \
-                                       set_int(mouse_down, 0); \
-                                       if (get_int(disabled) == 0) { \
-                                               if (get_int(animate) == 0) { \
-                                                       emit("elm,action,unpress", ""); \
-                                                       run_program(PROGRAM:"unpressed_effect"); \
-                                               } else { \
-                                                       set_state(PART:"clipper", "pressed", 0.0); \
-                                                       set_state(PART:"tizen_vg_shape2", "pressed", 0.0); \
-                                                       set_state(PART:"tizen_vg_shape_clipper2", "pressed", 0.0); \
-                                                       set_int(animate, 0); \
-                                                       run_program(PROGRAM:"delay_unpressed_effect"); \
-                                               } \
-                                       } \
+                       part { name: "bg_press"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               mouse_events: 1; \
+                               description { state: "default" 0.0; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
+                                       image.normal: bg_image; \
+                                       color_class: "transparent_black"; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       color_class: bg_color_press; \
+                               } \
+                               description { state: "pressed_effect" 0.0; \
+                                       inherit: "pressed" 0.0; \
+                                       rel1 { relative: 0.15 0.15; to: "bg"; } \
+                                       rel2 { relative: 0.85 0.85; to: "bg"; } \
                                } \
                        } \
-               } \
-               program { name: "touch_snd"; \
-                       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"); \
-                                       } \
+                       part { name: "icon"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       rel1.relative: MS_BTN_ICON_L MS_BTN_ICON_T; \
+                                       rel2.relative: MS_BTN_ICON_R MS_BTN_ICON_B; \
+                                       image.normal: icon; \
+                               } \
+                       } \
+                       part { name: "text"; \
+                               type: TEXTBLOCK; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       rel1 { relative: 0.0 1.0; to_y: "icon"; } \
+                                       rel2.relative: 1.0 MS_BTN_TEXT_B; \
+                                       text.style: "held_call_manage_btn"; \
+                               } \
+                       } \
+                       part { name: "over"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       color: COLOR_BG_ALPHA; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
                                } \
                        } \
                } \
-               program { name: "touch_sound"; \
-                       action: RUN_PLUGIN "touch_sound"; \
+               programs { \
+                       PRESS_EFFECT_DEFAULT_PROGRAMS \
                } \
-               program { name: "clicked_signal"; \
-                       in: 0.001 0.0; \
-                       action: SIGNAL_EMIT "elm,action,click" ""; \
+       }
+
+#define END_CALL_REPLY_BTN(grp_name, img_path) \
+       group { name: "elm/button/base/"grp_name; \
+               images { \
+                       image: img_path COMP; \
                } \
-               program { name: "disable"; \
-                       signal: "elm,state,disabled"; \
-                       source: "elm"; \
-                       script { \
-                               set_int(disabled, 1); \
-                               if (get_int(animate) == 1) return; \
-                               set_state(PART:"clipper", "disabled", 0.0); \
-                               set_state(PART:"tizen_vg_shape_clipper", "disabled", 0.0); \
-                       } \
+               script { \
+                       PRESS_EFFECT_DEFAULT_SCRIPT_VAR \
                } \
-               program { name: "enable"; \
-                       signal: "elm,state,enabled"; \
-                       source: "elm"; \
-                       script { \
-                               set_int(disabled, 0); \
-                               set_state(PART:"clipper", "default", 0.0); \
-                               set_state(PART:"tizen_vg_shape_clipper", "default", 0.0); \
+               parts { \
+                       part { name: "bg"; \
+                               type: RECT; \
+                               scale: 1 ; \
+                               description { state: "default" 0.0; \
+                                       min: 0 END_CALL_REPLY_BTN_HEIGHT; \
+                                       color_class: "ec_reply_btn_bg_norm"; \
+                               } \
                        } \
-               } \
-               program { name: "multi_down"; \
-                       signal: "elm,action,multi,down"; \
-                       source: "elm"; \
-                       script { \
-                               set_int(multi_down, 1); \
+                       part { "bg_press"; \
+                               type: RECT; \
+                               scale: 1 ; \
+                               description { state: "default" 0.0; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
+                                       color_class: "ec_reply_btn_bg_norm"; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       color_class: "ec_reply_btn_bg_pressed"; \
+                               } \
+                               description { state: "pressed_effect" 0.0; \
+                                       inherit: "pressed" 0.0; \
+                                       rel1 { relative: 0.15 0.15; to: "bg"; } \
+                                       rel2 { relative: 0.85 0.85; to: "bg"; } \
+                               } \
                        } \
-               } \
-               program { name: "multi_up"; \
-                       signal: "elm,action,multi,up"; \
-                       source: "elm"; \
-                       script { \
-                               set_int(multi_down, 0); \
+                       part { name: "icon.padding.top"; \
+                               type: SPACER; \
+                               scale: 1 ; \
+                               description { state: "default" 0.0; \
+                                       min: 0 END_CALL_REPLY_BTN_ICON_PAD_TOP; \
+                                       fixed: 0 1; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 0.0; to: "bg"; } \
+                                       align: 0.0 0.0; \
+                               } \
                        } \
-               } \
-               program { name: "pass_event_enable"; \
-                       signal: "elm,event,pass,enabled"; \
-                       source: "elm"; \
-                       script { \
-                               set_mouse_events(PART:"event", 0); \
+                       part { name: "icon"; \
+                               type: IMAGE; \
+                               scale: 1 ; \
+                               description { state: "default" 0.0; \
+                                       rel1 { relative: 0.0 1.0; to: "icon.padding.top"; } \
+                                       rel2 { relative: 1.0 1.0; to: "icon.padding.top"; } \
+                                       min: END_CALL_REPLY_BTN_ICON_SIZE; \
+                                       max: END_CALL_REPLY_BTN_ICON_SIZE; \
+                                       fixed: 1 1; \
+                                       image.normal: img_path; \
+                                       color_class: "ec_reply_btn_icon"; \
+                                       align: 0.5 0.0; \
+                               } \
                        } \
-               } \
-               program { name: "pass_event_disable"; \
-                       signal: "elm,event,pass,disabled"; \
-                       source:"elm"; \
-                       script { \
-                               set_mouse_events(PART:"event", 1); \
+                       part { name: "text.padding.top"; \
+                               type: SPACER; \
+                               scale: 1 ; \
+                               description { state: "default" 0.0; \
+                                       min: 0 END_CALL_REPLY_BTN_TXT_PAD_TOP; \
+                                       fixed: 0 1; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 0.0; to: "bg"; } \
+                                       align: 0.0 0.0; \
+                               } \
                        } \
-               } \
-               program { name: "repeat_event_enable"; \
-                       signal: "elm,event,repeat,enabled"; \
-                       source: "elm"; \
-                       script { \
-                               set_mouse_events(PART:"event", 1); \
+                       part { name: "text"; \
+                               type: TEXTBLOCK; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       rel1 { relative: 0.0 1.0; to: "text.padding.top"; } \
+                                       rel2 { relative: 1.0 1.0; to: "text.padding.top"; } \
+                                       min: 0 END_CALL_REPLY_BTN_TXT_HEIGHT; \
+                                       text { \
+                                               fit: 1 1; \
+                                               style:"ec_reply_btn"; \
+                                       } \
+                               } \
                        } \
-               } \
-               program { name: "repeat_event_disable"; \
-                       signal: "elm,event,repeat,disabled"; \
-                       source:"elm"; \
-                       script { \
-                               set_mouse_events(PART:"event", 0); \
+                       part { name: "over"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       color: COLOR_BG_ALPHA; \
+                                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                                       rel2 { relative: 1.0 1.0; to: "bg"; } \
+                               } \
                        } \
                } \
-       } \
-}
+               programs { \
+                       PRESS_EFFECT_DEFAULT_PROGRAMS \
+               } \
+       }
 
 collections {
 
@@ -1360,29 +1791,29 @@ collections {
                }
        }
 
-/* This effect is for buttons of Action bar layout when they are enabled */
+/* Action bar buttons */
        ACTION_BTN("callui_action_btn_add", ICON_IMG_PATH"/call_btn_addcall.png")
        ACTION_BTN("callui_action_btn_keypad", ICON_IMG_PATH"/call_btn_keypad.png")
+       ACTION_BTN("callui_action_btn_contacts", ICON_IMG_PATH"/call_btn_contacts.png")
        ACTION_BTN_TOGGLE("callui_action_btn_speaker", ICON_IMG_PATH"/call_btn_volume.png")
        ACTION_BTN_TOGGLE("callui_action_btn_mute", ICON_IMG_PATH"/call_btn_mute.png")
        ACTION_BTN_TOGGLE("callui_action_btn_headset", ICON_IMG_PATH"/call_btn_bluetooth.png")
-       ACTION_BTN("callui_action_btn_contacts", ICON_IMG_PATH"/call_btn_contacts.png")
 
-/* This style is for End button in quickpanel view */
-       QP_MC_TOGGLE_BTN(callui_qp_btn_end, "qp_mc_reject_norm", "qp_mc_reject_press", ICON_IMG_PATH"/call_noti_btn_end.png");
-       QP_MC_TOGGLE_BTN(callui_qp_btn_call, "qp_mc_accept_norm", "qp_mc_accept_press", ICON_IMG_PATH"/call_noti_btn_send.png");
+/* Quick panel Mini Control accept and reject buttons */
+       QP_MC_TOGGLE_BTN("callui_qp_btn_end", "qp_mc_reject_norm", "qp_mc_reject_press", ICON_IMG_PATH"/call_noti_btn_end.png");
+       QP_MC_TOGGLE_BTN("callui_qp_btn_call", "qp_mc_accept_norm", "qp_mc_accept_press", ICON_IMG_PATH"/call_noti_btn_send.png");
 
-/* This style is for mute/unhold button in quickpanel view */
-       QP_MC_TOGGLE_BTN(callui_qp_btn_mute, "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_mute.png");
-       QP_MC_TOGGLE_BTN(callui_qp_btn_mute_on, "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_mute.png");
+/* Quick panel Mini Control mute button */
+       QP_MC_TOGGLE_BTN("callui_qp_btn_mute", "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_mute.png");
+       QP_MC_TOGGLE_BTN("callui_qp_btn_mute_on", "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_mute.png");
 
-/* This style is for speaker/unhold button in quickpanel view */
-       QP_MC_TOGGLE_BTN(callui_qp_btn_speaker, "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_speaker.png");
-       QP_MC_TOGGLE_BTN(callui_qp_btn_speaker_on, "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_speaker.png");
+/* Quick panel Mini Control speaker button */
+       QP_MC_TOGGLE_BTN("callui_qp_btn_speaker", "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_speaker.png");
+       QP_MC_TOGGLE_BTN("callui_qp_btn_speaker_on", "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_speaker.png");
 
-/* This style is for speaker/resume button in quickpanel view */
-       QP_MC_TOGGLE_BTN(callui_qp_btn_resume, "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_resume.png");
-       QP_MC_TOGGLE_BTN(callui_qp_btn_resume_on, "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_resume.png");
+/* Quick panel Mini Control resume button */
+       QP_MC_TOGGLE_BTN("callui_qp_btn_resume", "qp_mc_toogle_norm", "qp_mc_toogle_norm", ICON_IMG_PATH"/call_noti_btn_resume.png");
+       QP_MC_TOGGLE_BTN("callui_qp_btn_resume_on", "qp_mc_toogle_off", "qp_mc_toogle_off", ICON_IMG_PATH"/call_noti_btn_resume.png");
 
 /* Active notification buttons */
        ACTIVE_NOTI_BTN("callui_active_noti_accept", "active_noti_accept_call", "active_noti_accept_call");
@@ -1395,4 +1826,12 @@ collections {
 /* Multicall list buttons */
        CIRCLE_BTN_WITH_ICON("callui_multi_list_end_call", MULTI_LIST_LIST_ICON_BG_SIZE, "multi_list_btn_end_call", "multi_list_btn_end_call", IMG_SRC_DIR/"call_btn_ic_end.png", "btn_icon_def_color");
        CIRCLE_BTN_WITH_ICON("callui_multi_list_split_call", MULTI_LIST_LIST_ICON_BG_SIZE, "multi_list_btn_split_call", "multi_list_btn_split_call", IMG_SRC_DIR/"call_btn_ic_split.png", "btn_icon_def_color");
+
+/* Multicall split call manage buttons */
+       SPLIT_CALL_MANAGE_BTN("callui_multi_split_merge_btn", IMG_SRC_DIR/"call_multi_hold_btn_merge_bg.png", IMG_SRC_DIR/"call_multi_ic_merge.png", "multi_hold_merge_btn_norm", "multi_hold_merge_btn_press");
+       SPLIT_CALL_MANAGE_BTN("callui_multi_split_swap_btn", IMG_SRC_DIR/"call_multi_hold_btn_swap_bg.png", IMG_SRC_DIR/"call_multi_ic_swap.png", "multi_hold_swap_btn_norm", "multi_hold_swap_btn_press");
+
+/* End call buttons */
+       END_CALL_REPLY_BTN("callui_endcall_callback", IMG_SRC_DIR/"call_end_call.png");
+       END_CALL_REPLY_BTN("callui_endcall_message", IMG_SRC_DIR/"call_end_message.png");
 }
index ac02710..6b783e5 100644 (file)
@@ -233,7 +233,7 @@ callui_result_e _callui_display_set_timeout(callui_display_h disp, callui_displa
        int timeout_params[CALLUI_TIMEOUT_PARAMS_COUNT] = { 0 };
        timeout_params[2] = powerkey_mode;
 
-       switch(timeout_type) {
+       switch (timeout_type) {
        case CALLUI_DISPLAY_TIMEOUT_SET:
                timeout_params[0] = 10;
                timeout_params[1] = 20;
index 24b50a8..51f65bf 100644 (file)
@@ -172,7 +172,7 @@ callui_result_e _callui_listeners_coll_call_listeners(_callui_listeners_coll_t *
        _callui_listener_t *data;
 
        EINA_LIST_FOREACH(listeners_coll->list, l, data) {
-               if(data != NULL) {
+               if (data != NULL) {
                        va_list args;
                        va_start(args, listeners_coll);
                        data->handler(data, args);
@@ -210,7 +210,7 @@ callui_result_e _callui_listeners_coll_remove_listener(_callui_listeners_coll_t
        _callui_listener_t *data;
 
        EINA_LIST_FOREACH_SAFE(listeners_coll->list, l, l_next, data) {
-               if(cb_func == data->cb_func && cb_data == data->cb_data) {
+               if (cb_func == data->cb_func && cb_data == data->cb_data) {
                        free(data);
                        if (listeners_coll->is_locked) {
                                listeners_coll->is_need_validate = true;
index 47ae779..b57da05 100644 (file)
@@ -260,7 +260,7 @@ static callui_result_e __call_data_init(callui_call_data_t *callui_call_data, ca
        CALLUI_RETURN_VALUE_IF_FAIL(res == CM_ERROR_NONE, _callui_utils_convert_cm_res(res));
 
        callui_call_data->is_dialing = false;
-       if(call_state == CM_CALL_STATE_DIALING) {
+       if (call_state == CM_CALL_STATE_DIALING) {
                callui_call_data->is_dialing = true;
        }
        callui_call_data->call_ct_info.person_id = -1;
@@ -665,7 +665,7 @@ Eina_List *_callui_stp_get_conference_call_list(callui_state_provider_h stp_h)
                for (; l != NULL; l = g_slist_next(l)) {
                        callui_conf_call_data_t *conf_call_data =
                                        __conf_call_data_create((cm_conf_call_data_t*)l->data);
-                       if(conf_call_data == NULL) {
+                       if (conf_call_data == NULL) {
                                err("Create conference call data failed.");
                                res = CALLUI_RESULT_ALLOCATION_FAIL;
                                break;
index e0fd114..7fcebdb 100644 (file)
@@ -27,8 +27,9 @@
 #include "callui-state-provider.h"
 #include "callui-dpm.h"
 
-#define CALLUI_GROUP_CALL_BACK_BTN             "call_back"
-#define CALLUI_GROUP_MSG_BTN                   "message_button"
+#define CALLUI_GROUP_CALL_BACK_BTN             "callui_endcall_callback"
+#define CALLUI_GROUP_MSG_BTN                   "callui_endcall_message"
+
 #define CALLUI_GROUP_ENDCALL_VIEW_LY   "end_call_view_ly"
 #define CALLUI_APP_CONTROL_MIME_CONTACT        "application/vnd.tizen.contact"
 #define CALLUI_OUTGOING_CALL_TIME_DURATION_STR "00:00"
@@ -65,8 +66,8 @@ static callui_result_e __callui_view_callend_ondestroy(call_view_data_base_t *vi
 static callui_result_e __create_main_content(callui_view_callend_h vd, Evas_Object *parent);
 static callui_result_e __update_displayed_data(callui_view_callend_h vd);
 
-static void __call_back_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void __msg_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __call_back_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
 
 static char *__endcall_gl_item_text_cb(void *data, Evas_Object *obj, const char *part);
 
@@ -214,30 +215,32 @@ static callui_result_e __create_main_content(callui_view_callend_h vd, Evas_Obje
 
 static Evas_Object *__create_call_back_btn(callui_view_callend_h vd)
 {
-       Evas_Object *button_call_back = _callui_load_edj(vd->reply_btns_box, CALLUI_CALL_EDJ_PATH, CALLUI_GROUP_CALL_BACK_BTN);
-       CALLUI_RETURN_NULL_IF_FAIL(button_call_back);
-       edje_object_signal_callback_add(_EDJ(button_call_back), "clicked", "reply_btn", __call_back_btn_click_cb, vd);
-       elm_object_translatable_part_text_set(button_call_back, "text", "IDS_CALL_BUTTON_CALL");
+       Evas_Object *callback_btn = elm_button_add(vd->reply_btns_box);
+       CALLUI_RETURN_NULL_IF_FAIL(callback_btn);
+       elm_object_style_set(callback_btn, CALLUI_GROUP_CALL_BACK_BTN);
+       evas_object_smart_callback_add(callback_btn, "clicked", __call_back_btn_click_cb, vd);
+       elm_object_translatable_part_text_set(callback_btn, "text", "IDS_CALL_BUTTON_CALL");
 
-       evas_object_size_hint_weight_set(button_call_back, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(button_call_back, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_show(button_call_back);
+       evas_object_size_hint_weight_set(callback_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(callback_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(callback_btn);
 
-       return button_call_back;
+       return callback_btn;
 }
 
 static Evas_Object *__create_message_btn(callui_view_callend_h vd)
 {
-       Evas_Object *button_message = _callui_load_edj(vd->reply_btns_box, CALLUI_CALL_EDJ_PATH, CALLUI_GROUP_MSG_BTN);
-       CALLUI_RETURN_NULL_IF_FAIL(button_message);
-       edje_object_signal_callback_add(_EDJ(button_message), "clicked", "reply_btn", __msg_btn_click_cb, vd);
-       elm_object_translatable_part_text_set(button_message, "text", "IDS_COM_BODY_MESSAGE");
+       Evas_Object *message_btn = elm_button_add(vd->reply_btns_box);
+       CALLUI_RETURN_NULL_IF_FAIL(message_btn);
+       elm_object_style_set(message_btn, CALLUI_GROUP_MSG_BTN);
+       evas_object_smart_callback_add(message_btn, "clicked", __msg_btn_click_cb, vd);
+       elm_object_translatable_part_text_set(message_btn, "text", "IDS_COM_BODY_MESSAGE");
 
-       evas_object_size_hint_weight_set(button_message, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(button_message, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_show(button_message);
+       evas_object_size_hint_weight_set(message_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(message_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(message_btn);
 
-       return button_message;
+       return message_btn;
 }
 
 static callui_result_e __create_single_contact_info(callui_view_callend_h vd, const callui_call_data_t *call_data)
@@ -463,7 +466,7 @@ static callui_result_e __update_displayed_data(callui_view_callend_h vd)
        return CALLUI_RESULT_OK;
 }
 
-static void __call_back_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void __call_back_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
 {
        CALLUI_RETURN_IF_FAIL(data);
 
@@ -513,7 +516,7 @@ static void __launch_contact_app(const char *operation, const char *call_number,
                err("app_control_send_launch_request() is failed. ret[%d]", ret);
        }
 
-       if(ret != APP_CONTROL_ERROR_NONE) {
+       if (ret != APP_CONTROL_ERROR_NONE) {
                _callui_common_exit_app();
        }
 
@@ -600,13 +603,13 @@ static void __add_contact_click_cb(void *data, Evas_Object *obj, const char *emi
        evas_object_show(vd->create_update_popup);
 }
 
-static void __msg_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void __msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
 {
        CALLUI_RETURN_IF_FAIL(data);
        callui_view_callend_h vd = data;
        callui_app_data_t *ad = vd->base_view.ad;
 
-       edje_object_signal_callback_del_full(_EDJ(obj), "clicked", "reply_btn", __msg_btn_click_cb, vd);
+       evas_object_smart_callback_del_full(obj, "clicked", __msg_btn_click_cb, vd);
 
        _callui_common_launch_msg_composer(ad, vd->call_number, true);
 }
index 2e2d2a6..e40b5fb 100755 (executable)
@@ -169,7 +169,7 @@ Evas_Object *_callui_create_cid_thumbnail_with_size(Evas_Object *parent,
                if (!STRING_EMPTY(path) && (strcmp(path, "default") != 0)) {
 
                        Evas_Object *image = elm_image_add(layout);
-                       if(!image) {
+                       if (!image) {
                                err("image is NULL");
                                DELETE_EVAS_OBJECT(layout);
                                return NULL;
@@ -207,7 +207,7 @@ Evas_Object *_callui_create_cid_thumbnail_with_size(Evas_Object *parent,
        if (size != CALLUI_CID_SIZE_DEFAULT) {
                if (resizable_obj == layout) {
                        thumbnail = elm_grid_add(parent);
-                       if(!thumbnail) {
+                       if (!thumbnail) {
                                err("thumbnail is NULL");
                                DELETE_EVAS_OBJECT(layout);
                                return NULL;
index 13d4656..b2874ea 100755 (executable)
@@ -25,8 +25,8 @@
 #include "callui-view-elements.h"
 #include "callui-state-provider.h"
 
-#define CALLUI_GROUP_SPLIT_MERGE_BTN           "merge_btn"
-#define CALLUI_GROUP_SPLIT_SWAP_BTN                    "swap_btn"
+#define CALLUI_GROUP_SPLIT_MERGE_BTN           "callui_multi_split_merge_btn"
+#define CALLUI_GROUP_SPLIT_SWAP_BTN                    "callui_multi_split_swap_btn"
 #define CALLUI_GROUP_SPLIT_ACTIVE_INFO         "split_active_info"
 #define CALLUI_GROUP_SPLIT_HOLD_INFO           "split_hold_info"
 #define CALLUI_GROUP_SPLIT_CALLERS_INFO                "split_callers_info"
@@ -76,8 +76,8 @@ static callui_result_e __create_merge_swap_btns(Evas_Object *parent, callui_app_
 
 static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
 static void __mng_callers_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
-static void __merge_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
-static void __swap_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
+static void __merge_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __swap_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
 static void __keypad_show_state_change_cd(void *data, Eina_Bool visibility);
 static Eina_Bool __call_duration_timer_cb(void* data);
 static callui_result_e __init_call_duration_timer(callui_view_mc_split_h vd);
@@ -217,12 +217,11 @@ static callui_result_e __create_main_content(callui_view_mc_split_h vd, Evas_Obj
 
 static Evas_Object *__create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text)
 {
-       Evas_Object *layout = elm_layout_add(parent);
-       elm_layout_file_set(layout, CALLUI_CALL_EDJ_PATH, name);
-
-       elm_object_translatable_part_text_set(layout, CALLUI_PART_TEXT_MERGE_SWAP_BTN, text);
-
-       return layout;
+       Evas_Object *btn = elm_button_add(parent);
+       CALLUI_RETURN_NULL_IF_FAIL(btn);
+       elm_object_style_set(btn, name);
+       elm_object_translatable_part_text_set(btn, CALLUI_PART_TEXT_MERGE_SWAP_BTN, text);
+       return btn;
 }
 
 static void __update_hold_active_layout(Evas_Object *layout, const callui_call_data_t *call_data)
@@ -299,13 +298,13 @@ static callui_result_e __create_merge_swap_btns(Evas_Object *parent, callui_app_
 {
        Evas_Object *merge = __create_merge_swap_btn(parent, CALLUI_GROUP_SPLIT_MERGE_BTN, "IDS_CALL_BODY_MERGE_T_CALL");
        CALLUI_RETURN_VALUE_IF_FAIL(merge, CALLUI_RESULT_ALLOCATION_FAIL);
+       evas_object_smart_callback_add(merge, "clicked", __merge_btn_click_cb, ad);
        elm_object_part_content_set(parent, CALLUI_PART_SWALLOW_MERGE, merge);
-       edje_object_signal_callback_add(_EDJ(merge), "clicked", "hold_call_btn", __merge_btn_click_cb, ad);
 
        Evas_Object *swap = __create_merge_swap_btn(parent, CALLUI_GROUP_SPLIT_SWAP_BTN, "IDS_CALL_SK_MULTICALL_SWAP");
        CALLUI_RETURN_VALUE_IF_FAIL(merge, CALLUI_RESULT_ALLOCATION_FAIL);
+       evas_object_smart_callback_add(swap, "clicked", __swap_btn_click_cb, ad);
        elm_object_part_content_set(parent, CALLUI_PART_SWALLOW_SWAP, swap);
-       edje_object_signal_callback_add(_EDJ(swap), "clicked", "hold_call_btn", __swap_btn_click_cb, ad);
 
        return CALLUI_RESULT_OK;
 }
@@ -409,7 +408,7 @@ static void __mng_callers_btn_click_cb(void *data, Evas_Object *obj, const char
        _callui_vm_change_view(ad->view_manager, CALLUI_VIEW_MULTICALL_LIST);
 }
 
-static void __merge_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src)
+static void __merge_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
 {
        callui_app_data_t *ad = (callui_app_data_t *)data;
 
@@ -419,7 +418,7 @@ static void __merge_btn_click_cb(void *data, Evas_Object *obj, const char *emiss
        }
 }
 
-static void __swap_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src)
+static void __swap_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
 {
        callui_app_data_t *ad = (callui_app_data_t *)data;
 
index 4a8c1ef..e357a40 100644 (file)
@@ -468,7 +468,7 @@ bool _callui_window_get_above_lockscreen_state(callui_window_h window_h)
        int id = elm_win_aux_hint_id_get(window_h->win, "wm.policy.win.above.lock");
        if (id >= 0) {
                const char *value = elm_win_aux_hint_val_get(window_h->win, id);
-               if(value) {
+               if (value) {
                        sec_dbg("Aux hint value [%s]", value);
                        if (!strcmp(value, "1")) {
                                res = true;
index 455c2b2..1d03c59 100755 (executable)
@@ -401,7 +401,7 @@ static bool __app_init(callui_app_data_t *ad)
        ad->dpm = _callui_dpm_create();
        CALLUI_RETURN_VALUE_IF_FAIL(ad->dpm, false);
 
-       if(_callui_dpm_is_need_enforce_change_password(ad->dpm)) {
+       if (_callui_dpm_is_need_enforce_change_password(ad->dpm)) {
                _callui_window_set_quickpanel_disable(ad->window, true);
        }