raster pushed a commit to branch master.

commit 4cb4112277c213e859916f2c05f4e5295cafb352
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Tue Aug 13 21:30:54 2013 +0900

    workon hoversel and hover 2. now better
    
    not perfect. still needs some work but i'm getting impatient, so this
    will have to do.
---
 edje/dark.edc           |   3 -
 edje/edc/elm/button.edc | 499 +++++++++++++++++++++++++++++++++++++++++++-----
 edje/edc/elm/hover.edc  | 343 ++++++++++-----------------------
 3 files changed, 560 insertions(+), 285 deletions(-)

diff --git a/edje/dark.edc b/edje/dark.edc
index fa3a2cf..fd9f0f0 100644
--- a/edje/dark.edc
+++ b/edje/dark.edc
@@ -72,10 +72,7 @@ collections {
 #include "edc/elm/menu.edc"
 #include "edc/elm/clock.edc"
 //#include "edc/elm/gengrid.edc"
-// XXX: hover 2 needs some serious work! :)
 #include "edc/elm/hover.edc"
-// XXX: needs design work !!!! hoversel not looking too good.!!!! arrows too 
small, hoversel popup too big.
-//#include "edc/elm/hoversel.edc"
 
 // desktop in general
 #include "edc/comp.edc"
diff --git a/edje/edc/elm/button.edc b/edje/edc/elm/button.edc
index ba4d77d..cc7a034 100644
--- a/edje/edc/elm/button.edc
+++ b/edje/edc/elm/button.edc
@@ -206,26 +206,26 @@ group { name: "elm/button/base/default";
          action: SIGNAL_EMIT "elm,action,press" "";
          after: "button_click_anim";
       }
-      program { name:   "button_click_anim";
+      program { name: "button_click_anim";
          action: STATE_SET "clicked" 0.0;
          target: "base";
       }
-      program {
+      program { name: "button_unclick";
          signal: "mouse,up,1"; source: "event";
          action: SIGNAL_EMIT "elm,action,unpress" "";
          after: "button_unclick_anim";
       }
-      program { name:   "button_unclick_anim";
+      program { name: "button_unclick_anim";
          action: STATE_SET "default" 0.0;
          target: "base";
       }
-      program {
+      program { name: "buttonactivate";
          signal: "elm,anim,activate"; source: "elm";
          action: STATE_SET "clicked" 0.0;
          target: "base";
          after: "button_unpressed_anim";
       }
-      program { name:   "button_unpressed_anim";
+      program { name: "button_unpressed_anim";
          action: STATE_SET "default" 0.0;
          in: 0.5 0.0;
          target: "base";
@@ -791,48 +791,204 @@ group { name: 
"elm/button/base/hoversel_vertical/default";
    alias: "elm/button/base/hoversel_horizontal/default";
    alias: "elm/button/base/hoversel_horizontal/entry";
 
-   images {
-      image: "sym_down_light_normal.png" COMP;
-      image: "sym_up_light_normal.png" COMP;
+   images.image: "vertical_separated_bar_glow.png" COMP;
+   
+   parts {
+      part { name: "elm.text";
+         description { state: "default" 0.0;
+            rel1.offset: 0 5;
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "elm.swallow.content";
+            rel1.to_y: "base";
+            rel2.to_y: "base";
+            rel2.to_x: "select_line";
+            rel2.offset: -2 -7;
+            rel2.relative: 0.0 1.0;
+            text.text_class: "hoversel";
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 2 5;
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "textonly" 0.0;
+            inherit: "default" 0.0;
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 2 5;
+            color: 21 21 21 255;
+            color3: 255 255 255 25;
+            color_class: "hoversel_text_disabled";
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "disabled_textonly" 0.0;
+            inherit: "default" 0.0;
+            color: 21 21 21 255;
+            color3: 255 255 255 25;
+            color_class: "hoversel_text_disabled";
+            text.min: 1 1;
+            visible: 1;
+         }
+      }
+      part { name: "select_line"; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 1.0 0.5;
+            min: 15 10;
+            rel1.to: "base";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 -3;
+            rel2.to: "base";
+            rel2.offset: 1 0;
+            image.normal: "vertical_separated_bar_glow.png";
+            image.border: 7 7 7 7;
+            fill.smooth : 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 0 -2;
+            rel2.offset: 0 -1;
+         }
+      }
+   }
+   programs {
+      program { name: "button_click_anim";
+         target: "select_line";
+      }
+      program { name: "button_unclick_anim";
+         target: "select_line";
+      }
+      program { name: "buttonactivate";
+         target: "select_line";
+      }
+      program { name: "button_unpressed_anim";
+         target: "select_line";
+      }
+   }
+}
+
+group { name: "elm/button/base/hoversel_vertical_entry/default";
+   alias: "elm/button/base/hoversel_vertical_entry/entry";
+   images.image: "vgrad_med_dark.png" COMP;
+   images.image: "bevel_horiz_out.png" COMP;
+   images.image: "shadow_rounded_horiz.png" COMP;
+   images.image: "shine.png" COMP;
+#define ICON     1
+#define LABEL    2
+#define MASK     3
+#define DISABLE  4
+   script {
+      public btmode;
+      public eval_mode(m) {
+         new m1 = m & MASK;
+         new d = m & DISABLE;
+         if (m1 == (ICON | LABEL)) {
+            if (!d) {
+               set_state(PART:"elm.swallow.content", "visible", 0.0);
+               set_state(PART:"sizer.content", "visible", 0.0);
+               set_state(PART:"elm.text", "visible", 0.0);
+               set_state(PART:"icon_clip", "default", 0.0);
+               set_state(PART:"event", "default", 0.0);
+            } else {
+               set_state(PART:"elm.swallow.content", "visible", 0.0);
+               set_state(PART:"sizer.content", "visible", 0.0);
+               set_state(PART:"elm.text", "disabled_visible", 0.0);
+               set_state(PART:"icon_clip", "disabled", 0.0);
+               set_state(PART:"event", "disabled", 0.0);
+            }
+         } else if (m1 == (ICON)) {
+            if (!d) {
+               set_state(PART:"elm.swallow.content", "icononly", 0.0);
+               set_state(PART:"sizer.content", "icononly", 0.0);
+               set_state(PART:"elm.text", "default", 0.0);
+               set_state(PART:"icon_clip", "default", 0.0);
+               set_state(PART:"event", "default", 0.0);
+            } else {
+               set_state(PART:"elm.swallow.content", "icononly", 0.0);
+               set_state(PART:"sizer.content", "icononly", 0.0);
+               set_state(PART:"elm.text", "default", 0.0);
+               set_state(PART:"icon_clip", "disabled", 0.0);
+               set_state(PART:"event", "disabled", 0.0);
+            }
+         } else if (m1 == (LABEL)) {
+            if (!d) {
+               set_state(PART:"elm.swallow.content", "default", 0.0);
+               set_state(PART:"sizer.content", "default", 0.0);
+               set_state(PART:"elm.text", "textonly", 0.0);
+               set_state(PART:"icon_clip", "default", 0.0);
+               set_state(PART:"event", "default", 0.0);
+            } else {
+               set_state(PART:"elm.swallow.content", "default", 0.0);
+               set_state(PART:"sizer.content", "default", 0.0);
+               set_state(PART:"elm.text", "disabled_textonly", 0.0);
+               set_state(PART:"icon_clip", "disabled", 0.0);
+               set_state(PART:"event", "disabled", 0.0);
+            }
+         } else {
+            set_state(PART:"elm.swallow.content", "default", 0.0);
+            set_state(PART:"sizer.content", "default", 0.0);
+            set_state(PART:"elm.text", "default", 0.0);
+            set_state(PART:"icon_clip", "default", 0.0);
+            set_state(PART:"event", "default", 0.0);
+         }
+      }
    }
    parts {
-      part { name: "arrow_up"; mouse_events: 0;
+      part { name: "shadow"; mouse_events: 0;
          description { state: "default" 0.0;
-            image.normal: "sym_up_light_normal.png";
-            aspect: 0.8 0.8;
-            aspect_preference: VERTICAL;
-            rel1.offset: 3 3;
-            rel2.offset: 3 -3;
-            rel2.relative: 0.0 0.5;
-            align: 0.0 1.0;
+            fixed: 1 1;
+            image.normal: "shadow_rounded_horiz.png";
+            image.border: 0 0 9 9;
+            rel1.to: "base";
+            rel1.offset: 0 -4;
+            rel2.to: "base";
+            rel2.offset: -1 5;
+            fill.smooth: 0;
+            visible: 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
          }
       }
-      part { name: "arrow_down"; mouse_events: 0;
+      part { name: "base"; mouse_events: 0;
          description { state: "default" 0.0;
-            image.normal: "sym_down_light_normal.png";
-            aspect: 0.8 0.8;
-            aspect_preference: VERTICAL;
-            rel1.offset: 3 3;
-            rel1.relative: 0.0 0.5;
-            rel2.offset: 3 -3;
-            rel2.relative: 0.0 1.0;
-            align: 0.0 0.0;
+            fixed: 1 1;
+            rel1.offset: -6 0;
+            image.normal: "vgrad_med_dark.png";
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+            visible: 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
          }
       }
-      part { name: "elm.swallow.content";
+      part { name: "icon_clip"; type: RECT;
+         description { state: "default" 0.0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 64;
+         }
+      }
+      part { name: "elm.swallow.content"; type: SWALLOW; mouse_events: 0;
+         clip_to: "icon_clip";
          description { state: "default" 0.0;
             fixed: 1 0;
             align: 0.0 0.5;
-            rel1 {
-               to_x: "arrow_up";
-               relative: 1.0 0.0;
-               offset: 6 5;
-            }
-            rel2 {
-               to_x: "arrow_up";
-               relative: 1.0 1.0;
-               offset: 6 -8;
-            }
+            rel1.offset: 6 5;
+            rel1.to: "base";
+            rel2.relative: 0.0 1.0;
+            rel2.offset: 6 -8;
+            rel2.to: "base";
+            visible: 0;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
@@ -849,25 +1005,278 @@ group { name: 
"elm/button/base/hoversel_vertical/default";
             visible: 1;
          }
       }
+      part { name: "sizer.content"; type: TEXT; mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 0;
+            text { font: FN; size: 10;
+               min: 0 0;
+               text_class: "button_text";
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            text {
+               min: 1 1;
+               text: "M";
+            }
+         }
+         description { state: "icononly" 0.0;
+            inherit: "default" 0.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            text {
+               min: 1 1;
+               text: "M";
+            }
+         }
+      }
+      part { name: "click_clip"; type: RECT;
+         description { state: "default" 0.0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.text"; type: TEXT; mouse_events: 0;
+         effect: SHADOW BOTTOM;
+         scale: 1;
+         clip_to: "click_clip";
+         description { state: "default" 0.0;
+            rel1.offset: 0 5;
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "elm.swallow.content";
+            rel1.to_y: "base";
+            rel2.offset: -7 -7;
+            rel2.to: "base";
+            color: 255 255 255 255;
+            color3: 0 0 0 128;
+            color_class: "button_text";
+            text { font: FN; size: 10;
+               align: 0.0 0.5;
+               min: 0 0;
+               text_class: "button";
+            }
+            visible: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 2 5;
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "textonly" 0.0;
+            inherit: "default" 0.0;
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: 2 5;
+            color: 21 21 21 255;
+            color3: 255 255 255 25;
+            color_class: "button_text_disabled";
+            text.min: 1 1;
+            visible: 1;
+         }
+         description { state: "disabled_textonly" 0.0;
+            inherit: "default" 0.0;
+            color: 21 21 21 255;
+            color3: 255 255 255 25;
+            color_class: "button_text_disabled";
+            text.min: 1 1;
+            visible: 1;
+         }
+      }
+      part { name: "label3"; type: TEXT; mouse_events: 0;
+         effect: GLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.offset: -2 -3;
+            rel1.to: "elm.text";
+            rel2.offset: 2 1;
+            rel2.to: "elm.text";
+            color: 51 153 255 255;
+            color2: 51 153 255 24;
+            color3: 51 153 255 18;
+            color_class: "hoversel_item_active";
+            text { font: FN; size: 10;
+               text_source: "elm.text";
+               align: 0.0 0.5;
+               text_class: "hoversel_item";
+            }
+            visible: 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "bevel"; mouse_events: 0;
+         insert_after: "elm.text";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            image.normal: "bevel_horiz_out.png";
+            image.border: 0 0 2 2;
+            image.middle: 0;
+            fill.smooth: 0;
+            visible: 0;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "shine"; repeat_events: 1;
+         insert_before: "event";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "base";
+            rel1.offset: 0 -2;
+            rel2.to: "base";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            image.normal: "shine.png";
+            visible: 0;
+            FIXED_SIZE(69, 5)
+         }
+         description { state: "clicked" 0.0;
+            inherit:  "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "event"; type: RECT;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
    }
+   programs {
+      program {
+         signal: "mouse,down,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,press" "";
+         after: "button_click_anim";
+      }
+      program { name: "button_click_anim";
+         action: STATE_SET "clicked" 0.0;
+         target: "shadow";
+         target: "base";
+         target: "shine";
+         target: "click_clip";
+         target: "label3";
+      }
+      program { name: "button_unclick";
+         signal: "mouse,up,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,unpress" "";
+         after: "button_unclick_anim";
+      }
+      program { name: "button_unclick_anim";
+         action: STATE_SET "default" 0.0;
+         target: "shadow";
+         target: "base";
+         target: "shine";
+         target: "click_clip";
+         target: "label3";
+      }
+      program { name: "buttonactivate";
+         signal: "elm,anim,activate"; source: "elm";
+         action: STATE_SET "clicked" 0.0;
+         target: "shadow";
+         target: "base";
+         target: "shine";
+         target: "click_clip";
+         target: "label3";
+         after: "button_unpressed_anim";
+      }
+      program { name: "button_unpressed_anim";
+         action: STATE_SET "default" 0.0;
+         in: 0.5 0.0;
+         target: "shadow";
+         target: "base";
+         target: "shine";
+         target: "click_clip";
+         target: "label3";
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "event";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+      program { name:   "button_text_visible";
+         signal: "elm,state,text,visible"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m |= LABEL; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name:   "button_text_hidden";
+         signal: "elm,state,text,hidden"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m &= ~LABEL; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name:   "button_icon_visible";
+         signal: "elm,state,icon,visible"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m |= ICON; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name:   "button_icon_hidden";
+         signal: "elm,state,icon,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         script {
+            new m = get_int(btmode);
+            m &= ~ICON; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name:   "button_state_disabled";
+         signal: "elm,state,disabled"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m |= DISABLE; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name:   "button_state_enabled";
+         signal: "elm,state,enabled"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m &= ~DISABLE; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+   }
+#undef ICON
+#undef LABEL
+#undef MASK
+#undef DISABLE
 }
 
-group { name: "elm/button/base/hoversel_vertical_entry/default";
-   inherit: "elm/button/base/default";
-   alias: "elm/button/base/hoversel_vertical_entry/entry";
-   alias: "elm/button/base/hoversel_horizontal_entry/default";
+group { name: "elm/button/base/hoversel_horizontal_entry/default";
+   inherit: "elm/button/base/hoversel_vertical_entry/default";
    alias: "elm/button/base/hoversel_horizontal_entry/entry";
    parts {
       part { name: "base";
          description { state: "default" 0.0;
-            color: 255 255 255 0;
-            image.normal: "button_clicked.png";
-            image.border: 5 5 4 6;
-            fill.smooth: 0;
+            rel1.offset: 0 0;
          }
          description { state: "clicked" 0.0;
             inherit: "default" 0.0;
-            color: 255 255 255 255;
+            visible: 1;
          }
       }
    }
diff --git a/edje/edc/elm/hover.edc b/edje/edc/elm/hover.edc
index ab0e789..7f36c8f 100644
--- a/edje/edc/elm/hover.edc
+++ b/edje/edc/elm/hover.edc
@@ -135,9 +135,7 @@ group { name: "elm/hover/base/default";
 }
 
 group { name: "elm/hover/base/popout";
-   images {
-      image: "vgrad_med.png" COMP;
-   }
+   images.image: "button_normal.png" COMP;
    parts {
       part { name: "elm.swallow.offset"; type: SWALLOW;
          description { state: "default" 0.0;
@@ -179,10 +177,8 @@ group { name: "elm/hover/base/popout";
             rel1.offset: -5 -5;
             rel2.to: "elm.swallow.slot.left";
             rel2.offset: 4 4;
-            image {
-               normal: "vgrad_med.png";
-               border: 4 4 4 4;
-            }
+            image.normal: "button_normal.png";
+            image.border: 4 4 3 5;
             image.middle: SOLID;
          }
          description { state: "visible" 0.0;
@@ -223,10 +219,8 @@ group { name: "elm/hover/base/popout";
             rel1.offset: -5 -5;
             rel2.to: "elm.swallow.slot.right";
             rel2.offset: 4 4;
-            image {
-               normal: "vgrad_med.png";
-               border: 4 4 4 4;
-            }
+            image.normal: "button_normal.png";
+            image.border: 4 4 3 5;
             image.middle: SOLID;
          }
          description { state: "visible" 0.0;
@@ -267,10 +261,8 @@ group { name: "elm/hover/base/popout";
             rel1.offset: -5 -5;
             rel2.to: "elm.swallow.slot.top";
             rel2.offset: 4 4;
-            image {
-               normal: "vgrad_med.png";
-               border: 4 4 4 4;
-            }
+            image.normal: "button_normal.png";
+            image.border: 4 4 3 5;
             image.middle: SOLID;
          }
          description { state: "visible" 0.0;
@@ -312,10 +304,8 @@ group { name: "elm/hover/base/popout";
             rel1.offset: -5 -5;
             rel2.to: "elm.swallow.slot.bottom";
             rel2.offset: 4 4;
-            image {
-               normal: "vgrad_med.png";
-               border: 4 4 4 4;
-            }
+            image.normal: "button_normal.png";
+            image.border: 4 4 3 5;
             image.middle: SOLID;
          }
          description { state: "visible" 0.0;
@@ -344,13 +334,11 @@ group { name: "elm/hover/base/popout";
       part { name: "pop"; mouse_events: 1;
          description { state: "default" 0.0;
             rel1.to: "elm.swallow.slot.middle";
-            rel1.offset: -5 -5;
+            rel1.offset: -6 -6;
             rel2.to: "elm.swallow.slot.middle";
-            rel2.offset: 4 4;
-            image {
-               normal: "vgrad_med.png";
-               border: 4 4 4 4;
-            }
+            rel2.offset: 5 5;
+            image.normal: "button_normal.png";
+            image.border: 4 4 3 5;
             image.middle: SOLID;
          }
       }
@@ -435,23 +423,6 @@ group { name: "elm/hover/base/popout";
    }
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 //In the hover used by the menu only the bottom part is used.
 group { name: "elm/hover/base/menu";
    images {
@@ -901,38 +872,10 @@ group { name: "elm/hover/base/main_menu_submenu";
    }
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 group { name: "elm/hover/base/hoversel_vertical/default";
    alias: "elm/hover/base/hoversel_vertical/entry";
-   images {
-      image: "button_normal.png" COMP;
-      image: "downlight_glow_up.png" COMP;
-      image: "downlight_glow.png" COMP;
-   }
+   images.image: "button_normal.png" COMP;
+   images.image: "vertical_separated_bar_glow.png" COMP;
    parts {
       part { name: "elm.swallow.offset"; type: SWALLOW;
          description { state: "default" 0.0;
@@ -952,12 +895,13 @@ group { name: "elm/hover/base/hoversel_vertical/default";
       }
       part { name: "button_image"; mouse_events: 1;
          description { state: "default" 0.0;
-            rel1.to_x: "elm.swallow.slot.top";
+            rel1.to_x: "limit0";
             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;
+            rel1.offset: -10 -6;
+            rel2.to_x: "limit1";
+            rel2.to_y: "elm.swallow.slot.middle";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: 9 5;
             image {
                normal: "button_normal.png";
                border: 7 7 7 7;
@@ -965,12 +909,13 @@ group { name: "elm/hover/base/hoversel_vertical/default";
             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";
+            rel1.to_x: "limit0";
+            rel1.to_y: "elm.swallow.slot.middle";
+            rel1.relative: 0.0 1.0;
+            rel1.offset: -10 -4;
+            rel2.to_x: "limit1";
             rel2.to_y: "elm.swallow.slot.bottom";
-            rel2.offset: 1 5;
+            rel2.offset: 9 5;
             image {
                normal: "button_normal.png";
                border: 7 7 7 7;
@@ -978,19 +923,66 @@ group { name: "elm/hover/base/hoversel_vertical/default";
             image.middle: SOLID;
          }
       }
-      part { name: "base"; type: RECT; mouse_events: 1;
+      part { name: "limit0"; type: SPACER;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.top";
+            rel1.offset: 1 0;
+            rel2.to_x: "elm.swallow.slot.middle";
+            rel2.offset: 0 0;
+            rel2.relative: 0.0 1.0;
+            align: 0.0 0.5;
+            min: 1 1;
+            max: 1 99999;
+         }
+         description { state: "bottom" 0.0;
+            inherit: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "limit1"; type: SPACER;
+         description { state: "default" 0.0;
+            rel1.to_x: "elm.swallow.slot.middle";
+            rel1.offset: -1 0;
+            rel1.relative: 1.0 0.0;
+            rel2.to_x: "elm.swallow.slot.top";
+            rel2.offset: -2 0;
+            align: 1.0 0.5;
+            min: 1 1;
+            max: 1 99999;
+         }
+         description { state: "bottom" 0.0;
+            inherit: "default" 0.0;
+            rel2.to_x: "elm.swallow.slot.bottom";
+         }
+      }
+      part { name: "select_line"; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 1.0 0.5;
+            min: 15 10;
+            rel1.to: "button_image";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 -3;
+            rel2.to: "button_image";
+            rel2.offset: 1 0;
+            image.normal: "vertical_separated_bar_glow.png";
+            image.border: 7 7 7 7;
+            fill.smooth : 0;
+         }
+      }
+      part { name: "base"; type: RECT;
          description { state: "default" 0.0;
             color: 0 0 0 0;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
-            color: 0 0 0 64;
+            color: 0 0 0 0;
          }
       }
       part { name: "topclip"; type: RECT;
          description { state: "default" 0.0;
-            rel2.to_y: "edge_top";
-            rel2.relative: 1.0 0.0;
+            rel2.to_y: "button_image";
+            rel2.offset: -1 -6;
          }
       }
       part { name: "elm.swallow.slot.top"; type: SWALLOW;
@@ -1007,15 +999,13 @@ group { name: "elm/hover/base/hoversel_vertical/default";
          }
          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.to_y: "button_image";
+            rel1.offset: 0 3;
          }
       }
       part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
@@ -1024,58 +1014,16 @@ group { name: 
"elm/hover/base/hoversel_vertical/default";
             align: 0.5 1.0;
             rel1.to: "elm.swallow.slot.middle";
             rel1.relative: 0.0 1.0;
-            rel1.offset: 0 0;
+            rel1.offset: 0 2;
             rel2.to: "elm.swallow.slot.middle";
             rel2.relative: 1.0 1.0;
-            rel2.offset: -1 0;
+            rel2.offset: -1 2;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
-            rel1.offset: 0 6;
-            rel2.offset: -1 6;
             align: 0.5 0.0;
          }
       }
-      part { name: "edge_top"; mouse_events:  0;
-         description { state: "default" 0.0;
-            visible: 0;
-            rel1 {
-               to_x: "elm.swallow.slot.top";
-               to_y: "elm.swallow.size";
-               offset: 0 -10;
-            }
-            rel2 {
-               to_x: "elm.swallow.slot.top";
-               to_y: "elm.swallow.size";
-            }
-            image.normal: "downlight_glow.png";
-            image.border: 0 0 3 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_x: "elm.swallow.slot.bottom";
-               to_y: "elm.swallow.size";
-            }
-            rel2 {
-               to_x: "elm.swallow.slot.bottom";
-               to_y: "elm.swallow.size";
-               offset: -1 9;
-            }
-            image.normal: "downlight_glow_up.png";
-            image.border: 0 0 0 3;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-            visible: 1;
-         }
-      }
       part { name: "elm.swallow.slot.middle";
          type: SWALLOW;
          description { state: "default" 0.0;
@@ -1099,14 +1047,10 @@ group { name: 
"elm/hover/base/hoversel_vertical/default";
          action: STATE_SET "default" 0.0;
          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";
       }
@@ -1114,26 +1058,19 @@ group { name: 
"elm/hover/base/hoversel_vertical/default";
          signal: "elm,action,slot,top,show"; source: "elm";
          action: STATE_SET "default" 0.0;
          target: "button_image";
+         target: "limit0";
+         target: "limit1";
       }
       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";
       }
@@ -1141,27 +1078,21 @@ group { name: 
"elm/hover/base/hoversel_vertical/default";
          signal: "elm,action,slot,bottom,show"; source: "elm";
          action: STATE_SET "bottom" 0.0;
          target: "button_image";
+         target: "limit0";
+         target: "limit1";
       }
       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/hover/base/hoversel_horizontal/default";
    alias: "elm/hover/base/hoversel_horizontal/entry";
-   images {
-      image: "downlight_glow_left.png" COMP;
-      image: "downlight_glow_right.png" COMP;
-   }
+   images.image: "button_normal.png" COMP;
    parts {
       part { name: "elm.swallow.offset"; type: SWALLOW;
          description { state: "default" 0.0;
@@ -1185,17 +1116,18 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
-            color: 0 0 0 64;
+            color: 0 0 0 0;
          }
       }
       part { name: "button_image"; mouse_events: 0;
          description { state: "default" 0.0;
             rel1.to_x: "elm.swallow.slot.left";
-            rel1.to_y: "elm.swallow.slot.left";
-            rel1.offset: -2 -6;
-            rel2.to_x: "elm.swallow.slot.right";
-            rel2.to_y: "elm.swallow.slot.left";
-            rel2.offset: 1 5;
+            rel1.to_y: "elm.swallow.slot.middle";
+            rel1.offset: -6 0;
+            rel2.to_x: "elm.swallow.slot.middle";
+            rel2.to_y: "elm.swallow.slot.middle";
+            rel2.relative: 0.0 1.0;
+            rel2.offset: 4 1;
             image {
                normal: "button_normal.png";
                border: 7 7 7 7;
@@ -1203,12 +1135,13 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
             image.middle: SOLID;
          }
          description { state: "right" 0.0;
-            rel1.to_x: "elm.swallow.slot.left";
-            rel1.to_y: "elm.swallow.slot.left";
-            rel1.offset: -2 -6;
+            rel1.to_x: "elm.swallow.slot.middle";
+            rel1.to_y: "elm.swallow.slot.middle";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: -5 0;
             rel2.to_x: "elm.swallow.slot.right";
-            rel2.to_y: "elm.swallow.slot.right";
-            rel2.offset: 1 5;
+            rel2.to_y: "elm.swallow.slot.middle";
+            rel2.offset: 5 1;
             image {
                normal: "button_normal.png";
                border: 7 7 7 7;
@@ -1216,9 +1149,10 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
             image.middle: SOLID;
          }
       }
+      
       part { name: "leftclip"; type: RECT;
          description { state: "default" 0.0;
-            rel2.to_x: "edge_left";
+            rel2.to_x: "elm.swallow.slot.middle";
             rel2.relative: 0.0 1.0;
          }
       }
@@ -1242,7 +1176,7 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
       }
       part { name: "rightclip"; type: RECT;
          description { state: "default" 0.0;
-            rel1.to_x: "edge_right";
+            rel1.to_x: "elm.swallow.slot.middle";
             rel1.relative: 1.0 0.0;
          }
       }
@@ -1264,50 +1198,6 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
             align: 0.0 0.5;
          }
       }
-      part { name: "edge_left"; mouse_events:  0;
-         description { state: "default" 0.0;
-            visible: 0;
-            rel1 {
-               to_x: "elm.swallow.size";
-               to_y: "elm.swallow.slot.left";
-               offset: -10 -11;
-            }
-            rel2 {
-               to_x: "elm.swallow.size";
-               to_y: "elm.swallow.slot.left";
-               offset: -1 10;
-            }
-            image.normal: "downlight_glow_right.png";
-            image.border: 3 0 0 0;
-            fill.smooth: 0;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-            visible: 1;
-         }
-      }
-      part { name: "edge_right"; mouse_events:  0;
-         description { state: "default" 0.0;
-            visible: 0;
-            rel1 {
-               to_x: "elm.swallow.size";
-               to_y: "elm.swallow.slot.right";
-               offset: 0 -11;
-            }
-            rel2 {
-               to_x: "elm.swallow.size";
-               to_y: "elm.swallow.slot.right";
-               offset: 9 10;
-            }
-            image.normal: "downlight_glow_left.png";
-            image.border: 0 3 0 0;
-            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";
@@ -1336,11 +1226,6 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
       program { name: "leftshow";
          signal: "elm,action,slot,left,show"; source: "elm";
          action: STATE_SET "visible" 0.0;
-         target: "edge_left";
-         after: "leftshow2";
-      }
-      program { name: "leftshow2";
-         action: STATE_SET "visible" 0.0;
          transition: DECELERATE 0.5;
          target: "elm.swallow.slot.left";
       }
@@ -1350,27 +1235,16 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
          transition: DECELERATE 0.5;
          target: "button_image";
       }
-
       program { name: "lefthide";
          signal: "elm,action,slot,left,hide"; source: "elm";
          action: STATE_SET "default" 0.0;
          transition: DECELERATE 0.5;
          target: "elm.swallow.slot.left";
-         after: "lefthide2";
-      }
-      program { name: "lefthide2";
-         action: STATE_SET "default" 0.0;
-         transition: DECELERATE 0.5;
-         target: "edge_left";
       }
+      
       program { name: "rightshow";
          signal: "elm,action,slot,right,show"; source: "elm";
          action: STATE_SET "visible" 0.0;
-         target: "edge_right";
-         after: "rightshow2";
-      }
-      program { name: "rightshow2";
-         action: STATE_SET "visible" 0.0;
          transition: DECELERATE 0.5;
          target: "elm.swallow.slot.right";
       }
@@ -1385,11 +1259,6 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
          action: STATE_SET "default" 0.0;
          transition: DECELERATE 0.5;
          target: "elm.swallow.slot.right";
-         after: "righthide2";
-      }
-      program { name: "righthide2";
-         action: STATE_SET "default" 0.0;
-         target: "edge_right";
       }
    }
 }

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk

Reply via email to