[elc_naviframe]: text alignment and more button fix added for all styles
authorshilpa singh <shilpa.singh@samsung.com>
Thu, 15 Dec 2011 08:55:07 +0000 (14:25 +0530)
committershilpa singh <shilpa.singh@samsung.com>
Thu, 15 Dec 2011 08:55:07 +0000 (14:25 +0530)
Change-Id: I80f0cb760931182e3401f15990b3a5f65d6b2d23

themes/groups/naviframe.edc

index 906b9fe..cc5e24b 100644 (file)
          }
          part { name: "controlbar_clip";
             type: RECT;
+            mouse_events: 0;
             description { state: "default" 0.0;
                rel1 { to: "controlbar_bg"; }
                rel2 { to: "controlbar_bg"; }
          public oh_show = 0;     //optionheader show/hide
          public oh_close = 0;    //optionheader close/open
          public cbar_bg = 0;     //Controlbar BG Show call count
+         public left_btn_visible = 0; //whether left btn is shown
+         public icon_visible = 0; //whether icon is shown
+         public right_btn_visible = 0; //whether right btn is shown
+         public more_btn_visible = 0; //whether more btn is shown
+         public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
       }
       parts {
          part { name: "base";
                visible: 0;
             }
          }
-         part { name: "padding_after_left_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 0.0; to: "elm.swallow.left_btn"; }
-               rel2 { relative: 1.0 1.0; to: "elm.swallow.left_btn"; }
-               visible: 0;
-            }
-         }
          part { name: "padding_after_right_btn";
             type: RECT;
             mouse_events: 0;
                rel2 { relative: 0.0 1.0; to: "elm.swallow.right_btn"; }
                visible: 0;
             }
-            description { state: "more_btn" 0.0;
+            description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
             }
          }
-         part { name: "padding_before_more_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to: "elm.swallow.more_btn"; }
-               rel2 { relative: 0.0 1.0; to: "elm.swallow.more_btn"; }
-               visible: 0;
-            }
-         }
          part { name: "padding_before_text";
             type: RECT;
             scale: 1;
             mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 0.0 0.0;
                rel1 { relative: 0.0 0.0; to: "title_bg"; }
                rel2 { relative: 0.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "icon_visible" 0.0;
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+            description { state: "icon" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 0;
+            }
+            description { state: "icon_left_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 0;
             }
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 1.0 0.5;
                rel1 { relative: 1.0 0.0; to: "title_bg"; }
                rel2 { relative: 1.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "more_button" 0.0;
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+            description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 0;
             }
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 0.0 0.5;
-               rel1.to: "padding_before_left_btn";
-               rel1.relative: 1 0;
-               rel2.to: "padding_before_left_btn";
-               rel2.relative: 1 1;
+               align: 0 0.5;
+               rel1 { relative: 1.0 0.0; to: "padding_before_left_btn"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_left_btn"; }
             }
          }
          part { name: "elm.swallow.right_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               align: 1 0.5;
+               fixed: 1 0;
+               rel1 { relative: 0.0 0.0; to: "padding_after_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_after_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_after_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_after_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "elm.swallow.more_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "padding_before_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_before_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_before_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_before_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "optionheader_arrow";
                emit("elm,state,controlbar_bg,hide", "elm");
             }
          }
+         program { name: "left_btn_show";
+            signal: "elm,state,elm.swallow.left_btn,show";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 1);
+               if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+            }
+         }
+         program { name: "left_btn_hide";
+            signal: "elm,state,elm.swallow.left_btn,hide";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_show";
+            signal: "elm,state,elm.swallow.right_btn,show";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 1);
+               set_state(PART:"elm.swallow.right_btn", "visible", 0.0);
+               if (get_int(more_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_hide";
+            signal: "elm,state,elm.swallow.right_btn,hide";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 0);
+               set_state(PART:"elm.swallow.right_btn", "default", 0.0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
          program { name: "more_btn_show";
             signal: "elm,state,elm.swallow.more_btn,show";
             source: "elm";
-            action: STATE_SET "more_button" 0.0;
-            target: "padding_center_text2";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "visible", 0.0);
+               set_int(more_btn_visible, 1);
+               if (get_int(right_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "more_btn_hide";
             signal: "elm,state,elm.swallow.more_btn,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "elm.swallow.more_btn";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "default", 0.0);
+               set_int(more_btn_visible, 0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "icon_show";
             signal: "elm,state,elm.swallow.icon,show";
             source: "elm";
-            action: STATE_SET "icon_visible" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 1);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+            }
          }
          program { name: "icon_hide";
             signal: "elm,state,elm.swallow.icon,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 0);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "controlbar_show";
             signal: "elm,state,elm.swallow.controlbar,show";
             source: "elm";
-            action: STATE_SET "show" 0.0;
             script {
                emit("elm,state,controlbar_bg,show", "elm");
             }
             signal: "elm,state,title,show";
             source: "elm";
             action: STATE_SET "show" 0.0;
-            target: "title_clip";
+            target: "title_bg";
          }
          program { name: "title_hide";
             signal: "elm,state,title,hide";
             source: "elm";
             action: STATE_SET "hide" 0.0;
-            target: "title_clip";
+            target: "title_bg";
          }
          program { name: "prev_btn_show";
             signal: "elm,state,prev_btn,show";
          program { name: "controlbar_show";
             signal: "elm,state,elm.swallow.controlbar,show";
             source: "elm";
-            action: STATE_SET "show" 0.0;
             script {
                emit("elm,state,controlbar_bg,show", "elm");
             }
          public oh_show = 0;     //optionheader show/hide
          public oh_close = 0;    //optionheader close/open
          public cbar_bg = 0;     //Controlbar BG Show call count
+         public left_btn_visible = 0; //whether left btn is shown
+         public icon_visible = 0; //whether icon is shown
+         public right_btn_visible = 0; //whether right btn is shown
+         public more_btn_visible = 0; //whether more btn is shown
+         public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
       }
       parts {
          part { name: "title_bg";
          }
          part { name: "optionheader_bg";
             type: IMAGE;
-            mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                min: 1 0;
          }
          part { name: "optionheader_clip";
             type: RECT;
+            mouse_events: 0;
             description { state: "default" 0.0;
                rel1 { to: "optionheader_bg"; }
                rel2 { to: "optionheader_bg"; }
                visible: 0;
             }
          }
-         part { name: "padding_after_left_btn";
+         part { name: "padding_after_right_btn";
             type: RECT;
             mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 0.0; to: "elm.swallow.left_btn"; }
-               rel2 { relative: 1.0 1.0; to: "elm.swallow.left_btn"; }
+               align: 1.0 0.5;
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
                visible: 0;
             }
          }
-         part { name: "padding_after_right_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 1.0 0.5;
-               rel1 { relative: 1.0 0.0; to: "title_bg"; }
-               rel2 { relative: 1.0 1.0; to: "title_bg"; }
-               visible: 0;
-            }
-         }
-         part { name: "padding_before_right_btn";
+         part { name: "padding_before_right_btn";
             type: RECT;
             mouse_events: 0;
             scale: 1;
                rel2 { relative: 0.0 1.0; to: "elm.swallow.right_btn"; }
                visible: 0;
             }
-            description { state: "more_button" 0.0;
+            description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
             }
          }
-         part { name: "padding_before_more_btn";
+         part { name: "padding_before_text";
             type: RECT;
-            mouse_events: 0;
             scale: 1;
+            mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
                align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to: "elm.swallow.more_btn"; }
-               rel2 { relative: 0.0 1.0; to: "elm.swallow.more_btn"; }
+               rel1 { relative: 0.0 0.0; to_x: "elm.text.title"; to_y: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to_x: "elm.text.title"; to_y: "title_bg"; }
+               fixed: 1 0;
+               min: NAVIFRAME_ICON_PADDING_INC;
                visible: 0;
             }
          }
             mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 0.0 0.0;
                rel1 { relative: 0.0 0.0; to: "title_bg"; }
                rel2 { relative: 0.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "icon_visible" 0.0;
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+            description { state: "icon" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 0;
+            }
+            description { state: "icon_left_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 0;
             }
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 1.0 0.5;
                rel1 { relative: 1.0 0.0; to: "title_bg"; }
                rel2 { relative: 1.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "more_button" 0.0;
+            description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
             }
-         }
-         part { name: "padding_before_text";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to_x: "elm.text.title"; to_y: "title_bg"; }
-               rel2 { relative: 0.0 1.0; to_x: "elm.text.title"; to_y: "title_bg"; }
-               fixed: 1 0;
-               min: NAVIFRAME_ICON_PADDING_INC;
-               visible: 0;
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 0;
             }
          }
          part { name: "elm.text.title";
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 0.0 0.5;
-               rel1.to: "padding_before_left_btn";
-               rel1.relative: 1 0;
-               rel2.to: "padding_before_left_btn";
-               rel2.relative: 1 1;
+               align: 0 0.5;
+               rel1 { relative: 1.0 0.0; to: "padding_before_left_btn"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_left_btn"; }
             }
          }
          part { name: "elm.swallow.right_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               align: 1 0.5;
+               fixed: 1 0;
+               rel1 { relative: 0.0 0.0; to: "padding_after_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_after_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_after_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_after_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "elm.swallow.more_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "padding_before_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_before_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_before_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_before_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "optionheader_arrow";
             signal: "elm,state,title,show";
             source: "elm";
             script {
-               set_state(PART:"title_clip", "default", 0.0);
+               set_state(PART:"title_bg", "default", 0.0);
                if (get_int(oh_show) == 1) {
                   if (get_int(oh_close) == 1) {
                      emit("elm,state,optionheader,instant_close", "");
                emit("elm,state,controlbar_bg,hide", "elm");
             }
          }
+         program { name: "left_btn_show";
+            signal: "elm,state,elm.swallow.left_btn,show";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 1);
+               if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+            }
+         }
+         program { name: "left_btn_hide";
+            signal: "elm,state,elm.swallow.left_btn,hide";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_show";
+            signal: "elm,state,elm.swallow.right_btn,show";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 1);
+               set_state(PART:"elm.swallow.right_btn", "visible", 0.0);
+               if (get_int(more_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_hide";
+            signal: "elm,state,elm.swallow.right_btn,hide";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 0);
+               set_state(PART:"elm.swallow.right_btn", "default", 0.0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
          program { name: "more_btn_show";
             signal: "elm,state,elm.swallow.more_btn,show";
             source: "elm";
-            action: STATE_SET "more_button" 0.0;
-            target: "padding_center_text2";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "visible", 0.0);
+               set_int(more_btn_visible, 1);
+               if (get_int(right_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "more_btn_hide";
             signal: "elm,state,elm.swallow.more_btn,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "padding_center_text2";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "default", 0.0);
+               set_int(more_btn_visible, 0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "icon_show";
             signal: "elm,state,elm.swallow.icon,show";
             source: "elm";
-            action: STATE_SET "icon_visible" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 1);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+            }
          }
          program { name: "icon_hide";
             signal: "elm,state,elm.swallow.icon,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 0);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "controlbar_show";
             signal: "elm,state,elm.swallow.controlbar,show";
             source: "elm";
-            action: STATE_SET "show" 0.0;
             script {
                emit("elm,state,controlbar_bg,show", "elm");
             }
          public oh_show = 0;     //optionheader show/hide
          public oh_close = 0;    //optionheader close/open
          public cbar_bg = 0;     //Controlbar BG Show call count
+         public left_btn_visible = 0; //whether left btn is shown
+         public icon_visible = 0; //whether icon is shown
+         public right_btn_visible = 0; //whether right btn is shown
+         public more_btn_visible = 0; //whether more btn is shown
+         public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
       }
       parts {
          part { name: "title_bg";
                visible: 0;
             }
          }
-         part { name: "padding_after_left_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 0.0; to: "elm.swallow.left_btn"; }
-               rel2 { relative: 1.0 1.0; to: "elm.swallow.left_btn"; }
-               visible: 0;
-            }
-         }
          part { name: "padding_after_right_btn";
             type: RECT;
             mouse_events: 0;
                rel2 { relative: 0.0 1.0; to: "elm.swallow.right_btn"; }
                visible: 0;
             }
-            description { state: "more_button" 0.0;
+            description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
             }
          }
-         part { name: "padding_before_more_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to: "elm.swallow.more_btn"; }
-               rel2 { relative: 0.0 1.0; to: "elm.swallow.more_btn"; }
-               visible: 0;
-            }
-         }
          part { name: "padding_before_text";
             type: RECT;
             scale: 1;
                visible: 0;
             }
          }
-         part { name: "padding_center_text1";
+       part { name: "padding_center_text1";
             type: RECT;
             scale: 1;
             mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 0.0 0.0;
                rel1 { relative: 0.0 0.0; to: "title_bg"; }
                rel2 { relative: 0.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "icon_visible" 0.0;
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+            description { state: "icon" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 0;
+            }
+            description { state: "icon_left_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 0;
             }
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
                fixed: 1 0;
                align: 1.0 0.5;
                rel1 { relative: 1.0 0.0; to: "title_bg"; }
                rel2 { relative: 1.0 1.0; to: "title_bg"; }
                visible: 0;
             }
-            description { state: "more_button" 0.0;
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+            description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
                min: NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 0;
             }
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 0.0 0.5;
-               rel1.to: "padding_before_left_btn";
-               rel1.relative: 1 0;
-               rel2.to: "padding_before_left_btn";
-               rel2.relative: 1 1;
+               align: 0 0.5;
+               rel1 { relative: 1.0 0.0; to: "padding_before_left_btn"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_left_btn"; }
             }
          }
          part { name: "elm.swallow.right_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               align: 1 0.5;
+               fixed: 1 0;
+               rel1 { relative: 0.0 0.0; to: "padding_after_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_after_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_after_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_after_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "elm.swallow.more_btn";
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "padding_before_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "padding_before_right_btn"; }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
                min: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 1.0 0.5;
-               rel1.to: "padding_before_right_btn";
-               rel1.relative: 0 0;
-               rel2.to: "padding_before_right_btn";
-               rel2.relative: 0 1;
             }
          }
          part { name: "optionheader_arrow";
             signal: "elm,state,title,show";
             source: "elm";
             script {
-               set_state(PART:"title_clip", "default", 0.0);
+               set_state(PART:"title_bg", "default", 0.0);
                if (get_int(oh_show) == 1) {
                   if (get_int(oh_close) == 1) {
                      emit("elm,state,optionheader,instant_close", "");
                emit("elm,state,controlbar_bg,hide", "elm");
             }
          }
+         program { name: "left_btn_show";
+            signal: "elm,state,elm.swallow.left_btn,show";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 1);
+               if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+            }
+         }
+         program { name: "left_btn_hide";
+            signal: "elm,state,elm.swallow.left_btn,hide";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_show";
+            signal: "elm,state,elm.swallow.right_btn,show";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 1);
+               set_state(PART:"elm.swallow.right_btn", "visible", 0.0);
+               if (get_int(more_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_hide";
+            signal: "elm,state,elm.swallow.right_btn,hide";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 0);
+               set_state(PART:"elm.swallow.right_btn", "default", 0.0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
          program { name: "more_btn_show";
             signal: "elm,state,elm.swallow.more_btn,show";
             source: "elm";
-            action: STATE_SET "more_button" 0.0;
-            target: "padding_center_text2";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "visible", 0.0);
+               set_int(more_btn_visible, 1);
+               if (get_int(right_btn_visible) == 1) {
+                  set_state(PART:"padding_center_text2", "right_and_more_button", 0.0);
+                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "more_btn_hide";
             signal: "elm,state,elm.swallow.more_btn,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "padding_center_text2";
-            target: "padding_before_right_btn";
+            script {
+               set_state(PART:"elm.swallow.more_btn", "default", 0.0);
+               set_int(more_btn_visible, 0);
+               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "icon_show";
             signal: "elm,state,elm.swallow.icon,show";
             source: "elm";
-            action: STATE_SET "icon_visible" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 1);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+            }
          }
          program { name: "icon_hide";
             signal: "elm,state,elm.swallow.icon,hide";
             source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "padding_center_text1";
+            script {
+               set_int(icon_visible, 0);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
          }
          program { name: "controlbar_show";
             signal: "elm,state,elm.swallow.controlbar,show";
             source: "elm";
-            action: STATE_SET "show" 0.0;
             script {
                emit("elm,state,controlbar_bg,show", "elm");
             }