[ctxpopup] merge related job, mainly remove invalid indentation
[framework/uifw/elementary.git] / data / themes / default.edc
index 358863a..67f01c7 100644 (file)
 externals.external: "elm";
 
 collections {
-
 ///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/focus_highlight/top/default";
-      images {
-         image: "emo-unhappy.png" COMP;
-      }
-
-      data {
-         item: "animate" "on";
-      }
-
-      script {
-         public s_x, s_y, s_w, s_h; /* source */
-         public difx, dify, difw, difh;
-         public rot_dir;
-
-         public animator1(val, Float:pos) {
-            new x, y, w, h, dx, dy, dw, dh, Float:rot;
-
-            dx = round(float_mul(float(get_int(difx)), pos));
-            x = get_int(s_x) + dx;
-            dy = round(float_mul(float(get_int(dify)), pos));
-            y = get_int(s_y) + dy;
-            dw = round(float_mul(float(get_int(difw)), pos));
-            w = get_int(s_w) + dw;
-            dy = round(float_mul(float(get_int(difh)), pos));
-            h = get_int(s_h) + dh;
-
-            update_offset(x, y, w, h);
-
-            rot = 360.0 * pos * float(get_int(rot_dir));
-            set_state_val(PART:"shine", STATE_MAP_ROT_Z, rot);
-
-            if (pos >= 1.0) {
-               emit("elm,action,focus,anim,end", "");
-               set_state(PART:"shine", "default", 0.0);
+   group { name: "elm/segment_control/base/default";
+      parts {
+         part { name: "bg";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               color: 0 0 0 0;
+               min: 100 40;
             }
          }
+      }
+   }
+   group { name: "elm/segment_control/item/default";
+      data.item: "label.wrap.part" "label.bg";
+      images {
+         image: "seg_single_pressed.png" COMP;
+         image: "seg_single_selected.png" COMP;
+         image: "seg_single_normal.png" COMP;
 
-         public update_offset(x, y, w, h) {
-            new x1, y1, x2, y2;
-            x1 = x + w - 15;
-            y1 = y - 15;
-            x2 = x + w + 14;
-            y2 = y + 14;
-            set_state_val(PART:"shine", STATE_REL1_OFFSET, x1, y1);
-            set_state_val(PART:"shine", STATE_REL2_OFFSET, x2, y2);
-         }
-
-         public message(Msg_Type:type, id, ...) {
-            if ((type == MSG_INT_SET) && (id == 1)) {
-               new x1, y1, w1, h1;
-               new x2, y2, w2, h2;
-               new px1, px2, py1, py2;
-               new rd;
-
-               x1 = getarg(2);
-               y1 = getarg(3);
-               w1 = getarg(4);
-               h1 = getarg(5);
-               x2 = getarg(6);
-               y2 = getarg(7);
-               w2 = getarg(8);
-               h2 = getarg(9);
+         image: "seg_left_pressed.png" COMP;
+         image: "seg_left_selected.png" COMP;
+         image: "seg_left_normal.png" COMP;
 
-               set_int(s_x, x1);
-               set_int(s_y, y1);
-               set_int(s_w, w1);
-               set_int(s_h, h1);
-               set_int(difx, x2 - x1);
-               set_int(dify, y2 - y1);
-               set_int(difw, w2 - w1);
-               set_int(difh, h2 - h1);
+         image: "seg_middle_pressed.png" COMP;
+         image: "seg_middle_selected.png" COMP;
+         image: "seg_middle_normal.png" COMP;
 
-               px1 = x1 + w1;
-               px2 = x2 + w2;
-               py1 = y1 + h1;
-               py2 = y2 + h2;
-               if (px2 > px1) {
-                  rd = 1;
-               } else if (px1 > px2) {
-                  rd = -1;
-               } else {
-                  if (py2 > py1) {
-                     rd = 1;
-                  } else {
-                     rd = -1;
-                  }
+         image: "seg_right_pressed.png" COMP;
+         image: "seg_right_selected.png" COMP;
+         image: "seg_right_normal.png" COMP;
+      }
+      parts {
+         part { name: "segment";
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 1;
+               visible: 0;
+               image {
+                  normal: "seg_single_normal.png";
+                  border: 7 7 7 7;
+                  border_scale: 1;
+                  middle: 1;
+               }
+            }
+            description { state: "default_single" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_single_normal.png";
+                  border: 7 7 7 7;
+               }
+            }
+            description { state: "default_left" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+               normal: "seg_left_normal.png";
+                  border:  6 1 7 7;
+               }
+            }
+            description { state: "default_right" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_right_normal.png";
+                  border: 1 6 7 7;
+               }
+            }
+            description { state: "default_middle" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_middle_normal.png";
+                  border: 2 2 2 2;
+               }
+            }
+            description { state: "pressed_single" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_single_pressed.png";
+                  border: 7 7 7 7;
+               }
+            }
+            description { state: "pressed_left" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_left_pressed.png";
+                  border:  6 1 7 7;
+               }
+            }
+            description { state: "pressed_right" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_right_pressed.png";
+                  border: 1 6 7 7;
+               }
+            }  
+            description { state: "pressed_middle" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_middle_pressed.png";
+                  border: 1 1 2 2;
+               }
+            }
+            description { state: "selected_single" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_single_selected.png";
+                  border: 7 7 7 7;
+               }
+            }
+            description { state: "selected_left" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_left_selected.png";
+                  border:  6 3 7 7;
+               }
+            }
+            description { state: "selected_right" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_right_selected.png";
+                  border: 3 6 7 7;
+               }
+            }
+            description { state: "selected_middle" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_middle_selected.png";
+                  border: 3 3 3 3;
                }
-               set_int(rot_dir, rd);
-
-               custom_state(PART:"shine", "default", 0.0);
-               set_state_val(PART:"shine", STATE_REL1, 0.0, 0.0);
-               set_state_val(PART:"shine", STATE_REL2, 0.0, 0.0);
-               set_state_val(PART:"shine", STATE_MAP_ON, 1);
-               set_state_val(PART:"shine", STATE_MAP_ROT_Z, 0.0);
-               update_offset(x1, y1, w1, h1);
-               set_state(PART:"shine", "custom", 0.0);
-
-               anim(0.2, "animator1", 1);
             }
          }
-      }
-
-      parts {
-         part { name: "base";
+         part { name: "padding_left";
             type: RECT;
-            repeat_events: 1;
+            scale: 1;
+            mouse_events: 0;
             description { state: "default" 0.0;
+               align: 0.0 0.0;
                rel1.relative: 0.0 0.0;
-               rel2.relative: 1.0 1.0;
-               visible: 0;
+               rel2.relative: 0.0 1.0;
+               min: 2 2;
+               max: 2 2;
+               fixed: 1 0;
+               color: 0 0 0 0;
             }
          }
-         part { name: "shine";
-            type: IMAGE;
-            mouse_events: 1;
-            repeat_events: 1;
-            ignore_flags: ON_HOLD;
+         part { name: "padding_right";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
             description { state: "default" 0.0;
-               image {
-                  normal: "emo-unhappy.png";
-               }
-               rel1.to: "base";
+               align: 1.0 0.0;
                rel1.relative: 1.0 0.0;
-               rel1.offset: -15 -15;
-               rel2.to: "base";
+               rel2.relative: 1.0 1.0;
+               min: 2 2;
+               max: 2 2;
+               fixed: 1 0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "padding_top";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1.relative: 0.0 0.0;
                rel2.relative: 1.0 0.0;
-               rel2.offset: 14 14;
+               min: 2 2;
+               max: 2 2;
+               fixed: 0 1;
+               color: 0 0 0 0;
             }
-            description { state: "disabled" 0.0;
-               inherit:  "default" 0.0;
+         }
+         part { name: "padding_bottom";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               align: 1.0 1.0;
+               rel1.relative: 0.0 1.0;
+               rel2.relative: 1.0 1.0;
+               min: 2 2;
+               max: 2 2;
+               fixed: 0 1;
                color: 0 0 0 0;
             }
          }
-
-         program { name: "show";
-            signal: "elm,action,focus,show";
-            source: "elm";
-            action: ACTION_STOP;
-            target: "hide";
-            target: "hide_start";
-            target: "hide_end";
-            after: "show_start";
+         part { name: "icon.bg";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               visible: 1;
+               fixed: 1 0;
+               rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
+               rel2 {relative: 1.0 1.0; to: "elm.swallow.icon"; }
+               align: 0.0 0.5;
+               color: 0 0 0 0;
+            }
          }
-         program { name: "show_start";
-            action:  STATE_SET "default" 0.0;
-            transition: LINEAR 0.2;
-            target: "shine";
-            after: "show_end";
+         part { name: "padding_icon_text";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0; //when only icon or no icon is there
+               align: 0.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "icon.bg"; }
+               rel2 { relative: 1.0 1.0; to: "icon.bg"; }
+               fixed: 1 0;
+               min: 0 0;
+               color: 0 0 0 0;
+            }
+            description { state: "icononly" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "visible" 0.0; //when icon is visible
+               align: 0.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "icon.bg"; }
+               rel2 { relative: 1.0 1.0; to: "icon.bg"; }
+               fixed: 1 0;
+               min: 2 0;
+               color: 0 0 0 0;
+            }
          }
-         program { name: "show_end";
-            action: SIGNAL_EMIT "elm,action,focus,show,end" "";
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               align: 0.0 0.5;
+               rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
+               rel2 {relative: 0.0 0.0; to_y: "padding_bottom"; }
+               fixed: 1 0;
+               aspect: 1.0 1.0;
+               aspect_preference: BOTH;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               rel2 {relative: 0.3 0.0; to_y: "padding_bottom"; }
+            }
+            description { state: "icononly" 0.0;;
+               inherit: "default" 0.0;
+               visible: 1;
+               rel2 {relative: 0.0 0.0; to_x: "padding_right"; to_y: "padding_bottom"; }
+               align: 0.5 0.5;
+            }
          }
-         program { name: "hide";
-            signal: "elm,action,focus,hide";
-            source: "elm";
-            action: ACTION_STOP;
-            target: "show";
-            target: "show_start";
-            target: "show_end";
-            after: "hide_start";
+         part { name: "label.bg";
+            repeat_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 { relative: 1.0 1.0; to_x: "padding_icon_text"; to_y: "padding_top"; }
+               rel2 { relative: 0.0 0.0; to_x: "padding_right"; to_y: "padding_bottom"; }
+            }
          }
-         program { name: "hide_start";
-            action:  STATE_SET "disabled" 0.0;
-            transition: LINEAR 0.2;
-            target: "shine";
-            after: "hide_end";
+         part { name: "elm.swallow.label";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "label.bg";
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 1 1;
+               min: 1 1;
+               align: 0.0 0.5;
+               rel1 { relative: 1.0 1.0; to_x: "padding_icon_text";}
+               rel2 { relative: 0.0 0.0; to_x: "padding_right";}
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
          }
-         program { name: "hide_end";
-            action: SIGNAL_EMIT "elm,action,focus,hide,end" "";
+         part { name: "disabler";
+            repeat_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 1 1;
+               min: 1 1;
+               align: 0.0 0.5;
+               rel1 { relative: 0.0 0.0; to: "segment";}
+               rel2 { relative: 1.0 1.0; to: "segment";}
+               color: 255 255 255 150;
+            }
+            description { state: "disabled_single" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_single_normal.png";
+                  border: 7 7 7 7;
+               }
+            }
+            description { state: "disabled_left" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_left_normal.png";
+                  border:  6 1 7 7;
+               }
+            }
+            description { state: "disabled_right" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_right_normal.png";
+                  border: 1 6 7 7;
+               }
+            }
+            description { state: "disabled_middle" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               image {
+                  normal: "seg_middle_normal.png";
+                  border: 2 2 2 2;
+               }
+            }
          }
       }
-   }
+      programs {
+         script {
+            public seg_type; // 1-Single, 2-Left, 3-Middle, 4-Right.
+            public seg_state; // 1-Normal/Default, 2-Pressed, 3-Selected.
+            public seg_status;// 0-Enabled/Default, 1-Disabled
+         
+            public update_state() { 
+               new type, state, disabled;
+               type = get_int(seg_type);
+               state = get_int(seg_state);
+               disabled = get_int(seg_status);
 
-///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/focus_highlight/bottom/default";
-      parts {
-         part { name: "shine";
-            type: RECT;
-            mouse_events: 1;
-            repeat_events: 1;
-            ignore_flags: ON_HOLD;
-            description { state: "default" 0.0;
-               color: 0 255 0 50;
-               rel1.offset: 0 0;
-               rel2.offset: 0 0;
+               if( state ==1 )
+                 {
+                    if(type == 1)
+                      set_state(PART:"segment", "default_single", 0.0);
+                    else if(type == 2)
+                      set_state(PART:"segment", "default_left", 0.0);
+                    else if(type == 3)
+                      set_state(PART:"segment", "default_middle", 0.0);
+                    else if(type == 4)
+                      set_state(PART:"segment", "default_right", 0.0);
+                 }
+               else if( state == 2 )
+                 {
+                    if(type == 1)
+                      set_state(PART:"segment", "pressed_single", 0.0);
+                    else if(type == 2)
+                      set_state(PART:"segment", "pressed_left", 0.0);
+                    else if(type == 3)
+                      set_state(PART:"segment", "pressed_middle", 0.0);
+                    else if(type == 4)
+                      set_state(PART:"segment", "pressed_right", 0.0);
+                 }
+               else if( state == 3 )
+                 {
+                    if(type == 1)
+                      set_state(PART:"segment", "selected_single", 0.0);
+                    else if(type == 2)
+                      set_state(PART:"segment", "selected_left", 0.0);
+                    else if(type == 3)
+                      set_state(PART:"segment", "selected_middle", 0.0);
+                    else if(type == 4)
+                      set_state(PART:"segment", "selected_right", 0.0);
+                 }
+               if( disabled == 1 )
+                 {
+                    if(type == 1)
+                      set_state(PART:"disabler", "disabled_single", 0.0);
+                    else if(type == 2)
+                      set_state(PART:"disabler", "disabled_left", 0.0);
+                    else if(type == 3)
+                      set_state(PART:"disabler", "disabled_middle", 0.0);
+                    else if(type == 4)
+                      set_state(PART:"disabler", "disabled_right", 0.0);
+                 }
             }
-            description { state: "disabled" 0.0;
-               inherit:  "default" 0.0;
-               color: 0 0 0 0;
+         }
+         program {
+            name: "segment_type_s";
+            signal: "elm,type,segment,single";
+            source: "elm";
+            script {
+               set_int(seg_type, 1);
+               update_state();
             }
          }
-
-         program { name: "show";
-            signal: "elm,action,focus,show";
+         program {
+            name: "segment_type_l";
+            signal: "elm,type,segment,left";
+            source: "elm";     
+            script {
+               set_int(seg_type, 2);
+               update_state();
+            }
+         }
+         program {
+            name: "segment_type_m";
+            signal: "elm,type,segment,middle";
             source: "elm";
-            action: ACTION_STOP;
-            target: "hide";
-            target: "hide_start";
-            target: "hide_end";
-            after: "show_start";
+            script {
+               set_int(seg_type, 3);
+               update_state();
+            }
          }
-         program { name: "show_start";
-            action:  STATE_SET "default" 0.0;
-            transition: LINEAR 0.2;
-            target: "shine";
-            after: "show_end";
+         program {
+            name: "segment_type_r";
+            signal: "elm,type,segment,right";
+            source: "elm";
+            script {
+               set_int(seg_type, 4);
+               update_state();
+            }
          }
-         program { name: "show_end";
-            action: SIGNAL_EMIT "elm,action,focus,show,end" "";
+         program {
+            name: "normal_segment";
+            signal: "elm,state,segment,normal";
+            source: "elm";
+            script {
+               set_int(seg_state, 1);
+               update_state();
+            }
          }
-         program { name: "hide";
-            signal: "elm,action,focus,hide";
+         program {
+            name: "pressed_segment";
+            signal: "elm,state,segment,pressed";
             source: "elm";
-            action: ACTION_STOP;
-            target: "show";
-            target: "show_start";
-            target: "show_end";
-            after: "hide_start";
+            script {
+               set_int(seg_state, 2);
+               update_state();
+            }
          }
-         program { name: "hide_start";
-            action:  STATE_SET "disabled" 0.0;
-            transition: LINEAR 0.2;
-            target: "shine";
-            after: "hide_end";
+         program {
+            name: "selected_segment";
+            signal: "elm,state,segment,selected";
+            source: "elm";
+            script {
+               set_int(seg_state, 3 );
+               update_state();
+            }
          }
-         program { name: "hide_end";
-            action: SIGNAL_EMIT "elm,action,focus,hide,end" "";
+         program { name: "disable_segment";
+            signal: "elm,state,disabled";
+            source: "elm";
+            script {
+               set_int(seg_status, 1);
+               update_state();
+            }
+         }
+         program { name: "enable_segment";
+            signal: "elm,state,enabled";
+            source: "elm";
+            script {
+               set_int(seg_status, 0);
+               update_state();
+            }
+         }
+         program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.swallow.icon", st, 30, vl);
+               if (!strcmp(st, "icononly"))
+                 {
+                    set_state(PART:"elm.swallow.icon", "visible", 0.0);
+                    set_state(PART:"padding_icon_text", "visible", 0.0);
+                 }
+               set_state(PART:"elm.swallow.label", "visible", 0.0);
+            }
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.swallow.icon", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 {
+                    set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+                    set_state(PART:"padding_icon_text", "icononly", 0.0);
+                 }
+               set_state(PART:"elm.swallow.label", "default", 0.0);
+            }
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.swallow.label", st, 30, vl);
+               if (!strcmp(st, "normal"))
+                 {
+                    set_state(PART:"elm.swallow.icon", "visible", 0.0);
+                    set_state(PART:"padding_icon_text", "visible", 0.0);
+                 }
+               else
+                 {
+                    set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+                    set_state(PART:"padding_icon_text", "icononly", 0.0);
+                 }
+            }
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.swallow.icon";
          }
       }
    }
-
-///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/bg/base/default";
-      images {
-         image: "dia_grad.png" COMP;
-        image: "dia_topshad.png" COMP;
-        image: "dia_botshad.png" COMP;
+   group { name: "elm/label/base/segment_normal";
+      data.item: "default_font_size" "24";
+      data.item: "min_font_size" "16";
+      data.item: "max_font_size" "24";
+      styles {
+         style { name: "seg_text_style_normal";
+            base: "font=Sans font_size=16 style=shadow \
+            shadow_color=#2924224d \
+            align=center \
+            color=#ffffffff wrap=char";
+            tag:  "br" "\n";
+            tag:  "hilight" "+ font=Sans:style=Bold";
+            tag:  "tab" "\t";
+         }
+         style { name: "seg_text_style_selected";
+            base: "font=Sans:style=Bold font_size=16 style=shadow \
+            shadow_color=#aaaaaa4d \
+            align=center \
+            color=#111111ff wrap=char";
+            tag:  "br" "\n";
+            tag:  "hilight" "+ font=Sans:style=Bold";
+            tag:  "b" "+ font=Sans:style=Bold";
+            tag:  "tab" "\t";
+         }
+         style { name: "seg_text_style_disabled";
+            base: "font=SLP:style=Medium font_size=24 style=shadow \
+            shadow_color=#2924224d \
+            align=center color=#2924224d \
+            wrap=char";
+            tag:  "br" "\n";
+            tag:  "hilight" "+ font=SLP:style=Bold";
+            tag:  "b" "+ font=SLP:style=Bold";
+            tag:  "tab" "\t";
+         }
       }
       parts {
-         part { name: "base";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-              image.normal: "dia_grad.png";
-              fill {
-                 smooth: 0;
-                 size {
-                    relative: 0.0 1.0;
-                    offset: 64 0;
-                 }
-              }
-           }
-        }
-        part { name: "elm.swallow.rectangle";
-           type: SWALLOW;
-           description { state: "default" 0.0;
-           }
-        }
-        part { name: "elm.swallow.background";
-           type: SWALLOW;
-           description { state: "default" 0.0;
-           }
-        }
-        part { name: "shadow";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-              rel2.relative: 1.0 0.0;
-              rel2.offset: -1 31;
-              image.normal: "dia_topshad.png";
-              fill {
-                 smooth: 0;
-                 size {
-                    relative: 0.0 1.0;
-                    offset: 64 0;
-                 }
-              }
-           }
-        }
-        part { name: "shadow2";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-              rel1.relative: 0.0 1.0;
-              rel1.offset: 0 -9;
-              image.normal: "dia_botshad.png";
-              fill {
-                 smooth: 0;
-                 size {
-                    relative: 0.0 1.0;
-                    offset: 64 0;
-                 }
-              }
-           }
-        }
-        part { name: "elm.swallow.content";
-           type: SWALLOW;
-           description { state: "default" 0.0;
-           }
-        }
+         part { name: "label.swallow.background";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
+            }
+         }
+         part { name: "label.text.clip";
+            type: RECT;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1 { relative: 0 0; to: "label.swallow.background"; }
+               rel2 { relative: 1 1; to: "label.swallow.background"; }
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            effect: SHADOW;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "label.text.clip";
+            description { state: "default" 0.0;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
+               align: 0.0 0.5;
+               text {
+                  style: "seg_text_style_normal";
+                  align: 0.0 0.5;
+                  min: 1 0;
+               }
+            }
+         }
       }
    }
-
-///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/scroller/base/default";
-
-      alias: "elm/list/base/default";
-      alias: "elm/genlist/base/default";
-      alias: "elm/carousel/base/default";
-      alias: "elm/gengrid/base/default";
-
-      data {
-         item: "focus_highlight" "on";
-      }
-
-      script {
-        public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
-        public timer0(val) {
-           new v;
-           v = get_int(sbvis_v);
-           if (v) {
-               v = get_int(sbalways_v);
-               if (!v) {
-                  emit("do-hide-vbar", "");
-                  set_int(sbvis_v, 0);
-               }
-           }
-           v = get_int(sbvis_h);
-           if (v) {
-               v = get_int(sbalways_h);
-               if (!v) {
-                  emit("do-hide-hbar", "");
-                  set_int(sbvis_h, 0);
-               }
-           }
-           set_int(sbvis_timer, 0);
-           return 0;
-        }
+   
+   group { name: "elm/label/base/segment_pressed";
+   data.item: "default_font_size" "24";
+   data.item: "min_font_size" "16";
+   data.item: "max_font_size" "24";
+   parts {
+      part { name: "label.swallow.background";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 1;
+            rel1.relative, 0.0 0.0;
+            rel2.relative, 1.0 1.0;
+         }
+      }
+      part { name: "label.text.clip";
+         type: RECT;
+         description { state: "default" 0.0;
+            visible: 1;
+            rel1 { relative: 0 0; to: "label.swallow.background"; }
+            rel2 { relative: 1 1; to: "label.swallow.background"; }
+         }
       }
-      images {
-        image: "shelf_inset.png" COMP;
-        image: "bt_sm_base2.png" COMP;
-        image: "bt_sm_shine.png" COMP;
-        image: "bt_sm_hilight.png" COMP;
-         image: "sl_bt2_2.png" COMP;
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         effect: SHADOW;
+         mouse_events: 0;
+         scale: 1;
+         clip_to: "label.text.clip";
+         description { state: "default" 0.0;
+            rel1.relative, 0.0 0.0;
+            rel2.relative, 1.0 1.0;
+            align: 0.0 0.5;
+            text {
+               style: "seg_text_style_selected";
+               align: 0.0 0.5;
+               min: 1 0;
+            }
+         }
       }
+   }
+}
+   
+   group { name: "elm/label/base/segment_selected";
+      data.item: "default_font_size" "24";
+      data.item: "min_font_size" "16";
+      data.item: "max_font_size" "24";
       parts {
-         part { name: "bg";
-           type: RECT;
-           description { state: "default" 0.0;
-              rel1.offset: 2 2;
-              rel2.offset: -3 -3;
-              color: 255 255 255 0;
-           }
-        }
-        part { name: "clipper";
-           type: RECT;
-           mouse_events: 0;
-           description { state: "default" 0.0;
-              rel1.to: "bg";
-              rel2.to: "bg";
-              rel1.offset: 2 2;
-              rel2.offset: -3 -3;
-           }
-        }
-        part { name: "elm.swallow.content";
-           clip_to: "clipper";
-           type: SWALLOW;
-           description { state: "default" 0.0;
-              rel1.to: "bg";
-              rel2.to: "bg";
-              rel1.offset: 2 2;
-              rel2.offset: -3 -3;
-           }
-        }
-        part { name: "conf_over";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-              rel1.to: "bg";
-              rel2.to: "bg";
-              image {
-                 normal: "shelf_inset.png";
-                 border: 7 7 7 7;
-                 middle: 0;
-              }
-              fill.smooth : 0;
-           }
-            description { state: "enabled" 0.0;
-               inherit: "default" 0.0;
-               color: 200 155 0 255;
+         part { name: "label.swallow.background";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
             }
          }
-         part { name: "focus_highlight";
+         part { name: "label.text.clip";
+            type: RECT;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1 { relative: 0 0; to: "label.swallow.background"; }
+               rel2 { relative: 1 1; to: "label.swallow.background"; }
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            effect: SHADOW;
             mouse_events: 0;
+            scale: 1;
+            clip_to: "label.text.clip";
             description { state: "default" 0.0;
-               rel1.offset: -1 -1;
-               rel2.offset: 0 0;
-               image {
-                  normal: "sl_bt2_2.png";
-                  border: 7 7 7 7;
-                  middle: 0;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
+               align: 0.0 0.5;
+               text {
+                  style: "seg_text_style_selected";
+                  align: 0.0 0.5;
+                  min: 1 0;
                }
-               fill.smooth : 0;
-               color: 200 155 0 0;
             }
-            description { state: "enabled" 0.0;
-               inherit: "default" 0.0;
-               color: 200 155 0 255;
+         }
+      }
+   }
+   group { name: "elm/label/base/segment_disabled";
+      data.item: "default_font_size" "24";
+      data.item: "min_font_size" "16";
+      data.item: "max_font_size" "24";
+      parts {
+         part { name: "label.swallow.background";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
             }
          }
-        part { name: "sb_vbar_clip_master";
-           type: RECT;
-           mouse_events: 0;
-           description { state: "default" 0.0;
-           }
-           description { state: "hidden" 0.0;
-              visible: 0;
-              color: 255 255 255 0;
-           }
-        }
-        part { name: "sb_vbar_clip";
-            clip_to: "sb_vbar_clip_master";
-           type: RECT;
-           mouse_events: 0;
-           description { state: "default" 0.0;
-           }
-           description { state: "hidden" 0.0;
-              visible: 0;
-              color: 255 255 255 0;
-           }
-        }
-        part { name: "sb_vbar";
-           type: RECT;
-           mouse_events: 0;
-           description { state: "default" 0.0;
-              fixed: 1 1;
-              visible: 0;
-              min: 10 17;
-              align: 1.0 0.0;
-              rel1 {
-                 relative: 1.0 0.0;
-                 offset:   0 2;
-                 to_y:     "elm.swallow.content";
-                  to_x:     "elm.swallow.content";
-              }
-              rel2 {
-                 relative: 1.0 0.0;
-                 offset:   -1 -1;
-                 to_y:     "sb_hbar";
-                  to_x:     "elm.swallow.content";
-              }
-           }
-        }
-        part { name: "elm.dragable.vbar";
-           clip_to: "sb_vbar_clip";
-           mouse_events: 0;
-           dragable {
-              x: 0 0 0;
-              y: 1 1 0;
-              confine: "sb_vbar";
-           }
-           description { state: "default" 0.0;
+         part { name: "label.text.clip";
+            type: RECT;
+            description { state: "default" 0.0;
+               visible: 1;
+               rel1 { relative: 0 0; to: "label.swallow.background"; }
+               rel2 { relative: 1 1; to: "label.swallow.background"; }
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            effect: SHADOW;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "label.text.clip";
+            description { state: "default" 0.0;
+               rel1.relative, 0.0 0.0;
+               rel2.relative, 1.0 1.0;
+               align: 0.0 0.5;
+               text {
+                  style: "seg_text_style_disabled";
+                  align: 0.0 0.5;
+                  min: 1 0;
+               }
+            }
+         }
+      }
+   }
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/focus_highlight/top/default";
+      images {
+         image: "emo-unhappy.png" COMP;
+      }
+
+      data {
+         item: "animate" "on";
+      }
+
+      script {
+         public s_x, s_y, s_w, s_h; /* source */
+         public difx, dify, difw, difh;
+         public rot_dir;
+
+         public animator1(val, Float:pos) {
+            new x, y, w, h, dx, dy, dw, dh, Float:rot;
+
+            dx = round(float_mul(float(get_int(difx)), pos));
+            x = get_int(s_x) + dx;
+            dy = round(float_mul(float(get_int(dify)), pos));
+            y = get_int(s_y) + dy;
+            dw = round(float_mul(float(get_int(difw)), pos));
+            w = get_int(s_w) + dw;
+            dy = round(float_mul(float(get_int(difh)), pos));
+            h = get_int(s_h) + dh;
+
+            update_offset(x, y, w, h);
+
+            rot = 360.0 * pos * float(get_int(rot_dir));
+            set_state_val(PART:"shine", STATE_MAP_ROT_Z, rot);
+
+            if (pos >= 1.0) {
+               emit("elm,action,focus,anim,end", "");
+               set_state(PART:"shine", "default", 0.0);
+            }
+         }
+
+         public update_offset(x, y, w, h) {
+            new x1, y1, x2, y2;
+            x1 = x + w - 15;
+            y1 = y - 15;
+            x2 = x + w + 14;
+            y2 = y + 14;
+            set_state_val(PART:"shine", STATE_REL1_OFFSET, x1, y1);
+            set_state_val(PART:"shine", STATE_REL2_OFFSET, x2, y2);
+         }
+
+         public message(Msg_Type:type, id, ...) {
+            if ((type == MSG_INT_SET) && (id == 1)) {
+               new x1, y1, w1, h1;
+               new x2, y2, w2, h2;
+               new px1, px2, py1, py2;
+               new rd;
+
+               x1 = getarg(2);
+               y1 = getarg(3);
+               w1 = getarg(4);
+               h1 = getarg(5);
+               x2 = getarg(6);
+               y2 = getarg(7);
+               w2 = getarg(8);
+               h2 = getarg(9);
+
+               set_int(s_x, x1);
+               set_int(s_y, y1);
+               set_int(s_w, w1);
+               set_int(s_h, h1);
+               set_int(difx, x2 - x1);
+               set_int(dify, y2 - y1);
+               set_int(difw, w2 - w1);
+               set_int(difh, h2 - h1);
+
+               px1 = x1 + w1;
+               px2 = x2 + w2;
+               py1 = y1 + h1;
+               py2 = y2 + h2;
+               if (px2 > px1) {
+                  rd = 1;
+               } else if (px1 > px2) {
+                  rd = -1;
+               } else {
+                  if (py2 > py1) {
+                     rd = 1;
+                  } else {
+                     rd = -1;
+                  }
+               }
+               set_int(rot_dir, rd);
+
+               custom_state(PART:"shine", "default", 0.0);
+               set_state_val(PART:"shine", STATE_REL1, 0.0, 0.0);
+               set_state_val(PART:"shine", STATE_REL2, 0.0, 0.0);
+               set_state_val(PART:"shine", STATE_MAP_ON, 1);
+               set_state_val(PART:"shine", STATE_MAP_ROT_Z, 0.0);
+               update_offset(x1, y1, w1, h1);
+               set_state(PART:"shine", "custom", 0.0);
+
+               anim(0.2, "animator1", 1);
+            }
+         }
+      }
+
+      parts {
+         part { name: "base";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+               visible: 0;
+            }
+         }
+         part { name: "shine";
+            type: IMAGE;
+            mouse_events: 1;
+            repeat_events: 1;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               image {
+                  normal: "emo-unhappy.png";
+               }
+               rel1.to: "base";
+               rel1.relative: 1.0 0.0;
+               rel1.offset: -15 -15;
+               rel2.to: "base";
+               rel2.relative: 1.0 0.0;
+               rel2.offset: 14 14;
+            }
+            description { state: "disabled" 0.0;
+               inherit:  "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+
+         program { name: "show";
+            signal: "elm,action,focus,show";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "hide";
+            target: "hide_start";
+            target: "hide_end";
+            after: "show_start";
+         }
+         program { name: "show_start";
+            action:  STATE_SET "default" 0.0;
+            transition: LINEAR 0.2;
+            target: "shine";
+            after: "show_end";
+         }
+         program { name: "show_end";
+            action: SIGNAL_EMIT "elm,action,focus,show,end" "";
+         }
+         program { name: "hide";
+            signal: "elm,action,focus,hide";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "show";
+            target: "show_start";
+            target: "show_end";
+            after: "hide_start";
+         }
+         program { name: "hide_start";
+            action:  STATE_SET "disabled" 0.0;
+            transition: LINEAR 0.2;
+            target: "shine";
+            after: "hide_end";
+         }
+         program { name: "hide_end";
+            action: SIGNAL_EMIT "elm,action,focus,hide,end" "";
+         }
+      }
+   }
+
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/focus_highlight/bottom/default";
+      parts {
+         part { name: "shine";
+            type: RECT;
+            mouse_events: 1;
+            repeat_events: 1;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 255 0 50;
+               rel1.offset: 0 0;
+               rel2.offset: 0 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit:  "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+
+         program { name: "show";
+            signal: "elm,action,focus,show";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "hide";
+            target: "hide_start";
+            target: "hide_end";
+            after: "show_start";
+         }
+         program { name: "show_start";
+            action:  STATE_SET "default" 0.0;
+            transition: LINEAR 0.2;
+            target: "shine";
+            after: "show_end";
+         }
+         program { name: "show_end";
+            action: SIGNAL_EMIT "elm,action,focus,show,end" "";
+         }
+         program { name: "hide";
+            signal: "elm,action,focus,hide";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "show";
+            target: "show_start";
+            target: "show_end";
+            after: "hide_start";
+         }
+         program { name: "hide_start";
+            action:  STATE_SET "disabled" 0.0;
+            transition: LINEAR 0.2;
+            target: "shine";
+            after: "hide_end";
+         }
+         program { name: "hide_end";
+            action: SIGNAL_EMIT "elm,action,focus,hide,end" "";
+         }
+      }
+   }
+
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/bg/base/default";
+      images {
+         image: "dia_grad.png" COMP;
+        image: "dia_topshad.png" COMP;
+        image: "dia_botshad.png" COMP;
+      }
+      parts {
+         part { name: "base";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              image.normal: "dia_grad.png";
+              fill {
+                 smooth: 0;
+                 size {
+                    relative: 0.0 1.0;
+                    offset: 64 0;
+                 }
+              }
+           }
+        }
+        part { name: "elm.swallow.rectangle";
+           type: SWALLOW;
+           description { state: "default" 0.0;
+           }
+        }
+        part { name: "elm.swallow.background";
+           type: SWALLOW;
+           description { state: "default" 0.0;
+           }
+        }
+        part { name: "shadow";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              rel2.relative: 1.0 0.0;
+              rel2.offset: -1 31;
+              image.normal: "dia_topshad.png";
+              fill {
+                 smooth: 0;
+                 size {
+                    relative: 0.0 1.0;
+                    offset: 64 0;
+                 }
+              }
+           }
+        }
+        part { name: "shadow2";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              rel1.relative: 0.0 1.0;
+              rel1.offset: 0 -9;
+              image.normal: "dia_botshad.png";
+              fill {
+                 smooth: 0;
+                 size {
+                    relative: 0.0 1.0;
+                    offset: 64 0;
+                 }
+              }
+           }
+        }
+        part { name: "elm.swallow.content";
+           type: SWALLOW;
+           description { state: "default" 0.0;
+           }
+        }
+      }
+   }
+
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/scroller/base/default";
+
+      alias: "elm/list/base/default";
+      alias: "elm/genlist/base/default";
+      alias: "elm/carousel/base/default";
+      alias: "elm/gengrid/base/default";
+
+      data {
+         item: "focus_highlight" "on";
+      }
+
+      script {
+        public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+        public timer0(val) {
+           new v;
+           v = get_int(sbvis_v);
+           if (v) {
+               v = get_int(sbalways_v);
+               if (!v) {
+                  emit("do-hide-vbar", "");
+                  set_int(sbvis_v, 0);
+               }
+           }
+           v = get_int(sbvis_h);
+           if (v) {
+               v = get_int(sbalways_h);
+               if (!v) {
+                  emit("do-hide-hbar", "");
+                  set_int(sbvis_h, 0);
+               }
+           }
+           set_int(sbvis_timer, 0);
+           return 0;
+        }
+      }
+      images {
+        image: "shelf_inset.png" COMP;
+        image: "bt_sm_base2.png" COMP;
+        image: "bt_sm_shine.png" COMP;
+        image: "bt_sm_hilight.png" COMP;
+         image: "sl_bt2_2.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+           type: RECT;
+           description { state: "default" 0.0;
+              rel1.offset: 2 2;
+              rel2.offset: -3 -3;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "clipper";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              rel1.to: "bg";
+              rel2.to: "bg";
+              rel1.offset: 2 2;
+              rel2.offset: -3 -3;
+           }
+        }
+        part { name: "elm.swallow.content";
+           clip_to: "clipper";
+           type: SWALLOW;
+           description { state: "default" 0.0;
+              rel1.to: "bg";
+              rel2.to: "bg";
+              rel1.offset: 2 2;
+              rel2.offset: -3 -3;
+           }
+        }
+        part { name: "conf_over";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              rel1.to: "bg";
+              rel2.to: "bg";
+              image {
+                 normal: "shelf_inset.png";
+                 border: 7 7 7 7;
+                 middle: 0;
+              }
+              fill.smooth : 0;
+           }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: 200 155 0 255;
+            }
+         }
+         part { name: "focus_highlight";
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.offset: -1 -1;
+               rel2.offset: 0 0;
+               image {
+                  normal: "sl_bt2_2.png";
+                  border: 7 7 7 7;
+                  middle: 0;
+               }
+               fill.smooth : 0;
+               color: 200 155 0 0;
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: 200 155 0 255;
+            }
+         }
+        part { name: "sb_vbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_vbar_clip";
+            clip_to: "sb_vbar_clip_master";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+           }
+           description { state: "hidden" 0.0;
+              visible: 0;
+              color: 255 255 255 0;
+           }
+        }
+        part { name: "sb_vbar";
+           type: RECT;
+           mouse_events: 0;
+           description { state: "default" 0.0;
+              fixed: 1 1;
+              visible: 0;
+              min: 10 17;
+              align: 1.0 0.0;
+              rel1 {
+                 relative: 1.0 0.0;
+                 offset:   0 2;
+                 to_y:     "elm.swallow.content";
+                  to_x:     "elm.swallow.content";
+              }
+              rel2 {
+                 relative: 1.0 0.0;
+                 offset:   -1 -1;
+                 to_y:     "sb_hbar";
+                  to_x:     "elm.swallow.content";
+              }
+           }
+        }
+        part { name: "elm.dragable.vbar";
+           clip_to: "sb_vbar_clip";
+           mouse_events: 0;
+           dragable {
+              x: 0 0 0;
+              y: 1 1 0;
+              confine: "sb_vbar";
+           }
+           description { state: "default" 0.0;
               fixed: 1 1;
               min: 10 17;
                max: 10 99999;
@@ -6738,225 +7458,66 @@ collections {
            target: "elm.swallow.slot.left";
         }
         program { name: "lefthide";
-            signal: "elm,action,slot,left,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "left";
-           target: "elm.swallow.slot.left";
-        }
-        program { name: "rightshow";
-            signal: "elm,action,slot,right,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-           transition: DECELERATE 0.5;
-           target: "right";
-           target: "elm.swallow.slot.right";
-        }
-        program { name: "righthide";
-            signal: "elm,action,slot,right,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "right";
-           target: "elm.swallow.slot.right";
-        }
-        program { name: "topshow";
-            signal: "elm,action,slot,top,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-           transition: DECELERATE 0.5;
-           target: "top";
-           target: "elm.swallow.slot.top";
-        }
-        program { name: "tophide";
-            signal: "elm,action,slot,top,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "top";
-           target: "elm.swallow.slot.top";
-        }
-        program { name: "bottomshow";
-            signal: "elm,action,slot,bottom,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-           transition: DECELERATE 0.5;
-           target: "bottom";
-           target: "elm.swallow.slot.bottom";
-        }
-        program { name: "bottomhide";
-            signal: "elm,action,slot,bottom,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "bottom";
-           target: "elm.swallow.slot.bottom";
-        }
-      }
-   }
-
-   //In the hover used by the menu only the bottom part is used.
-   group { name: "elm/hover/base/menu";
-       images {
-           image: "shad_circ.png" COMP;
-           image: "bt_dis_base.png" COMP;
-       }
-       parts {
-           part { name: "elm.swallow.offset";
-               type: SWALLOW;
-               description { state: "default" 0.0;
-                   align: 0.0 0.0;
-                   rel1.relative: 0.0 0.0;
-                   rel2.relative: 0.0 0.0;
-               }
-           }
-           part { name: "elm.swallow.size";
-               type: SWALLOW;
-               description { state: "default" 0.0;
-                   align: 0.0 0.0;
-                   rel1.to: "elm.swallow.offset";
-                   rel1.relative: 1.0 1.0;
-                   rel2.to: "elm.swallow.offset";
-                   rel2.relative: 1.0 1.0;
-               }
-           }
-           part { name: "base";
-               type: RECT;
-               mouse_events: 1;
-               description { state: "default" 0.0;
-                   color: 0 0 0 0;
-               }
-               description { state: "visible" 0.0;
-                   inherit: "default" 1.0;
-                   color: 0 0 0 64;
-               }
-           }
-           part { name: "elm.swallow.slot.left";
-               type: SWALLOW;
-               description { state: "default" 0.0;
-               }
-           }
-           part { name: "elm.swallow.slot.right";
-               type: SWALLOW;
-               description { state: "default" 0.0;
-               }
-           }
-           part { name: "elm.swallow.slot.top";
-               type: SWALLOW;
-               description { state: "default" 0.0;
-               }
-               description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-               }
-           }
-           part { name: "bottomclip";
-               type: RECT;
-               description { state: "default" 0.0;
-                   rel1.to_y: "pop";
-                   rel1.relative: 0.0 1.0;
-                   rel1.offset: -1 -2;
-               }
-           }
-           part { name: "bottom";
-               clip_to: "bottomclip";
-               description { state: "default" 0.0;
-                   visible: 0;
-                   rel1.to: "elm.swallow.slot.bottom";
-                   rel1.offset: -5 -5;
-                   rel2.to: "elm.swallow.slot.bottom";
-                   rel2.offset: 4 4;
-                   image {
-                       normal: "bt_dis_base.png";
-                       border: 4 4 4 4;
-                   }
-                   image.middle: SOLID;
-               }
-               description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-               }
-           }
-           part { name: "elm.swallow.slot.bottom";
-               type: SWALLOW;
-               clip_to: "bottomclip";
-               description { state: "default" 0.0;
-                   align: 0.5 1.0;
-                   rel1.to: "elm.swallow.slot.middle";
-                   rel1.relative: 0.0 1.0;
-                   rel1.offset: 0 0;
-                   rel2.to: "elm.swallow.slot.middle";
-                   rel2.relative: 1.0 1.0;
-                   rel2.offset: -1 0;
-               }
-               description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   rel1.offset: 0 6;
-                   rel2.offset: -1 6;
-                   align: 0.5 0.0;
-               }
-           }
-           part { name: "pop";
-               mouse_events: 1;
-               repeat_events:1;
-               description { state: "default" 0.0;
-                   rel1.to: "elm.swallow.slot.middle";
-                   rel1.offset: -5 -5;
-                   rel2.to: "elm.swallow.slot.middle";
-                   rel2.offset: 4 4;
-               }
-           }
-           part { name: "elm.swallow.slot.middle";
-               type: SWALLOW;
-               repeat_events:1;
-               description { state: "default" 0.0;
-                   rel1.to: "elm.swallow.size";
-                   rel2.to: "elm.swallow.size";
-               }
-           }
-       }
-       programs {
-           program { name: "end";
-               signal: "mouse,up,1";
-               source: "base";
-               action: SIGNAL_EMIT "elm,action,dismiss" "";
-           }
-           program { name: "show";
-               signal: "elm,action,show";
-               source: "elm";
-               action: STATE_SET "visible" 0.0;
-                       //          transition: DECELERATE 0.5;
-               target: "base";
-           }
-           program { name: "hide";
-               signal: "elm,action,hide";
-               source: "elm";
-               action: STATE_SET "default" 0.0;
-                       //          transition: DECELERATE 0.5;
-               target: "base";
-           }
-           program { name: "bottomshow";
-               signal: "elm,action,slot,bottom,show";
-               source: "elm";
-               action: STATE_SET "visible" 0.0;
-               transition: DECELERATE 0.3;
-               target: "bottom";
-               target: "elm.swallow.slot.bottom";
-           }
-           program { name: "bottomhide";
-               signal: "elm,action,slot,bottom,hide";
-               source: "elm";
-               action: STATE_SET "default" 0.0;
-               transition: DECELERATE 0.5;
-               target: "bottom";
-               target: "elm.swallow.slot.bottom";
-           }
-       }
+            signal: "elm,action,slot,left,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "left";
+           target: "elm.swallow.slot.left";
+        }
+        program { name: "rightshow";
+            signal: "elm,action,slot,right,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           transition: DECELERATE 0.5;
+           target: "right";
+           target: "elm.swallow.slot.right";
+        }
+        program { name: "righthide";
+            signal: "elm,action,slot,right,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "right";
+           target: "elm.swallow.slot.right";
+        }
+        program { name: "topshow";
+            signal: "elm,action,slot,top,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           transition: DECELERATE 0.5;
+           target: "top";
+           target: "elm.swallow.slot.top";
+        }
+        program { name: "tophide";
+            signal: "elm,action,slot,top,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "top";
+           target: "elm.swallow.slot.top";
+        }
+        program { name: "bottomshow";
+            signal: "elm,action,slot,bottom,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           transition: DECELERATE 0.5;
+           target: "bottom";
+           target: "elm.swallow.slot.bottom";
+        }
+        program { name: "bottomhide";
+            signal: "elm,action,slot,bottom,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "bottom";
+           target: "elm.swallow.slot.bottom";
+        }
+      }
    }
 
-   //In the hover used by the submenu only the bottom part is used
-   //and no part should interact except the bottom area
-   group { name: "elm/hover/base/submenu";
+   //In the hover used by the menu only the bottom part is used.
+   group { name: "elm/hover/base/menu";
        images {
            image: "shad_circ.png" COMP;
            image: "bt_dis_base.png" COMP;
@@ -6964,7 +7525,6 @@ collections {
        parts {
            part { name: "elm.swallow.offset";
                type: SWALLOW;
-               repeat_events:1;
                description { state: "default" 0.0;
                    align: 0.0 0.0;
                    rel1.relative: 0.0 0.0;
@@ -6981,13 +7541,15 @@ collections {
                    rel2.relative: 1.0 1.0;
                }
            }
-           //here we do non catch events like the hover hover does
            part { name: "base";
                type: RECT;
                mouse_events: 1;
                description { state: "default" 0.0;
                    color: 0 0 0 0;
-                   visible: 0;
+               }
+               description { state: "visible" 0.0;
+                   inherit: "default" 1.0;
+                   color: 0 0 0 64;
                }
            }
            part { name: "elm.swallow.slot.left";
@@ -7004,6 +7566,9 @@ collections {
                type: SWALLOW;
                description { state: "default" 0.0;
                }
+               description { state: "visible" 0.0;
+                   inherit: "default" 0.0;
+               }
            }
            part { name: "bottomclip";
                type: RECT;
@@ -7097,884 +7662,472 @@ collections {
                transition: DECELERATE 0.3;
                target: "bottom";
                target: "elm.swallow.slot.bottom";
-           }
-           program { name: "bottomhide";
-               signal: "elm,action,slot,bottom,hide";
-               source: "elm";
-               action: STATE_SET "default" 0.0;
-               transition: DECELERATE 0.5;
-               target: "bottom";
-               target: "elm.swallow.slot.bottom";
-           }
-       }
-   }
-
-   group { name: "elm/hover/base/hoversel_vertical/default";
-      alias: "elm/hover/base/hoversel_vertical/entry";
-      images {
-//      image: "shad_circ.png" COMP;
-        image: "bt_base2.png" COMP;
-        image: "bt_hilight.png" COMP;
-        image: "bt_shine.png" COMP;
-        image: "outdent-top.png" COMP;
-        image: "outdent-bottom.png" COMP;
-      }
-      parts {
-        part { name: "elm.swallow.offset";
-            type: SWALLOW;
-           description { state: "default" 0.0;
-              align: 0.0 0.0;
-              rel1.relative: 0.0 0.0;
-              rel2.relative: 0.0 0.0;
-           }
-        }
-        part { name: "elm.swallow.size";
-            type: SWALLOW;
-           description { state: "default" 0.0;
-              align: 0.0 0.0;
-              rel1.to: "elm.swallow.offset";
-              rel1.relative: 1.0 1.0;
-              rel2.to: "elm.swallow.offset";
-              rel2.relative: 1.0 1.0;
-           }
-        }
-/*
-        part { name: "shad";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-              image.normal: "shad_circ.png";
-              rel1.to: "button_image";
-              rel1.offset: -64 -64;
-              rel2.to: "button_image";
-              rel2.offset: 63 63;
-               fill.smooth: 0;
-           }
-        }
- */
-        part { name: "button_image";
-           mouse_events: 1;
-           description { state: "default" 0.0;
-              rel1.to_x: "elm.swallow.slot.top";
-              rel1.to_y: "elm.swallow.slot.top";
-               rel1.offset: -2 -6;
-              rel2.to_x: "elm.swallow.slot.top";
-              rel2.to_y: "elm.swallow.slot.bottom";
-               rel2.offset: 1 5;
-              image {
-                 normal: "bt_base2.png";
-                 border: 7 7 7 7;
-              }
-               image.middle: SOLID;
-           }
-           description { state: "bottom" 0.0;
-              rel1.to_x: "elm.swallow.slot.bottom";
-              rel1.to_y: "elm.swallow.slot.top";
-               rel1.offset: -2 -6;
-              rel2.to_x: "elm.swallow.slot.bottom";
-              rel2.to_y: "elm.swallow.slot.bottom";
-               rel2.offset: 1 5;
-              image {
-                 normal: "bt_base2.png";
-                 border: 7 7 7 7;
-              }
-               image.middle: SOLID;
-           }
-        }
-
-        part { name: "base";
-           type: RECT;
-           mouse_events: 1;
-           description { state: "default" 0.0;
-              color: 0 0 0 0;
-           }
-           description { state: "visible" 0.0;
-              inherit: "default" 1.0;
-              color: 0 0 0 64;
-           }
-        }
-
-        part { name: "topclip";
-           type: RECT;
-           description { state: "default" 0.0;
-              rel2.to_y: "edge_top";
-              rel2.relative: 1.0 0.0;
-               rel2.offset: -1 7;
-           }
-        }
-        part { name: "elm.swallow.slot.top";
-            type: SWALLOW;
-           clip_to: "topclip";
-           description { state: "default" 0.0;
-              visible: 1;
-              align: 0.5 0.0;
-              rel1.to: "elm.swallow.slot.middle";
-              rel1.relative: 0.0 0.0;
-              rel1.offset: 0 -1;
-              rel2.to: "elm.swallow.slot.middle";
-              rel2.relative: 1.0 0.0;
-              rel2.offset: -1 -1;
-           }
-           description { state: "visible" 0.0;
-              inherit: "default" 0.0;
-              rel1.offset: 0 -7;
-              rel2.offset: -1 -7;
-              align: 0.5 1.0;
-           }
-        }
-
-        part { name: "bottomclip";
-           type: RECT;
-           description { state: "default" 0.0;
-              rel1.to_y: "edge_bottom";
-              rel1.relative: 0.0 1.0;
-               rel1.offset: -1 -8;
-           }
-        }
-        part { name: "elm.swallow.slot.bottom";
-            type: SWALLOW;
-           clip_to: "bottomclip";
-           description { state: "default" 0.0;
-              align: 0.5 1.0;
-              rel1.to: "elm.swallow.slot.middle";
-              rel1.relative: 0.0 1.0;
-              rel1.offset: 0 0;
-              rel2.to: "elm.swallow.slot.middle";
-              rel2.relative: 1.0 1.0;
-              rel2.offset: -1 0;
-           }
-           description { state: "visible" 0.0;
-              inherit: "default" 0.0;
-              rel1.offset: 0 6;
-              rel2.offset: -1 6;
-              align: 0.5 0.0;
-           }
-        }
-
-        part {   name: "over1";
-           mouse_events: 0;
-           description { state: "default" 0.0;
-               rel1.to: "button_image";
-               rel2.to: "button_image";
-              rel2.relative: 1.0 0.5;
-              image {
-                 normal: "bt_hilight.png";
-                 border: 7 7 7 0;
-              }
-           }
-        }
-        part { name: "over2";
-           mouse_events: 1;
-           repeat_events: 1;
-            ignore_flags: ON_HOLD;
-           description { state: "default" 0.0;
-               rel1.to: "button_image";
-               rel2.to: "button_image";
-              image {
-                 normal: "bt_shine.png";
-                 border: 7 7 7 7;
-              }
-           }
-        }
-         part { name: "edge_top";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-               visible: 0;
-              rel1 {
-                  to: "elm.swallow.size";
-                  offset: 0 -10;
+           }
+           program { name: "bottomhide";
+               signal: "elm,action,slot,bottom,hide";
+               source: "elm";
+               action: STATE_SET "default" 0.0;
+               transition: DECELERATE 0.5;
+               target: "bottom";
+               target: "elm.swallow.slot.bottom";
+           }
+       }
+   }
+
+   //In the hover used by the submenu only the bottom part is used
+   //and no part should interact except the bottom area
+   group { name: "elm/hover/base/submenu";
+       images {
+           image: "shad_circ.png" COMP;
+           image: "bt_dis_base.png" COMP;
+       }
+       parts {
+           part { name: "elm.swallow.offset";
+               type: SWALLOW;
+               repeat_events:1;
+               description { state: "default" 0.0;
+                   align: 0.0 0.0;
+                   rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 0.0;
                }
-              rel2 {
-                  to: "elm.swallow.size";
+           }
+           part { name: "elm.swallow.size";
+               type: SWALLOW;
+               description { state: "default" 0.0;
+                   align: 0.0 0.0;
+                   rel1.to: "elm.swallow.offset";
+                   rel1.relative: 1.0 1.0;
+                   rel2.to: "elm.swallow.offset";
+                   rel2.relative: 1.0 1.0;
                }
-              image.normal: "outdent-bottom.png";
-               image.border: 0 0 13 0;
-               fill.smooth: 0;
-           }
-           description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-           }
-        }
-         part { name: "edge_bottom";
-           mouse_events:  0;
-           description { state: "default" 0.0;
-               visible: 0;
-              rel1 {
-                  to: "elm.swallow.size";
+           }
+           //here we do non catch events like the hover hover does
+           part { name: "base";
+               type: RECT;
+               mouse_events: 1;
+               description { state: "default" 0.0;
+                   color: 0 0 0 0;
+                   visible: 0;
                }
-              rel2 {
-                  to: "elm.swallow.size";
-                  offset: -1 9;
+           }
+           part { name: "elm.swallow.slot.left";
+               type: SWALLOW;
+               description { state: "default" 0.0;
                }
-              image.normal: "outdent-top.png";
-               image.border: 0 0 0 13;
-               fill.smooth: 0;
-           }
-           description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-           }
-        }
-        part { name: "elm.swallow.slot.middle";
-            type: SWALLOW;
-           description { state: "default" 0.0;
-              rel1.to: "elm.swallow.size";
-              rel2.to: "elm.swallow.size";
-           }
-        }
-      }
-      programs {
-        program { name: "end";
-           signal: "mouse,up,1";
-           source: "base";
-           action: SIGNAL_EMIT "elm,action,dismiss" "";
-        }
-
-        program { name: "show";
-            signal: "elm,action,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-//         transition: DECELERATE 0.5;
-           target: "base";
-        }
-        program { name: "hide";
-            signal: "elm,action,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-//         transition: DECELERATE 0.5;
-           target: "base";
-        }
-        program { name: "topshow";
-            signal: "elm,action,slot,top,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-           target: "edge_top";
-            after: "topshow2";
-        }
-        program { name: "topshow2";
-           action: STATE_SET "visible" 0.0;
-           transition: DECELERATE 0.5;
-           target: "elm.swallow.slot.top";
-        }
-        program { name: "topshow3";
-            signal: "elm,action,slot,top,show";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           target: "button_image";
-        }
-        program { name: "tophide";
-            signal: "elm,action,slot,top,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "elm.swallow.slot.top";
-            after: "tophide2";
-        }
-        program { name: "tophide2";
-           action: STATE_SET "default" 0.0;
-           target: "edge_top";
-        }
-        program { name: "bottomshow";
-            signal: "elm,action,slot,bottom,show";
-           source: "elm";
-           action: STATE_SET "visible" 0.0;
-           target: "edge_bottom";
-            after: "bottomshow2";
-        }
-        program { name: "bottomshow2";
-           action: STATE_SET "visible" 0.0;
-           transition: DECELERATE 0.5;
-           target: "elm.swallow.slot.bottom";
-        }
-        program { name: "bottomshow3";
-            signal: "elm,action,slot,bottom,show";
-           source: "elm";
-           action: STATE_SET "bottom" 0.0;
-           target: "button_image";
-        }
-        program { name: "bottomhide";
-            signal: "elm,action,slot,bottom,hide";
-           source: "elm";
-           action: STATE_SET "default" 0.0;
-           transition: DECELERATE 0.5;
-           target: "elm.swallow.slot.bottom";
-            after: "bottomhide2";
-        }
-        program { name: "bottomhide2";
-           action: STATE_SET "default" 0.0;
-           target: "edge_bottom";
-        }
-      }
+           }
+           part { name: "elm.swallow.slot.right";
+               type: SWALLOW;
+               description { state: "default" 0.0;
+               }
+           }
+           part { name: "elm.swallow.slot.top";
+               type: SWALLOW;
+               description { state: "default" 0.0;
+               }
+           }
+           part { name: "bottomclip";
+               type: RECT;
+               description { state: "default" 0.0;
+                   rel1.to_y: "pop";
+                   rel1.relative: 0.0 1.0;
+                   rel1.offset: -1 -2;
+               }
+           }
+           part { name: "bottom";
+               clip_to: "bottomclip";
+               description { state: "default" 0.0;
+                   visible: 0;
+                   rel1.to: "elm.swallow.slot.bottom";
+                   rel1.offset: -5 -5;
+                   rel2.to: "elm.swallow.slot.bottom";
+                   rel2.offset: 4 4;
+                   image {
+                       normal: "bt_dis_base.png";
+                       border: 4 4 4 4;
+                   }
+                   image.middle: SOLID;
+               }
+               description { state: "visible" 0.0;
+                   inherit: "default" 0.0;
+                   visible: 1;
+               }
+           }
+           part { name: "elm.swallow.slot.bottom";
+               type: SWALLOW;
+               clip_to: "bottomclip";
+               description { state: "default" 0.0;
+                   align: 0.5 1.0;
+                   rel1.to: "elm.swallow.slot.middle";
+                   rel1.relative: 0.0 1.0;
+                   rel1.offset: 0 0;
+                   rel2.to: "elm.swallow.slot.middle";
+                   rel2.relative: 1.0 1.0;
+                   rel2.offset: -1 0;
+               }
+               description { state: "visible" 0.0;
+                   inherit: "default" 0.0;
+                   rel1.offset: 0 6;
+                   rel2.offset: -1 6;
+                   align: 0.5 0.0;
+               }
+           }
+           part { name: "pop";
+               mouse_events: 1;
+               repeat_events:1;
+               description { state: "default" 0.0;
+                   rel1.to: "elm.swallow.slot.middle";
+                   rel1.offset: -5 -5;
+                   rel2.to: "elm.swallow.slot.middle";
+                   rel2.offset: 4 4;
+               }
+           }
+           part { name: "elm.swallow.slot.middle";
+               type: SWALLOW;
+               repeat_events:1;
+               description { state: "default" 0.0;
+                   rel1.to: "elm.swallow.size";
+                   rel2.to: "elm.swallow.size";
+               }
+           }
+       }
+       programs {
+           program { name: "end";
+               signal: "mouse,up,1";
+               source: "base";
+               action: SIGNAL_EMIT "elm,action,dismiss" "";
+           }
+           program { name: "show";
+               signal: "elm,action,show";
+               source: "elm";
+               action: STATE_SET "visible" 0.0;
+                       //          transition: DECELERATE 0.5;
+               target: "base";
+           }
+           program { name: "hide";
+               signal: "elm,action,hide";
+               source: "elm";
+               action: STATE_SET "default" 0.0;
+                       //          transition: DECELERATE 0.5;
+               target: "base";
+           }
+           program { name: "bottomshow";
+               signal: "elm,action,slot,bottom,show";
+               source: "elm";
+               action: STATE_SET "visible" 0.0;
+               transition: DECELERATE 0.3;
+               target: "bottom";
+               target: "elm.swallow.slot.bottom";
+           }
+           program { name: "bottomhide";
+               signal: "elm,action,slot,bottom,hide";
+               source: "elm";
+               action: STATE_SET "default" 0.0;
+               transition: DECELERATE 0.5;
+               target: "bottom";
+               target: "elm.swallow.slot.bottom";
+           }
+       }
    }
 
-///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/hover/base/ctxpopup/default";
+   group { name: "elm/hover/base/hoversel_vertical/default";
+      alias: "elm/hover/base/hoversel_vertical/entry";
       images {
-         image: "bt_base2.png" COMP;
-         image: "bt_hilight.png" COMP;
-         image: "bt_shine.png" COMP;
-         image: "icon_arrow_left.png" COMP;
-         image: "icon_arrow_up_left.png" COMP;
-         image: "icon_arrow_up.png" COMP;
-         image: "icon_arrow_up_right.png" COMP;
-         image: "icon_arrow_right.png" COMP;
-         image: "icon_arrow_down_right.png" COMP;
-         image: "icon_arrow_down.png" COMP;
-         image: "icon_arrow_down_left.png" COMP;
+//      image: "shad_circ.png" COMP;
+        image: "bt_base2.png" COMP;
+        image: "bt_hilight.png" COMP;
+        image: "bt_shine.png" COMP;
+        image: "outdent-top.png" COMP;
+        image: "outdent-bottom.png" COMP;
       }
       parts {
-         part { name: "elm.swallow.offset";
+        part { name: "elm.swallow.offset";
             type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.0 0.0;
-               rel1.relative: 0.0 0.0;
-               rel2.relative: 0.0 0.0;
-            }
-         }
-         part { name: "elm.swallow.size";
+           description { state: "default" 0.0;
+              align: 0.0 0.0;
+              rel1.relative: 0.0 0.0;
+              rel2.relative: 0.0 0.0;
+           }
+        }
+        part { name: "elm.swallow.size";
             type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.0 0.0;
-               rel1.to: "elm.swallow.offset";
-               rel1.relative: 1.0 1.0;
-               rel2.to: "elm.swallow.offset";
-               rel2.relative: 1.0 1.0;
-            }
-         }
-         part { name: "button_image";
-            mouse_events: 1;
-            description { state: "default" 0.0;
-               image {
-                  normal: "bt_base2.png";
-                  border: 7 7 7 7;
-               }
-               image.middle: SOLID;
-            }
-            description { state: "top-left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.top-left";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.top-left";
-               rel2.offset: 1 7;
-            }
-            description { state: "top" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.top";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.top";
-               rel2.offset: 1 7;
-            }
-            description { state: "top-right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.top-right";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.top-right";
-               rel2.offset: 1 7;
-            }
-            description { state: "right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.right";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.right";
-               rel2.offset: 1 7;
-            }
-            description { state: "bottom-right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.bottom-right";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.bottom-right";
-               rel2.offset: 1 7;
-            }
-            description { state: "bottom" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.bottom";
-               rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.bottom";
-               rel2.offset: 1 7;
-            }
-            description { state: "bottom-left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.bottom-left";
+           description { state: "default" 0.0;
+              align: 0.0 0.0;
+              rel1.to: "elm.swallow.offset";
+              rel1.relative: 1.0 1.0;
+              rel2.to: "elm.swallow.offset";
+              rel2.relative: 1.0 1.0;
+           }
+        }
+/*
+        part { name: "shad";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+              image.normal: "shad_circ.png";
+              rel1.to: "button_image";
+              rel1.offset: -64 -64;
+              rel2.to: "button_image";
+              rel2.offset: 63 63;
+               fill.smooth: 0;
+           }
+        }
+ */
+        part { name: "button_image";
+           mouse_events: 1;
+           description { state: "default" 0.0;
+              rel1.to_x: "elm.swallow.slot.top";
+              rel1.to_y: "elm.swallow.slot.top";
                rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.bottom-left";
-               rel2.offset: 1 7;
-            }
-            description { state: "left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               rel1.to: "elm.swallow.slot.left";
+              rel2.to_x: "elm.swallow.slot.top";
+              rel2.to_y: "elm.swallow.slot.bottom";
+               rel2.offset: 1 5;
+              image {
+                 normal: "bt_base2.png";
+                 border: 7 7 7 7;
+              }
+               image.middle: SOLID;
+           }
+           description { state: "bottom" 0.0;
+              rel1.to_x: "elm.swallow.slot.bottom";
+              rel1.to_y: "elm.swallow.slot.top";
                rel1.offset: -2 -6;
-               rel2.to: "elm.swallow.slot.left";
-               rel2.offset: 1 7;
-            }
-         }
-         part { name: "base";
-            type: RECT;
-            mouse_events: 1;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-            description { state: "visible" 0.0;
-               inherit: "default" 1.0;
-               color: 0 0 0 64;
-            }
-         }
-         part { name: "elm.swallow.slot.left";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 1.0 0.5;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -1 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: -1 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.top-left";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 1.0 1.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 0.0 0.0;
-               rel2.offset: -1 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.top";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.5 1.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 0 -1;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: -1 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.top-right";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.0 1.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 1.0 0.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: -1 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.right";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.0 0.5;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 1.0 0.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: 0 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.bottom-right";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.0 0.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 1.0 1.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: -1 -1;
-            }
-         }
-         part { name: "elm.swallow.slot.bottom";
+              rel2.to_x: "elm.swallow.slot.bottom";
+              rel2.to_y: "elm.swallow.slot.bottom";
+               rel2.offset: 1 5;
+              image {
+                 normal: "bt_base2.png";
+                 border: 7 7 7 7;
+              }
+               image.middle: SOLID;
+           }
+        }
+
+        part { name: "base";
+           type: RECT;
+           mouse_events: 1;
+           description { state: "default" 0.0;
+              color: 0 0 0 0;
+           }
+           description { state: "visible" 0.0;
+              inherit: "default" 1.0;
+              color: 0 0 0 64;
+           }
+        }
+
+        part { name: "topclip";
+           type: RECT;
+           description { state: "default" 0.0;
+              rel2.to_y: "edge_top";
+              rel2.relative: 1.0 0.0;
+               rel2.offset: -1 7;
+           }
+        }
+        part { name: "elm.swallow.slot.top";
             type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 0.5 0.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 0.0 1.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: -1 0;
-            }
-         }
-         part { name: "elm.swallow.slot.bottom-left";
+           clip_to: "topclip";
+           description { state: "default" 0.0;
+              visible: 1;
+              align: 0.5 0.0;
+              rel1.to: "elm.swallow.slot.middle";
+              rel1.relative: 0.0 0.0;
+              rel1.offset: 0 -1;
+              rel2.to: "elm.swallow.slot.middle";
+              rel2.relative: 1.0 0.0;
+              rel2.offset: -1 -1;
+           }
+           description { state: "visible" 0.0;
+              inherit: "default" 0.0;
+              rel1.offset: 0 -7;
+              rel2.offset: -1 -7;
+              align: 0.5 1.0;
+           }
+        }
+
+        part { name: "bottomclip";
+           type: RECT;
+           description { state: "default" 0.0;
+              rel1.to_y: "edge_bottom";
+              rel1.relative: 0.0 1.0;
+               rel1.offset: -1 -8;
+           }
+        }
+        part { name: "elm.swallow.slot.bottom";
             type: SWALLOW;
-            description { state: "default" 0.0;
-               align: 1.0 0.0;
-               rel1.to: "elm.swallow.slot.middle";
-               rel1.relative: 0.0 1.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.middle";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: -1 0;
-            }
-         }
-         part {  name: "over1";
-            mouse_events: 0;
-            description { state: "default" 0.0;
+           clip_to: "bottomclip";
+           description { state: "default" 0.0;
+              align: 0.5 1.0;
+              rel1.to: "elm.swallow.slot.middle";
+              rel1.relative: 0.0 1.0;
+              rel1.offset: 0 0;
+              rel2.to: "elm.swallow.slot.middle";
+              rel2.relative: 1.0 1.0;
+              rel2.offset: -1 0;
+           }
+           description { state: "visible" 0.0;
+              inherit: "default" 0.0;
+              rel1.offset: 0 6;
+              rel2.offset: -1 6;
+              align: 0.5 0.0;
+           }
+        }
+
+        part {   name: "over1";
+           mouse_events: 0;
+           description { state: "default" 0.0;
                rel1.to: "button_image";
                rel2.to: "button_image";
-               rel2.relative: 1.0 0.5;
-               image {
-                  normal: "bt_hilight.png";
-                  border: 7 7 7 0;
-               }
-            }
-         }
-         part { name: "over2";
-            mouse_events: 1;
-            repeat_events: 1;
+              rel2.relative: 1.0 0.5;
+              image {
+                 normal: "bt_hilight.png";
+                 border: 7 7 7 0;
+              }
+           }
+        }
+        part { name: "over2";
+           mouse_events: 1;
+           repeat_events: 1;
             ignore_flags: ON_HOLD;
-            description { state: "default" 0.0;
+           description { state: "default" 0.0;
                rel1.to: "button_image";
                rel2.to: "button_image";
-               image {
-                  normal: "bt_shine.png";
-                  border: 7 7 7 7;
-               }
-            }
-         }
-         part { name: "elm.swallow.slot.middle";
-            type: SWALLOW;
-            description { state: "default" 0.0;
-               rel1.to: "elm.swallow.size";
-               rel2.to: "elm.swallow.size";
-            }
-         }
-         part { name: "arrow";
-            mouse_events: 0;
-            description { state: "default" 0.0;
+              image {
+                 normal: "bt_shine.png";
+                 border: 7 7 7 7;
+              }
+           }
+        }
+         part { name: "edge_top";
+           mouse_events:  0;
+           description { state: "default" 0.0;
                visible: 0;
-               min: 40 40;
-               max: 40 40;
-            }
-            description { state: "left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 0.0 0.5;
-               rel1.to: "elm.swallow.slot.left";
-               rel1.relative: 1.0 0.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.left";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: 0 -1;
-               image.normal: "icon_arrow_right.png";
-            }
-            description { state: "top-left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 0.0 0.0;
-               rel1.to: "elm.swallow.slot.top-left";
-               rel1.relative: 1.0 1.0;
-               rel1.offset: -5 5;
-               rel2.to: "elm.swallow.slot.top-left";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: -4 4;
-               image.normal: "icon_arrow_down_right.png";
-            }
-            description { state: "top" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 0.5 0.0;
-               rel1.to: "elm.swallow.slot.top";
-               rel1.relative: 0.0 1.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.top";
-               rel2.relative: 1.0 1.0;
-               rel2.offset: -1 0;
-               image.normal: "icon_arrow_down.png";
-            }
-            description { state: "top-right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 1.0 0.0;
-               rel1.to: "elm.swallow.slot.top-right";
-               rel1.relative: 0.0 1.0;
-               rel1.offset: 5 5;
-               rel2.to: "elm.swallow.slot.top-right";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: 4 4;
-               image.normal: "icon_arrow_down_left.png";
-            }
-            description { state: "right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 1.0 0.5;
-               rel1.to: "elm.swallow.slot.right";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 0 0;
-               rel2.to: "elm.swallow.slot.right";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: 0 -1;
-               image.normal: "icon_arrow_left.png";
-            }
-            description { state: "bottom-right" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 1.0 1.0;
-               rel1.to: "elm.swallow.slot.bottom-right";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 5 5;
-               rel2.to: "elm.swallow.slot.bottom-right";
-               rel2.relative: 0.0 0.0;
-               rel2.offset: 4 4;
-               image.normal: "icon_arrow_up_left.png";
-            }
-            description { state: "bottom" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 0.5 1.0;
-               rel1.to: "elm.swallow.slot.bottom";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 0 -1;
-               rel2.to: "elm.swallow.slot.bottom";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: -1 -1;
-               image.normal: "icon_arrow_up.png";
-            }
-            description { state: "bottom-left" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               align: 0.0 1.0;
-               rel1.to: "elm.swallow.slot.bottom-left";
-               rel1.relative: 1.0 0.0;
-               rel1.offset: -5 5;
-               rel2.to: "elm.swallow.slot.bottom-left";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: -4 4;
-               image.normal: "icon_arrow_up_right.png";
-            }
-         }
-      }
-      programs {
-         program { name: "end";
-            signal: "mouse,up,1";
-            source: "base";
-            action: SIGNAL_EMIT "elm,action,dismiss" "";
-         }
-         program { name: "show";
-            signal: "elm,action,show";
-            source: "elm";
-            action: STATE_SET "visible" 0.0;
-            target: "base";
-         }
-         program { name: "hide";
-            signal: "elm,action,hide";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "base";
-         }
-         program { name: "all-hide";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-         }
-         program { name: "top-left-show";
-            signal: "elm,action,slot,top-left,show";
-            source: "elm";
-            action: STATE_SET "top-left" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "top-show";
-            signal: "elm,action,slot,top,show";
-            source: "elm";
-            action: STATE_SET "top" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "top-right-show";
-            signal: "elm,action,slot,top-right,show";
-            source: "elm";
-            action: STATE_SET "top-right" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "right-show";
-            signal: "elm,action,slot,right,show";
-            source: "elm";
-            action: STATE_SET "right" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "bottom-right-show";
-            signal: "elm,action,slot,bottom-right,show";
-            source: "elm";
-            action: STATE_SET "bottom-right" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "bottom-show";
-            signal: "elm,action,slot,bottom,show";
-            source: "elm";
-            action: STATE_SET "bottom" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "bottom-left-show";
-            signal: "elm,action,slot,bottom-left,show";
-            source: "elm";
-            action: STATE_SET "bottom-left" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-         program { name: "left-show";
-            signal: "elm,action,slot,left,show";
-            source: "elm";
-            action: STATE_SET "left" 0.0;
-            target: "arrow";
-            target: "button_image";
-         }
-      }
-   }
-
-///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/list/item/ctxpopup";
-      alias: "elm/list/item_odd/ctxpopup";
-      alias: "elm/list/h_item/ctxpopup";
-      alias: "elm/list/h_item_odd/ctxpopup";
-      parts {
-         part { name: "button_image";
-            mouse_events: 1;
-            clip_to: "disclip";
-            description { state: "default" 0.0;
-               color: 255 255 255 0;
-               image.normal: "hoversel_entry_bg.png";
-               image.border: 0 0 2 2;
-               fill.smooth: 0;
-            }
-            description { state: "selected" 0.0;
-               inherit: "default" 0.0;
-               color: 255 255 255 255;
-            }
-         }
-         part { name: "elm.swallow.icon";
-            type: SWALLOW;
-            clip_to: "disclip";
-            description { state: "default" 0.0;
-               fixed: 1 0;
-               align: 0.0 0.5;
-               rel1 {
-                  relative: 0.0 0.0;
-                  offset: 4 4;
-               }
-               rel2 {
-                  relative: 0.0 1.0;
-                  offset: 4 -5;
-               }
-            }
-         }
-         part { name: "elm.text";
-            type: TEXT;
-            effect: SOFT_SHADOW;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "disclip";
-            description {
-               state: "default" 0.0;
-               rel1 {
-                  to_x: "elm.swallow.icon";
-                  relative: 1.0  0.0;
-                  offset: 4 4;
-               }
-               rel2 {
-                  offset: -5 -5;
+              rel1 {
+                  to: "elm.swallow.size";
+                  offset: 0 -10;
                }
-               color: 224 224 224 255;
-               color3: 0 0 0 64;
-               text {
-                  font: "Sans,Edje-Vera";
-                  size: 10;
-                  min: 1 1;
-                  align: 0.0 0.5;
-                  text_class: "list_item";
+              rel2 {
+                  to: "elm.swallow.size";
                }
-            }
-            description { state: "selected" 0.0;
+              image.normal: "outdent-bottom.png";
+               image.border: 0 0 13 0;
+               fill.smooth: 0;
+           }
+           description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               text.min: 1 1;
-               color: 0 0 0 255;
-               color3: 0 0 0 0;
-            }
-         }
-         part { name: "event";
-            type: RECT;
-            repeat_events: 1;
-            description {
-               state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "disclip";
-            type: RECT;
-            repeat_events: 1;
-            description { state: "default" 0.0;
-               rel1.to: "event";
-               rel2.to: "event";
-            }
-            description { state: "disabled" 0.0;
+               visible: 1;
+           }
+        }
+         part { name: "edge_bottom";
+           mouse_events:  0;
+           description { state: "default" 0.0;
+               visible: 0;
+              rel1 {
+                  to: "elm.swallow.size";
+               }
+              rel2 {
+                  to: "elm.swallow.size";
+                  offset: -1 9;
+               }
+              image.normal: "outdent-top.png";
+               image.border: 0 0 0 13;
+               fill.smooth: 0;
+           }
+           description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               color: 255 255 255 64;
-            }
-         }
+               visible: 1;
+           }
+        }
+        part { name: "elm.swallow.slot.middle";
+            type: SWALLOW;
+           description { state: "default" 0.0;
+              rel1.to: "elm.swallow.size";
+              rel2.to: "elm.swallow.size";
+           }
+        }
       }
       programs {
-         program {
-            name: "go_active";
-            signal: "elm,state,selected";
-            source: "elm";
-            action: STATE_SET "selected" 0.0;
-            target: "elm.text";
-            target: "button_image";
-         }
-         program {
-            name: "item_unclick";
-            signal: "mouse,up,1";
-            source: "event";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-            target: "elm.text";
-         }
-         program {
-            name: "go_passive";
-            signal: "elm,state,unselected";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "elm.text";
-            target: "button_image";
-            transition: LINEAR 0.1;
-         }
-         program {
-            name: "go_disabled";
-            signal: "elm,state,disabled";
-            source: "elm";
-            action: STATE_SET "disabled" 0.0;
-            target: "disclip";
-         }
-         program {
-            name: "go_enabled";
-            signal: "elm,state,enabled";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "disclip";
-         }
+        program { name: "end";
+           signal: "mouse,up,1";
+           source: "base";
+           action: SIGNAL_EMIT "elm,action,dismiss" "";
+        }
+
+        program { name: "show";
+            signal: "elm,action,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+//         transition: DECELERATE 0.5;
+           target: "base";
+        }
+        program { name: "hide";
+            signal: "elm,action,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+//         transition: DECELERATE 0.5;
+           target: "base";
+        }
+        program { name: "topshow";
+            signal: "elm,action,slot,top,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           target: "edge_top";
+            after: "topshow2";
+        }
+        program { name: "topshow2";
+           action: STATE_SET "visible" 0.0;
+           transition: DECELERATE 0.5;
+           target: "elm.swallow.slot.top";
+        }
+        program { name: "topshow3";
+            signal: "elm,action,slot,top,show";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           target: "button_image";
+        }
+        program { name: "tophide";
+            signal: "elm,action,slot,top,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "elm.swallow.slot.top";
+            after: "tophide2";
+        }
+        program { name: "tophide2";
+           action: STATE_SET "default" 0.0;
+           target: "edge_top";
+        }
+        program { name: "bottomshow";
+            signal: "elm,action,slot,bottom,show";
+           source: "elm";
+           action: STATE_SET "visible" 0.0;
+           target: "edge_bottom";
+            after: "bottomshow2";
+        }
+        program { name: "bottomshow2";
+           action: STATE_SET "visible" 0.0;
+           transition: DECELERATE 0.5;
+           target: "elm.swallow.slot.bottom";
+        }
+        program { name: "bottomshow3";
+            signal: "elm,action,slot,bottom,show";
+           source: "elm";
+           action: STATE_SET "bottom" 0.0;
+           target: "button_image";
+        }
+        program { name: "bottomhide";
+            signal: "elm,action,slot,bottom,hide";
+           source: "elm";
+           action: STATE_SET "default" 0.0;
+           transition: DECELERATE 0.5;
+           target: "elm.swallow.slot.bottom";
+            after: "bottomhide2";
+        }
+        program { name: "bottomhide2";
+           action: STATE_SET "default" 0.0;
+           target: "edge_bottom";
+        }
       }
    }
-
 ///////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/list/base/ctxpopup";
+   group { name: "elm/scroller/base/ctxpopup";
       data {
          item: "focus_highlight" "on";
       }
@@ -7985,7 +8138,7 @@ collections {
             v = get_int(sbvis_v);
             if (v) {
                v = get_int(sbalways_v);
-               if (!v) {
+               if(!v) {
                   emit("do-hide-vbar", "");
                   set_int(sbvis_v, 0);
                }
@@ -7993,7 +8146,7 @@ collections {
             v = get_int(sbvis_h);
             if (v) {
                v = get_int(sbalways_h);
-               if (!v) {
+               if(!v) {
                   emit("do-hide-hbar", "");
                   set_int(sbvis_h, 0);
                }
@@ -8009,32 +8162,19 @@ collections {
          image: "sl_bt2_2.png" COMP;
       }
       parts {
-         part { name: "bg";
-            type: RECT;
-            description { state: "default" 0.0;
-               rel1.offset: 2 2;
-               rel2.offset: -3 -3;
-               color: 255 255 255 0;
-            }
-         }
          part { name: "clipper";
             type: RECT;
             mouse_events: 0;
+            scale: 1;
             description { state: "default" 0.0;
-               rel1.to: "bg";
-               rel2.to: "bg";
-               rel1.offset: 2 2;
-               rel2.offset: -3 -3;
             }
          }
          part { name: "elm.swallow.content";
             clip_to: "clipper";
             type: SWALLOW;
+            scale: 1;
             description { state: "default" 0.0;
-               rel1.to: "bg";
-               rel2.to: "bg";
-               rel1.offset: 2 2;
-               rel2.offset: -3 -3;
+               align: 0.5 0.5;
             }
          }
          part { name: "focus_highlight";
@@ -8042,8 +8182,7 @@ collections {
             description { state: "default" 0.0;
                rel1.offset: -1 -1;
                rel2.offset: 0 0;
-               image {
-                  normal: "sl_bt2_2.png";
+               image { normal: "sl_bt2_2.png";
                   border: 7 7 7 7;
                   middle: 0;
                }
@@ -8066,10 +8205,13 @@ collections {
             }
          }
          part { name: "sb_vbar_clip";
-            clip_to: "sb_vbar_clip_master";
+            clip_to:"sb_vbar_clip_master";
             type: RECT;
             mouse_events: 0;
+            scale: 1;
             description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel2{ to:"clipper"; relative: 1.0 1.0;}
             }
             description { state: "hidden" 0.0;
                visible: 0;
@@ -8079,28 +8221,19 @@ collections {
          part { name: "sb_vbar";
             type: RECT;
             mouse_events: 0;
+            scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
                visible: 0;
-               min: 10 17;
                align: 1.0 0.0;
-               rel1 {
-                  relative: 1.0 0.0;
-                  offset:   0 2;
-                  to_y:     "elm.swallow.content";
-                  to_x:     "elm.swallow.content";
-               }
-               rel2 {
-                  relative: 1.0 0.0;
-                  offset:   -1 -1;
-                  to_y:     "sb_hbar";
-                  to_x:     "elm.swallow.content";
-               }
+               rel1{ to:"clipper"; relative: 1.0 0.0; }
+               rel2{ to:"clipper"; relative: 1.0 1.0; }
             }
          }
          part { name: "elm.dragable.vbar";
             clip_to: "sb_vbar_clip";
             mouse_events: 0;
+            scale: 1;
             dragable {
                x: 0 0 0;
                y: 1 1 0;
@@ -8110,18 +8243,9 @@ collections {
                fixed: 1 1;
                min: 10 17;
                max: 10 99999;
-               rel1 {
-                  relative: 0.5  0.5;
-                  offset:   0    0;
-                  to: "sb_vbar";
-               }
-               rel2 {
-                  relative: 0.5  0.5;
-                  offset:   0    0;
-                  to: "sb_vbar";
-               }
-               image {
-                  normal: "bt_sm_base2.png";
+               rel1 { relative: 0.5 0.5; to: "sb_vbar"; }
+               rel2 { relative: 0.5  0.5; to: "sb_vbar"; }
+               image { normal: "bt_sm_base2.png";
                   border: 6 6 6 6;
                   middle: SOLID;
                }
@@ -8134,8 +8258,7 @@ collections {
                rel1.to: "elm.dragable.vbar";
                rel2.relative: 1.0 0.5;
                rel2.to: "elm.dragable.vbar";
-               image {
-                  normal: "bt_sm_hilight.png";
+               image { normal: "bt_sm_hilight.png";
                   border: 6 6 6 0;
                }
             }
@@ -8146,8 +8269,7 @@ collections {
             description { state: "default" 0.0;
                rel1.to: "elm.dragable.vbar";
                rel2.to: "elm.dragable.vbar";
-               image {
-                  normal: "bt_sm_shine.png";
+               image { normal: "bt_sm_shine.png";
                   border: 6 6 6 0;
                }
             }
@@ -8166,7 +8288,10 @@ collections {
             clip_to: "sb_hbar_clip_master";
             type: RECT;
             mouse_events: 0;
+            scale: 1;
             description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel2{ to:"clipper"; relative: 1.0 1.0;}
             }
             description { state: "hidden" 0.0;
                visible: 0;
@@ -8176,49 +8301,31 @@ collections {
          part { name: "sb_hbar";
             type: RECT;
             mouse_events: 0;
+            scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
                visible: 0;
-               min: 17 10;
                align: 0.0 1.0;
-               rel1 {
-                  relative: 0.0 1.0;
-                  offset:   2 0;
-                  to_x:     "elm.swallow.content";
-                  to_y:     "elm.swallow.content";
-               }
-               rel2 {
-                  relative: 0.0 1.0;
-                  offset:   -1 -1;
-                  to_x:     "sb_vbar";
-                  to_y:     "elm.swallow.content";
-               }
+               rel1 { to:"clipper"; relative: 0.0 1.0; }
+               rel2 { to:"clipper"; relative: 1.0 1.0; }
             }
          }
          part { name: "elm.dragable.hbar";
             clip_to: "sb_hbar_clip";
             mouse_events: 0;
+            scale: 1;
             dragable {
                x: 1 1 0;
-               y: 0 0 0;
-               confine: "sb_hbar";
-            }
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               min: 17 10;
-               max: 99999 10;
-               rel1 {
-                  relative: 0.5  0.5;
-                  offset:   0    0;
-                  to: "sb_hbar";
-               }
-               rel2 {
-                  relative: 0.5  0.5;
-                  offset:   0    0;
-                  to: "sb_hbar";
-               }
-               image {
-                  normal: "bt_sm_base2.png";
+               y: 0 0 0;
+               confine: "sb_hbar";
+            }
+            description { state: "default" 0.0;
+               min: 17 10;
+               max: 99999 10;
+               fixed: 1 1;
+               rel1 { relative: 0.5  0.5; to: "sb_hbar"; }
+               rel2 { relative: 0.5  0.5; to: "sb_hbar"; }
+               image { normal: "bt_sm_base2.png";
                   border: 4 4 4 4;
                   middle: SOLID;
                }
@@ -8231,8 +8338,7 @@ collections {
                rel1.to: "elm.dragable.hbar";
                rel2.relative: 1.0 0.5;
                rel2.to: "elm.dragable.hbar";
-               image {
-                  normal: "bt_sm_hilight.png";
+               image { normal: "bt_sm_hilight.png";
                   border: 6 6 6 0;
                }
             }
@@ -8243,8 +8349,7 @@ collections {
             description { state: "default" 0.0;
                rel1.to: "elm.dragable.hbar";
                rel2.to: "elm.dragable.hbar";
-               image {
-                  normal: "bt_sm_shine.png";
+               image { normal: "bt_sm_shine.png";
                   border: 6 6 6 0;
                }
             }
@@ -8255,10 +8360,10 @@ collections {
             signal: "load";
             source: "";
             script {
-               set_state(PART:"sb_hbar_clip", "hidden", 0.0);
                set_state(PART:"sb_vbar_clip", "hidden", 0.0);
-               set_int(sbvis_h, 0);
+               set_state(PART:"sb_hbar_clip", "hidden", 0.0);
                set_int(sbvis_v, 0);
+               set_int(sbvis_h, 0);
                set_int(sbalways_v, 0);
                set_int(sbalways_h, 0);
                set_int(sbvis_timer, 0);
@@ -8267,7 +8372,7 @@ collections {
          program { name: "vbar_show";
             signal: "elm,action,show,vbar";
             source: "elm";
-            action:  STATE_SET "default" 0.0;
+            action: STATE_SET "default" 0.0;
             target: "sb_vbar_clip_master";
          }
          program { name: "vbar_hide";
@@ -8310,14 +8415,14 @@ collections {
             signal: "do-show-vbar";
             source: "";
             action:  STATE_SET "default" 0.0;
-            transition: LINEAR 0.5;
+            transition: LINEAR 1.0;
             target: "sb_vbar_clip";
          }
          program { name: "sb_vbar_hide";
             signal: "do-hide-vbar";
             source: "";
             action:  STATE_SET "hidden" 0.0;
-            transition: LINEAR 0.5;
+            transition: LINEAR 1.0;
             target: "sb_vbar_clip";
          }
          program { name: "hbar_show";
@@ -8366,14 +8471,14 @@ collections {
             signal: "do-show-hbar";
             source: "";
             action:  STATE_SET "default" 0.0;
-            transition: LINEAR 0.5;
+            transition: LINEAR 1.0;
             target: "sb_hbar_clip";
          }
          program { name: "sb_hbar_hide";
             signal: "do-hide-hbar";
             source: "";
             action:  STATE_SET "hidden" 0.0;
-            transition: LINEAR 0.5;
+            transition: LINEAR 1.0;
             target: "sb_hbar_clip";
          }
          program { name: "scroll";
@@ -8384,7 +8489,7 @@ collections {
                v = get_int(sbvis_v);
                v |= get_int(sbalways_v);
                if (!v) {
-                  emit("do-show-vbar", "");
+                  emit("do-show-vbar", "")
                   set_int(sbvis_v, 1);
                }
                v = get_int(sbvis_h);
@@ -8405,7 +8510,7 @@ collections {
             action: STATE_SET "enabled" 0.0;
             transition: ACCELERATE 0.3;
             target: "focus_highlight";
-         }
+          }
          program { name: "highlight_hide";
             signal: "elm,action,focus_highlight,hide";
             source: "elm";
@@ -8415,7 +8520,300 @@ collections {
          }
       }
    }
-
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/ctxpopup/bg/default";
+      parts {
+         part { name: "ctxpopup_bg";
+            type: RECT;
+            mouse_events: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               color: 0 0 0 64;
+            }
+         }
+      }
+      programs {
+         program { name: "clicked_event";
+            signal: "mouse,clicked,1";
+            source: "ctxpopup_bg";
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "show";
+            signal: "elm,state,show";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "ctxpopup_bg";
+         }
+         program { name: "hide";
+            signal: "elm,state,hide";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "ctxpopup_bg";
+         }
+      }
+   }
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/ctxpopup/base/default";
+      images {
+         image: "bt_base2.png" COMP;
+         image: "bt_hilight.png" COMP;
+         image: "bt_shine.png" COMP;
+      }
+      parts {
+         part { name: "base";
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.offset: -3 -3;
+               rel2.offset: 3 3;
+               image { normal: "bt_base2.png";
+                  border: 7 7 7 7;
+               }
+            }
+         }
+         part { name: "over1";
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "base";
+               rel2.to: "base";
+               rel2.relative: 1.0 0.5;
+               image { normal: "bt_hilight.png";
+                  border: 7 7 7 0;
+               }
+            }
+         }
+         part { name: "over2";
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "base";
+               rel2.to: "base";
+               image { normal: "bt_shine.png";
+                  border: 7 7 7 7;
+               }
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1 { to:"base"; offset: 4 4; };
+               rel2 { to:"base"; offset: -5 -5; };
+            }
+         }
+      }
+   }
+///////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/ctxpopup/arrow/default";
+      images {
+         image: "icon_arrow_left.png" COMP;
+         image: "icon_arrow_right.png" COMP;
+         image: "icon_arrow_up.png" COMP;
+         image: "icon_arrow_down.png" COMP;
+      }
+      parts {
+         part { name: "ctxpopup_arrow";
+            type: IMAGE;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               min: 40 40;
+               fixed: 1 1;
+               visible: 0;
+               align: 0.5 0.5;
+            }
+            description {
+               state: "left" 0.0;
+               min: 40 40;
+               fixed: 1 1;
+               align: 0.0 0.5;
+               image { normal: "icon_arrow_left.png"; }
+            }
+            description { state: "right" 0.0;
+               min: 40 40;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               image { normal: "icon_arrow_right.png"; }
+            }
+            description { state: "top" 0.0;
+               min: 40 40;
+               fixed: 1 1;
+               align: 0.5 0.0;
+               image { normal: "icon_arrow_up.png"; }
+            }
+            description { state: "bottom" 0.0;
+               min: 40 40;
+               fixed: 1 1;
+               align: 0.5 1.0;
+               image { normal: "icon_arrow_down.png"; }
+            }
+         }
+      }
+      programs {
+         program { name: "enable_left_arrow";
+            signal: "elm,state,left";
+            source: "elm";
+            action: STATE_SET "left" 0.0;
+            target: "ctxpopup_arrow";
+         }
+         program { name: "enable_right_arrow";
+            signal: "elm,state,right";
+            source: "elm";
+            action: STATE_SET "right" 0.0;
+            target: "ctxpopup_arrow";
+         }
+         program { name: "enable_top_arrow";
+            signal: "elm,state,top";
+            source: "elm";
+            action: STATE_SET "top" 0.0;
+            target: "ctxpopup_arrow";
+         }
+         program { name: "enable_bottom_arrow";
+            signal: "elm,state,bottom";
+            source: "elm";
+            action: STATE_SET "bottom" 0.0;
+            target: "ctxpopup_arrow";
+         }
+      }
+   }
+///////////////////////////////////////////////////////////////////////////////
+   group {
+      name: "elm/ctxpopup/icon_text_style_item/default";
+      alias: "elm/ctxpopup/text_style_item/default";
+      alias: "elm/ctxpopup/icon_style_item/default";
+      images {
+         image: "hoversel_entry_bg.png" COMP;
+      }
+      parts {
+         part { name: "event";
+            mouse_events: 1;
+            description { state: "default" 0.0;
+            }
+         }
+         part { name: "bg";
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.offset: 2 2;
+               rel2.offset: -3 -3;
+               image { normal:"hoversel_entry_bg.png";
+                  border: 0 0 2 2;
+               }
+               fill.smooth: 0;
+               color: 255 255 255 0;
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 25 25;
+               max: 25 25;
+               align: 0 0.5;
+               aspect: 1.0 1.0;
+               rel1 { offset: 10 10; }              
+               rel2 { offset: 0 -10; }
+            }
+         }
+         part { name: "elm.text";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 40;
+               fixed: 0 1;
+               align: 0.5 0.5;
+               rel1 { relative: 1.0 0.0; to: "elm.swallow.icon"; offset: 10 0; }
+               rel2 { relative: 1.0 1.0; offset: -11 -1; }
+               color: 255 255 255 255;
+               text {
+                  font: "Sans";
+                  size: 10;
+                  align: 0.0 0.5;
+                  min: 1 1;
+               }
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               color: 0 0 0 255;
+            }
+         }
+         part { name: "over1";
+            mouse_events: 1;
+            repeat_events: 1;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 255 255 255 0;
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+         }
+         part { name: "over2";
+            mouse_events: 1;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: 255 255 255 0;
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+         }
+         part { name: "disclip";
+            type: RECT;
+            description { state: "default" 0.0;
+               visible: 0;
+            }
+            description { state: "enabled" 0.0;
+               visible: 1;
+               color: 50 50 50 127;
+               rel1.offset: 4 4;
+               rel2.offset: -5 -5;
+            }
+         }
+      }
+      programs {
+         program {
+            name: "item_unclick";
+            signal: "mouse,up,1";
+            source: "over1";
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         program { name: "item_click2";
+            signal: "mouse,down,1";
+            source: "over2";
+            script {
+               set_state(PART:"elm.text", "clicked", 0.0);
+               set_state(PART:"bg", "clicked", 0.0);
+            }
+         }
+         program { name: "item_unclick2";
+            signal: "mouse,up,1";
+            source: "over2";
+            script {
+               set_state(PART:"elm.text", "default", 0.0);
+               set_state(PART:"bg", "default", 0.0);
+            }
+         }
+      }
+   }
 ///////////////////////////////////////////////////////////////////////////////
 // emoticon images from:
 // Tanya - Latvia