raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=81403f449482cb5aa20ce2003f46ddd542fab5d5

commit 81403f449482cb5aa20ce2003f46ddd542fab5d5
Author: Andrii Kroitor <[email protected]>
Date:   Sat Feb 8 13:08:02 2014 +0900

    Elmementary menu styling fixed
    
    Summary:
    When custom style is applyed to menu the same style will be applyed to
    its internal hover object.
    Moved hover styles used by menu from hover.edc to menu.edc
    
    Reviewers: cedric, seoz, raster
    
    Reviewed By: raster
    
    CC: reutskiy.v.v
    
    Differential Revision: https://phab.enlightenment.org/D514
---
 data/themes/edc/elm/hover.edc | 449 -----------------------------------------
 data/themes/edc/elm/menu.edc  | 450 ++++++++++++++++++++++++++++++++++++++++++
 src/lib/elm_menu.c            |  28 ++-
 3 files changed, 471 insertions(+), 456 deletions(-)

diff --git a/data/themes/edc/elm/hover.edc b/data/themes/edc/elm/hover.edc
index b8f706c..33f891f 100644
--- a/data/themes/edc/elm/hover.edc
+++ b/data/themes/edc/elm/hover.edc
@@ -423,455 +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 {
-      image: "vgrad_med_lighter.png" COMP;
-      image: "bevel_out.png" COMP;
-      image: "shine.png" COMP;
-      image: "win_shadow.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; repeat_events: 1;
-         description { state: "default" 0.0;
-            color: 0 0 0 0;
-         }
-      }
-      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;
-            color: 255 255 255 0;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-            color: 255 255 255 255;
-         }
-      }
-      part { name: "shadow";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            image.normal: "win_shadow.png";
-            image.border: 14 14 14 14;
-            image.middle: 0;
-            rel1.to: "bottom";
-            rel1.offset: -7  -3;
-            rel2.to: "bottom";
-            rel2.offset: 6 11;
-            fill.smooth: 0;
-         }
-      }
-      part { name: "top";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            image.normal: "vgrad_med_lighter.png";
-            rel1.to: "bottom";
-            rel2.to_x: "bottom";
-            rel2.to_y: "shine";
-            rel2.offset: -1 0;
-            min: 0 23;
-            align: 0.0 0.0;
-            fill.smooth: 0;
-            TILED_HORIZ(120)
-            fixed: 0 1;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-      part { name: "bg"; type: RECT; mouse_events: 0;
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            rel1.to_x: "bottom";
-            rel1.to_y: "top";
-            rel1.relative: 0.0 1.0;
-            rel2.to: "bottom";
-            color: 64 64 64 255;
-         }
-      }
-
-      part { name: "bottom";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            rel1.to: "elm.swallow.slot.bottom";
-            rel1.offset: 0 -5;
-            rel2.to: "elm.swallow.slot.bottom";
-            rel2.offset: -1 4;
-            image.normal: "bevel_out.png";
-            image.border: 1 1 1 1;
-            image.middle: 0;
-            fill.smooth: 0;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
-         clip_to: "bottomclip";
-         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;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-      part { name: "bevel"; mouse_events: 0;
-         description { state: "default" 0.0;
-            rel1.to: "bottom";
-            rel2.to: "bottom";
-            image.normal: "bevel_out.png";
-            image.border: 1 1 1 1;
-            image.middle: 0;
-            fill.smooth: 0;
-         }
-      }
-      part { name: "shine"; mouse_events: 1;
-         repeat_events:1;
-         description { state: "default" 0.0;
-            rel1.to: "bottom";
-            rel1.offset: 0 -2;
-            rel2.to: "bottom";
-            rel2.relative: 1.0 0.0;
-            rel2.offset: -1 2;
-            image.normal: "shine.png";
-            FIXED_SIZE(69, 5)
-         }
-      }
-      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" "elm";
-      }
-      program { name: "bottomshow";
-         signal: "elm,action,slot,bottom,show"; source: "elm";
-         action: STATE_SET "visible" 0.0;
-         transition: DECELERATE 0.5;
-         target: "bottomclip";
-         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: "bottomclip";
-         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";
-   inherit: "elm/hover/base/menu";
-   images {
-      image: "vgrad_med.png" COMP;
-   }
-   parts {
-      part { name: "elm.swallow.offset";
-         repeat_events: 1;
-      }
-      //here we don't catch events like the hover does
-      part { name: "base"; type: RECT; repeat_events: 1;
-         description { state: "visible" 0.0;
-            color: 0 0 0 0;
-            visible: 0;
-         }
-      }
-   }
-}
-
-group { name: "elm/hover/base/main_menu";
-   images.image: "vgrad_med_lighter.png" COMP;
-   images.image: "bevel_dark_out.png" COMP;
-   parts {
-      part { name: "elm.swallow.offset"; type: SWALLOW;
-         description { state: "default" 0.0;
-            visible: 0;
-            fixed: 1 1;
-         }
-      }
-      part { name: "elm.swallow.size"; type: SWALLOW;
-         description { state: "default" 0.0;
-            align: 0.0 0.0;
-            rel2.relative: 0.0 0.0;
-            rel1.offset: 0 0;
-            fixed: 1 1;
-         }
-      }
-      part { name: "bottomclip"; type: RECT;
-         description { state: "default" 0.0;
-            rel1.offset: -1 -2;
-         }
-      }
-      part { name: "base";
-         description { state: "default" 0.0;
-            image.normal: "vgrad_med_lighter.png";
-            rel1.to_y: "bottom";
-            rel2.to_y: "bottom";
-            fill.smooth: 0;
-            TILED_HORIZ(120)
-         }
-      }
-      part { name: "bevel"; mouse_events: 0;
-         description { state: "default" 0.0;
-            rel1.to: "base";
-            rel2.to: "base";
-            image.normal: "bevel_dark_out.png";
-            image.border: 1 1 1 1;
-            image.middle: 0;
-            fill.smooth: 0;
-         }
-      }
-      part { name: "bottom"; type: RECT;
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            visible: 0;
-            rel1.to: "elm.swallow.slot.bottom";
-            rel1.offset: 0 0;
-            rel2.to: "elm.swallow.slot.bottom";
-            rel2.offset: -1 -1;
-         }
-      }
-      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            align: 0.5 0.0;
-            rel1.to: "elm.swallow.size";
-            rel1.relative: 0.0 1.0;
-            rel2.to: "elm.swallow.size";
-            fixed: 1 0;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-   }
-   programs {
-      program { name: "bottomshow";
-         signal: "elm,action,slot,bottom,show"; source: "elm";
-         action: STATE_SET "visible" 0.0;
-         transition: DECELERATE 0.3;
-         target: "elm.swallow.slot.bottom";
-      }
-   }
-}
-
-group { name: "elm/hover/base/main_menu_submenu";
-   images.image: "vgrad_med_lighter.png" COMP;
-   images.image: "bevel_out.png" COMP;
-   images.image: "shine.png" COMP;
-   images.image: "win_shadow.png" COMP;
-   parts {
-      part { name: "elm.swallow.offset"; type: SWALLOW;
-         repeat_events:1;
-         description { state: "default" 0.0;
-            align: 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";
-         }
-      }
-      part { name: "base"; type: RECT; repeat_events: 1;
-         description { state: "default" 0.0;
-            color: 0 0 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: "shadow";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            image.normal: "win_shadow.png";
-            image.border: 14 14 14 14;
-            image.middle: 0;
-            rel1.to: "bottom";
-            rel1.offset: -7  -3;
-            rel2.to: "bottom";
-            rel2.offset: 6 11;
-            fill.smooth: 0;
-         }
-      }
-      part { name: "top";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            image.normal: "vgrad_med_lighter.png";
-            rel1.to: "bottom";
-            rel2.to_x: "bottom";
-            rel2.to_y: "shine";
-            rel2.offset: -1 0;
-            min: 0 23;
-            align: 0.0 0.0;
-            fill.smooth: 0;
-            TILED_HORIZ(120)
-            fixed: 0 1;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-      part { name: "bg"; type: RECT; mouse_events: 0;
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            rel1.to_x: "bottom";
-            rel1.to_y: "top";
-            rel1.relative: 0.0 1.0;
-            rel2.to: "bottom";
-            color: 64 64 64 255;
-         }
-      }
-      part { name: "bottom";
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            rel1.to: "elm.swallow.slot.bottom";
-            rel1.offset: 0 -6;
-            rel2.to: "elm.swallow.slot.bottom";
-            rel2.offset: -1 4;
-            image.normal: "bevel_out.png";
-            image.border: 1 1 1 1;
-            image.middle: 0;
-            fill.smooth: 0;
-         }
-         description { state: "visible" 0.0;
-            inherit: "default" 0.0;
-         }
-      }
-      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"; type: RECT; mouse_events: 1;
-         repeat_events:1;
-         description { state: "default" 0.0;
-            rel1.to: "elm.swallow.slot.middle";
-            rel1.offset: 0 0;
-            rel2.to: "elm.swallow.slot.middle";
-            rel1.relative: 0.0 1.0;
-            rel2.offset: -1 0;
-            visible: 0;
-         }
-      }
-      part { name: "shine"; mouse_events: 0;
-         clip_to: "bottomclip";
-         description { state: "default" 0.0;
-            rel1.to: "bottom";
-            rel1.offset: 0 -2;
-            rel2.to: "bottom";
-            rel2.relative: 1.0 0.0;
-            rel2.offset: -1 2;
-            image.normal: "shine.png";
-            FIXED_SIZE(69, 5)
-         }
-      }
-      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" "elm";
-      }
-      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: "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/hoversel_vertical/default";
    alias: "elm/hover/base/hoversel_vertical/entry";
    images.image: "button_normal.png" COMP;
diff --git a/data/themes/edc/elm/menu.edc b/data/themes/edc/elm/menu.edc
index 369c5ab..d180c58 100644
--- a/data/themes/edc/elm/menu.edc
+++ b/data/themes/edc/elm/menu.edc
@@ -688,3 +688,453 @@ group { name: "elm/menu/main_menu_submenu/default";
       }
    }
 }
+/*
+//In the hover used by the menu only the bottom part is used.
+group { name: "elm/hover/base/menu/default";
+   images {
+      image: "vgrad_med_lighter.png" COMP;
+      image: "bevel_out.png" COMP;
+      image: "shine.png" COMP;
+      image: "win_shadow.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; repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      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;
+            color: 255 255 255 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "shadow";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            image.normal: "win_shadow.png";
+            image.border: 14 14 14 14;
+            image.middle: 0;
+            rel1.to: "bottom";
+            rel1.offset: -7  -3;
+            rel2.to: "bottom";
+            rel2.offset: 6 11;
+            fill.smooth: 0;
+         }
+      }
+      part { name: "top";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            image.normal: "vgrad_med_lighter.png";
+            rel1.to: "bottom";
+            rel2.to_x: "bottom";
+            rel2.to_y: "shine";
+            rel2.offset: -1 0;
+            min: 0 23;
+            align: 0.0 0.0;
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+            fixed: 0 1;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            rel1.to_x: "bottom";
+            rel1.to_y: "top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "bottom";
+            color: 64 64 64 255;
+         }
+      }
+
+      part { name: "bottom";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.offset: 0 -5;
+            rel2.to: "elm.swallow.slot.bottom";
+            rel2.offset: -1 4;
+            image.normal: "bevel_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            fill.smooth: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         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;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bevel"; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "bottom";
+            rel2.to: "bottom";
+            image.normal: "bevel_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            fill.smooth: 0;
+         }
+      }
+      part { name: "shine"; mouse_events: 1;
+         repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "bottom";
+            rel1.offset: 0 -2;
+            rel2.to: "bottom";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            image.normal: "shine.png";
+            FIXED_SIZE(69, 5)
+         }
+      }
+      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" "elm";
+      }
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.5;
+         target: "bottomclip";
+         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: "bottomclip";
+         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/default";
+   inherit: "elm/hover/base/menu/default";
+   images {
+      image: "vgrad_med.png" COMP;
+   }
+   parts {
+      part { name: "elm.swallow.offset";
+         repeat_events: 1;
+      }
+      //here we don't catch events like the hover does
+      part { name: "base"; type: RECT; repeat_events: 1;
+         description { state: "visible" 0.0;
+            color: 0 0 0 0;
+            visible: 0;
+         }
+      }
+   }
+}
+
+group { name: "elm/hover/base/main_menu/default";
+   images.image: "vgrad_med_lighter.png" COMP;
+   images.image: "bevel_dark_out.png" COMP;
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW;
+         description { state: "default" 0.0;
+            visible: 0;
+            fixed: 1 1;
+         }
+      }
+      part { name: "elm.swallow.size"; type: SWALLOW;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+            rel1.offset: 0 0;
+            fixed: 1 1;
+         }
+      }
+      part { name: "bottomclip"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.offset: -1 -2;
+         }
+      }
+      part { name: "base";
+         description { state: "default" 0.0;
+            image.normal: "vgrad_med_lighter.png";
+            rel1.to_y: "bottom";
+            rel2.to_y: "bottom";
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+         }
+      }
+      part { name: "bevel"; mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            image.normal: "bevel_dark_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            fill.smooth: 0;
+         }
+      }
+      part { name: "bottom"; type: RECT;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.offset: 0 0;
+            rel2.to: "elm.swallow.slot.bottom";
+            rel2.offset: -1 -1;
+         }
+      }
+      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            rel1.to: "elm.swallow.size";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "elm.swallow.size";
+            fixed: 1 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+   }
+   programs {
+      program { name: "bottomshow";
+         signal: "elm,action,slot,bottom,show"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.3;
+         target: "elm.swallow.slot.bottom";
+      }
+   }
+}
+
+group { name: "elm/hover/base/main_menu_submenu/default";
+   images.image: "vgrad_med_lighter.png" COMP;
+   images.image: "bevel_out.png" COMP;
+   images.image: "shine.png" COMP;
+   images.image: "win_shadow.png" COMP;
+   parts {
+      part { name: "elm.swallow.offset"; type: SWALLOW;
+         repeat_events:1;
+         description { state: "default" 0.0;
+            align: 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";
+         }
+      }
+      part { name: "base"; type: RECT; repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 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: "shadow";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            image.normal: "win_shadow.png";
+            image.border: 14 14 14 14;
+            image.middle: 0;
+            rel1.to: "bottom";
+            rel1.offset: -7  -3;
+            rel2.to: "bottom";
+            rel2.offset: 6 11;
+            fill.smooth: 0;
+         }
+      }
+      part { name: "top";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            image.normal: "vgrad_med_lighter.png";
+            rel1.to: "bottom";
+            rel2.to_x: "bottom";
+            rel2.to_y: "shine";
+            rel2.offset: -1 0;
+            min: 0 23;
+            align: 0.0 0.0;
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+            fixed: 0 1;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "bg"; type: RECT; mouse_events: 0;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            rel1.to_x: "bottom";
+            rel1.to_y: "top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "bottom";
+            color: 64 64 64 255;
+         }
+      }
+      part { name: "bottom";
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.bottom";
+            rel1.offset: 0 -6;
+            rel2.to: "elm.swallow.slot.bottom";
+            rel2.offset: -1 4;
+            image.normal: "bevel_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            fill.smooth: 0;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      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"; type: RECT; mouse_events: 1;
+         repeat_events:1;
+         description { state: "default" 0.0;
+            rel1.to: "elm.swallow.slot.middle";
+            rel1.offset: 0 0;
+            rel2.to: "elm.swallow.slot.middle";
+            rel1.relative: 0.0 1.0;
+            rel2.offset: -1 0;
+            visible: 0;
+         }
+      }
+      part { name: "shine"; mouse_events: 0;
+         clip_to: "bottomclip";
+         description { state: "default" 0.0;
+            rel1.to: "bottom";
+            rel1.offset: 0 -2;
+            rel2.to: "bottom";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            image.normal: "shine.png";
+            FIXED_SIZE(69, 5)
+         }
+      }
+      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" "elm";
+      }
+      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: "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";
+      }
+   }
+}
+*/
diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c
index 0b94ff3..25b10ee 100644
--- a/src/lib/elm_menu.c
+++ b/src/lib/elm_menu.c
@@ -202,10 +202,17 @@ _elm_menu_smart_theme(Eo *obj, void *_pd, va_list *list)
    Eina_List *l, *_l, *_ll, *ll = NULL;
    Elm_Menu_Item *item;
    const char *s;
+   char style[1024];
 
    eo_do_super(obj, MY_CLASS, elm_wdg_theme_apply(&int_ret));
    if (!int_ret) return;
 
+   if (sd->menu_bar)
+      snprintf(style, sizeof(style), "main_menu/%s", 
elm_widget_style_get(obj));
+   else
+      snprintf(style, sizeof(style), "menu/%s", elm_widget_style_get(obj));
+   elm_object_style_set(sd->hv, style);
+
    ll = eina_list_append(ll, sd->items);
    EINA_LIST_FOREACH(ll, _ll, l)
      {
@@ -226,6 +233,8 @@ _elm_menu_smart_theme(Eo *obj, void *_pd, va_list *list)
                   if (!elm_layout_theme_set(VIEW(item), "menu", s,
                                             elm_widget_style_get(obj)))
                     CRI("Failed to set layout!");
+                  snprintf(style, sizeof(style), "menu/%s", 
elm_widget_style_get(WIDGET(item)));
+                  elm_object_style_set(item->submenu.hv, style);
 
                   elm_object_item_text_set((Elm_Object_Item *)item,
                                            item->label);
@@ -532,6 +541,7 @@ _item_submenu_obj_create(Elm_Menu_Item *item)
 {
    ELM_MENU_DATA_GET(WIDGET(item), sd);
    Evas_Object *hv, *bx;
+   char style[1024];
 
    item->submenu.location = elm_icon_add(sd->bx);
    item->submenu.hv = hv = elm_hover_add(sd->bx);
@@ -541,12 +551,16 @@ _item_submenu_obj_create(Elm_Menu_Item *item)
 
    if (sd->menu_bar && !item->parent)
      {
-        elm_object_style_set(hv, "main_menu_submenu");
+        snprintf(style, sizeof(style), "main_menu_submenu/%s", 
elm_widget_style_get(WIDGET(item)));
+        elm_object_style_set(hv, style);
         evas_object_smart_callback_add(hv, "dismissed",
                                        _hover_dismissed_cb, WIDGET(item));
      }
    else
-     elm_object_style_set(hv, "submenu");
+     {
+        snprintf(style, sizeof(style), "submenu/%s", 
elm_widget_style_get(WIDGET(item)));
+        elm_object_style_set(hv, style);
+     }
 
    item->submenu.bx = bx = elm_box_add(sd->bx);
    elm_widget_mirrored_set(bx, EINA_FALSE);
@@ -602,7 +616,7 @@ _elm_menu_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    priv->hv = elm_hover_add(obj);
    elm_widget_mirrored_set(priv->hv, EINA_FALSE);
 
-   elm_object_style_set(priv->hv, "menu");
+   elm_object_style_set(priv->hv, "menu/default");
    evas_object_smart_callback_add(priv->hv, "dismissed",
                                   _hover_dismissed_cb, obj);
 
@@ -665,9 +679,9 @@ _elm_menu_menu_bar_set(Eo *obj, Eina_Bool menu_bar)
    sd->menu_bar = menu_bar;
 
    if (menu_bar)
-     elm_object_style_set(sd->hv, "main_menu");
+     elm_object_style_set(sd->hv, "main_menu/default");
    else
-     elm_object_style_set(sd->hv, "menu");
+     elm_object_style_set(sd->hv, "menu/default");
 
    EINA_LIST_FOREACH(sd->items, l, item)
      {
@@ -677,14 +691,14 @@ _elm_menu_menu_bar_set(Eo *obj, Eina_Bool menu_bar)
           {
              evas_object_smart_callback_add(item->submenu.hv, "clicked",
                                             _hover_dismissed_cb, WIDGET(item));
-             elm_object_style_set(item->submenu.hv, "main_menu_submenu");
+             elm_object_style_set(item->submenu.hv, 
"main_menu_submenu/default");
           }
         else
           {
              evas_object_smart_callback_del_full(item->submenu.hv, "clicked",
                                                  _hover_dismissed_cb,
                                                  WIDGET(item));
-             elm_object_style_set(item->submenu.hv, "submenu");
+             elm_object_style_set(item->submenu.hv, "submenu/default");
           }
      }
 

-- 


Reply via email to