[Button] Added focus for buttons.
authorAmit Kamboj <amit.kamboj@samsung.com>
Tue, 11 Jun 2013 12:31:26 +0000 (18:01 +0530)
committerSungho Kwak <sungho1.kwak@samsung.com>
Thu, 20 Jun 2013 12:38:39 +0000 (21:38 +0900)
Change-Id: Ib9e83de8e4e1041909256b4af696516403193bd8

themes/images/tizen-hd/Controls/00_button_01_focus.png [new file with mode: 0644]
themes/images/tizen-hd/Controls/00_contacts_button_focus.png [changed mode: 0755->0644]
themes/images/tizen-hd/Naviframe/00_toolbar_button_focus.png [new file with mode: 0644]
themes/images/tizen-hd/Naviframe/Icon/00_icon_focus.png [new file with mode: 0644]
themes/widgets/button.edc

diff --git a/themes/images/tizen-hd/Controls/00_button_01_focus.png b/themes/images/tizen-hd/Controls/00_button_01_focus.png
new file mode 100644 (file)
index 0000000..39fb82a
Binary files /dev/null and b/themes/images/tizen-hd/Controls/00_button_01_focus.png differ
diff --git a/themes/images/tizen-hd/Naviframe/00_toolbar_button_focus.png b/themes/images/tizen-hd/Naviframe/00_toolbar_button_focus.png
new file mode 100644 (file)
index 0000000..5a80838
Binary files /dev/null and b/themes/images/tizen-hd/Naviframe/00_toolbar_button_focus.png differ
diff --git a/themes/images/tizen-hd/Naviframe/Icon/00_icon_focus.png b/themes/images/tizen-hd/Naviframe/Icon/00_icon_focus.png
new file mode 100644 (file)
index 0000000..be33990
Binary files /dev/null and b/themes/images/tizen-hd/Naviframe/Icon/00_icon_focus.png differ
index 287de78..a3e043b 100644 (file)
       alias: "elm/button/base/icon_and_text/center";
       alias: "elm/button/base/nocontents/search_button";
       alias: "elm/button/base/style1/multiline";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_press.png" COMP;
          image: "00_button_01_dim.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_TEXT_STYLE1_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
    group { name: "elm/button/base/style2";
       alias: "elm/button/base/text_only/style2";
       alias: "elm/button/base/style2/multiline";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_press.png" COMP;
          image: "00_button_01_dim.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_TEXT_STYLE2_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
       alias: "elm/button/base/text_only/sweep";
       alias: "elm/button/base/hidden";
       alias: "elm/button/base/sweep/multiline";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_press.png" COMP;
          image: "00_button_01_dim.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_SWEEP_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
       alias: "elm/button/base/popup_button/customstyle";
       alias: "elm/button/base/popup_button/verticalbuttonstyle";
       alias: "elm/button/base/popup_button/default/multiline";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_dim.png" COMP;
          image: "00_button_01_press.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_POPUP_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
 ///////////////////////////////////////////////////////////////////////////////////////
 #define BUTTON_SCROLL_JUMPTO(style_name, image_normal)\
    group { name: "elm/button/base/"style_name; \
+      data { \
+         item: "focus_highlight" "on"; \
+      } \
       images { \
          image: "00_button_01.png" COMP; \
          image: "00_button_01_press.png" COMP; \
          image: "00_button_01_dim.png" COMP; \
          image: image_normal COMP; \
+         image: "00_button_01_focus.png" COMP; \
       }\
       parts { \
          part { name: "button_image";\
                image.normal: "00_button_01_dim.png"; \
             } \
          } \
+         part { name: "focus_image"; \
+            scale: 1; \
+            mouse_events: 0; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               rel1.to : "button_image"; \
+               rel2.to : "button_image"; \
+               image { \
+                  normal: "00_button_01_focus.png"; \
+                  border: BUTTON_DEFAULT_STYLE_BG_BORDER_INC; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "focused" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
          part { name: "padding_left_top"; \
             type: SPACER; \
             scale: 1; \
             target: "button_image"; \
             target: "jump_image"; \
          } \
+         program { name: "action_focus"; \
+            signal: "elm,action,focus_highlight,show"; \
+            source: "elm"; \
+            action: STATE_SET "focused" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { name: "action_unfocus"; \
+            signal: "elm,action,focus_highlight,hide"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "focus_image"; \
+         } \
       } \
    }
 
@@ -3320,10 +3423,14 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
 
 ////////////////////////////////////////////////////////////////////////
    group { name: "elm/button/base/default";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_press.png" COMP;
          image: "00_button_01_dim.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
@@ -3352,6 +3459,25 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_DEFAULT_STYLE_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
@@ -3685,23 +3811,17 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
@@ -3820,12 +3940,16 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
 ///////////////////////////////////////////////////////////////////////////////////////
 #define BUTTON_COLORSELECTOR_STYLES(style_name, image_normal, image_press) \
    group { name: "elm/button/base/"style_name; \
+      data { \
+         item: "focus_highlight" "on"; \
+      } \
       images { \
          image: image_normal COMP; \
          image: image_press COMP; \
          image: image_dim COMP; \
          image: "00_button_01.png" COMP; \
          image: "00_button_01_press.png" COMP; \
+         image: "00_button_01_focus.png" COMP; \
       } \
       parts { \
          part { name: "button_image"; \
@@ -3855,6 +3979,27 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_button_01_press.png"; \
             } \
          } \
+         part { name: "focus_image"; \
+            scale: 1; \
+            mouse_events: 0; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               min: BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC; \
+               max: BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC; \
+               visible: 0; \
+               rel1.to : "button_image"; \
+               rel2.to : "button_image"; \
+               image { \
+                  normal: "00_button_01_focus.png"; \
+                  border: BUTTON_COLORSELECTOR_BG_BORDER_INC; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "focused" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
          part { name: "button_center_part"; \
             scale: 1; \
             clip_to: "icon_clipper"; \
@@ -3969,6 +4114,18 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             target: "button_center_part"; \
             target: ""icon_clipper""; \
          } \
+         program { name: "action_focus"; \
+            signal: "elm,action,focus_highlight,show"; \
+            source: "elm"; \
+            action: STATE_SET "focused" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { name: "action_unfocus"; \
+            signal: "elm,action,focus_highlight,hide"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "focus_image"; \
+         } \
       } \
    }
 ///////////////////////////////////////////////////////////////////////////////////////
@@ -3979,9 +4136,13 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
 
    group { name: "elm/button/base/multibuttonentry";
       alias: "elm/button/base/text_only/multibuttonentry";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_contacts_button.png" COMP;
          image: "00_contacts_button_press.png" COMP;
+         image: "00_contacts_button_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
@@ -4017,6 +4178,25 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_contacts_button_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_contacts_button_focus.png";
+                  border: BUTTON_CONTACT_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding.left";
             type: RECT;
             scale: 1;
@@ -4232,20 +4412,17 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
@@ -4254,9 +4431,13 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
    group { name: "elm/button/base/naviframe/back_btn/default";
       alias: "elm/button/base/naviframe/prev_btn/default";
       alias: "elm/button/base/naviframe/end_btn/default";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_icon_back.png" COMP;
          image: "00_icon_SIP_close.png" COMP;
+         image: "00_icon_focus.png" COMP;
       }
       parts {
          part { name: "button_image";
@@ -4273,6 +4454,24 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                visible: 0;
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_icon_focus.png";
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "back_button";
             scale: 1;
             mouse_events: 0;
@@ -4423,16 +4622,32 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             action: STATE_SET "default" 0.0;
             target: "back_button";
          }
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
+            action: STATE_SET "focused" 0.0;
+            target: "focus_image";
+         }
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "focus_image";
+         }
       }
    }
 
 //////////////////////////////////////////////////////////////
    group { name: "elm/button/base/naviframe/toolbar/default";
       alias: "elm/button/base/naviframe/title/default";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_toolbar_button.png" COMP;
          image: "00_toolbar_button_press.png" COMP;
          image: "00_toolbar_button_dim.png" COMP;
+         image: "00_toolbar_button_focus.png" COMP;
       }
       styles{
          style { name: "btn_naviframe_toolbar";
@@ -4499,6 +4714,25 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_toolbar_button_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_toolbar_button_focus.png";
+                  border: BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
@@ -4901,20 +5135,17 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             signal: "elm,state,orient,180";
             action: SIGNAL_EMIT "elm,state,portrait" "elm";
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
@@ -5148,6 +5379,9 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
          image: "00_button_icon_arrow.png" COMP;
          image: "00_button_icon_arrow_press.png" COMP;
       }
+      data {
+         item: "focus_highlight" "on";
+      }
       styles{
          style { name: "btn_toolbar_segmentedcontrol";
             base: "font=Tizen:style=Bold font_size="BUTTON_TOOLBAR_SEGMENTEDCONTROL_TEXT_FONT_SIZE_INC" align=center color=#ffffff ellipsis=1.0 wrap=none text_class=tizen";
@@ -5187,6 +5421,27 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_toolbar_button_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               min: BUTTON_TOOLBAR_SEGMENTEDCONTROL_BG_NORMAL_MIN_INC;
+               max: BUTTON_TOOLBAR_SEGMENTEDCONTROL_BG_NORMAL_MAX_INC;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_toolbar_button_focus.png";
+                  border: BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
@@ -5500,26 +5755,29 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }
 
 ////////////////////////////////////////////////////////////////////
    group { name: "elm/button/base/naviframe/title_icon";
+      data {
+         item: "focus_highlight" "on";
+      }
+      images {
+         image: "00_icon_focus.png" COMP;
+      }
       parts {
          part { name: "button_image";
             type: RECT;
@@ -5535,6 +5793,24 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                max: BUTTON_NAVIFRAME_LANDSCAPE_TITLE_ICON_BG_MIN_MAX_INC;
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_icon_focus.png";
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "top_padding";
             type: RECT;
             scale: 1;
@@ -5712,7 +5988,7 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             target: "button_image";
             target: "top_padding";
          }
-/*         program { name: "landscape_mode";
+         program { name: "landscape_mode";
             source: "elm";
             signal: "elm,state,orient,90";
             action: SIGNAL_EMIT "elm,state,landscape" "elm";
@@ -5731,14 +6007,30 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             source: "elm";
             signal: "elm,state,orient,180";
             action: SIGNAL_EMIT "elm,state,portrait" "elm";
-         } */
+         }
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
+            action: STATE_SET "focused" 0.0;
+            target: "focus_image";
+         }
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "focus_image";
+         }
       }
    }
 
 /////////////////////////////////////////////////////////////////////////////////////////
    group { name: "elm/button/base/naviframe/more/default";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_icon_more.png" COMP;
+         image: "00_icon_focus.png" COMP;
       }
       parts {
          part { name: "button_image";
@@ -5755,6 +6047,24 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                visible: 0;
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_icon_focus.png";
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "more_image";
             scale: 1;
             mouse_events: 0;
@@ -5891,6 +6201,18 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
             signal: "elm,state,orient,180";
             action: SIGNAL_EMIT "elm,state,portrait" "elm";
          }
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
+            action: STATE_SET "focused" 0.0;
+            target: "focus_image";
+         }
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "focus_image";
+         }
       }
    }
 
@@ -6355,11 +6677,15 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
 ///////////////////////////////////////////////////////////////////////////////////////
    group { name: "elm/button/base/expandable_number";
       alias: "elm/button/base/text_only/expandable_number";
+      data {
+         item: "focus_highlight" "on";
+      }
       images {
          image: "00_button_01.png" COMP;
          image: "00_button_01_press.png" COMP;
          image: "00_button_01_dim.png" COMP;
          image: "00_arrow_expand.png" COMP;
+         image: "00_button_01_focus.png" COMP;
       }
       script {
          public button_state = BUTTON_STATE_ENABLED;
@@ -6389,6 +6715,27 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                image.normal: "00_button_01_press.png";
             }
          }
+         part { name: "focus_image";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               min: BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC;
+               max: BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC;
+               visible: 0;
+               rel1.to : "button_image";
+               rel2.to : "button_image";
+               image {
+                  normal: "00_button_01_focus.png";
+                  border: BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
          part { name: "padding_left_top";
             type: RECT;
             scale: 1;
@@ -6649,23 +6996,17 @@ BUTTON_SCROLL_JUMPTO("jumpto_left", "00_icon_jump_left.png")
                set_int(button_state, BUTTON_STATE_ENABLED);
             }
          }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
+         program { name: "action_focus";
+            signal: "elm,action,focus_highlight,show";
+            source: "elm";
             action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
+            target: "focus_image";
          }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
+         program { name: "action_unfocus";
+            signal: "elm,action,focus_highlight,hide";
+            source: "elm";
             action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
+            target: "focus_image";
          }
       }
    }