raster pushed a commit to branch master.

http://git.enlightenment.org/themes/dark.git/commit/?id=b49ff9f9eb8fa21b0a4d353aeabe47c323ce2eda

commit b49ff9f9eb8fa21b0a4d353aeabe47c323ce2eda
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Oct 14 16:28:33 2013 +0900

    naviframe done now for dark.
---
 edje/dark.edc              |    1 -
 edje/edc/elm/button.edc    |    2 +-
 edje/edc/elm/naviframe.edc | 1386 +++++++++++++++-----------------------------
 edje/img/shadow_vert.png   |  Bin 0 -> 118 bytes
 mock-18.xcf.gz             |  Bin 613251 -> 613251 bytes
 5 files changed, 473 insertions(+), 916 deletions(-)

diff --git a/edje/dark.edc b/edje/dark.edc
index 480acb2..2513de6 100644
--- a/edje/dark.edc
+++ b/edje/dark.edc
@@ -58,7 +58,6 @@ collections {
 #include "edc/elm/layout.edc"
 // XXX: support multi progress (progressbar)
 #include "edc/elm/progress.edc"
-// XXX: needs design work (naviframe)
 #include "edc/elm/naviframe.edc"
 #include "edc/elm/panel.edc"
 #include "edc/elm/popup.edc"
diff --git a/edje/edc/elm/button.edc b/edje/edc/elm/button.edc
index 71d91a4..6ec4056 100644
--- a/edje/edc/elm/button.edc
+++ b/edje/edc/elm/button.edc
@@ -117,7 +117,7 @@ group { name: "elm/button/base/default";
       part { name: "sizer.content"; type: TEXT; mouse_events: 0;
          scale: 1;
          description { state: "default" 0.0;
-            fixed: 1 1;
+//            fixed: 1 1;
             visible: 0;
             text { font: FN; size: 10;
                min: 0 0;
diff --git a/edje/edc/elm/naviframe.edc b/edje/edc/elm/naviframe.edc
index 0ce957e..a9633d4 100644
--- a/edje/edc/elm/naviframe.edc
+++ b/edje/edc/elm/naviframe.edc
@@ -1,1078 +1,636 @@
-#if 0
 group { name: "elm/naviframe/item/basic/default";
+   images.image: "vgrad_med_dark.png" COMP;
+   images.image: "bevel_out.png" COMP;
+   images.image: "shine.png" COMP;
+   images.image: "bevel_dark_out.png" COMP;
+   images.image: "shadow_vert.png" COMP;
    parts {
-      part { name: "elm.swallow.content"; type: SWALLOW;
-         description { state: "default" 0.0;
-         }
-      }
-      part { name: "access.title"; type: RECT; repeat_events: 1;
-         description { state: "default" 0.0;
-            fixed: 1 1;
-            color: 0 0 0 0;
-         }
-      }
-      part { name: "elm.swallow.prev_btn"; type: SWALLOW;
-         description { state: "default" 0.0;
-         }
-         description { state: "hidden" 0.0;
-            inherit: "default" 0.0;
-            visible: 0;
-         }
-      }
-      part { name: "elm.swallow.next_btn"; type: SWALLOW;
+      // this set of limits and bottoms is evil - but it's a nasty construct
+      // allowing EITHER the title and subtitle texts OR the prev/next button
+      // swallows to control the lower bounds of the naviframe title, depending
+      // on which is taller
+#define BOTTOMMAX() \
+      part { name: "limit0"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "title3"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "elm.swallow.next_btn"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+      } \
+      part { name: "limit1"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "elm.swallow.next_btn"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "title3"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+      } \
+      part { name: "bottom0"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "limit1"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "limit0"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+         description { state: "other" 0.0; \
+            inherit: "default" 0.0; \
+            rel1.to_y: "limit0"; \
+            rel2.to_y: "limit1"; \
+         } \
+      } \
+      program { name: "pbot0"; \
+         signal: "limit,height,zero"; source: "bottom0"; \
+         script { \
+            new st[31], Float:vl; \
+            get_state(PART:"bottom0", st, 30, vl); \
+            if (st[0] == 'd') set_state(PART:"bottom0", "other", 1.0); \
+            else set_state(PART:"bottom0", "default", 1.0); \
+         } \
+      } \
+      part { name: "limit2"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "title3"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "elm.swallow.prev_btn"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+      } \
+      part { name: "limit3"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "elm.swallow.prev_btn"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "title3"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+      } \
+      part { name: "bottom1"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "limit3"; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "limit2"; \
+            rel2.offset: -1 0; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+         description { state: "other" 0.0; \
+            inherit: "default" 0.0; \
+            rel1.to_y: "limit2"; \
+            rel2.to_y: "limit3"; \
+         } \
+      } \
+      program { name: "pbot1"; \
+         signal: "limit,height,zero"; source: "bottom1"; \
+         script { \
+            new st[31], Float:vl; \
+            get_state(PART:"bottom1", st, 30, vl); \
+            if (st[0] == 'd') set_state(PART:"bottom1", "other", 1.0); \
+            else set_state(PART:"bottom1", "default", 1.0); \
+         } \
+      } \
+      part { name: "bottom"; type: SPACER; \
+         description { state: "default" 0.0; \
+            rel1.to_y: "bottom1"; \
+            rel1.offset: 0 -1; \
+            rel1.relative: 0.0 1.0; \
+            rel2.to_y: "bottom0"; \
+            align: 0.5 1.0; \
+            fixed: 0 1; \
+            limit: HEIGHT; \
+         } \
+         description { state: "other" 0.0; \
+            inherit: "default" 0.0; \
+            rel1.to_y: "bottom0"; \
+            rel2.to_y: "bottom1"; \
+         } \
+      } \
+      program { name: "pbot"; \
+         signal: "limit,height,zero"; source: "bottom"; \
+         script { \
+            new st[31], Float:vl; \
+            get_state(PART:"bottom", st, 30, vl); \
+            if (st[0] == 'd') set_state(PART:"bottom", "other", 1.0); \
+            else set_state(PART:"bottom", "default", 1.0); \
+         } \
+      }
+      BOTTOMMAX()
+      
+      part { name: "title1"; type: TEXT;
+         scale: 1;
          description { state: "default" 0.0;
-         }
-         description { state: "hidden" 0.0;
-            inherit: "default" 0.0;
+            rel1.relative: 0.0 0.0;
+            rel1.offset: 0 2;
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            align: 0.5 0.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 18;
+            text { font: FN; size: 8;
+               text: "X";
+               text_class: "title_bar_sub";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+            fixed: 0 1;
             visible: 0;
          }
       }
-      part { name: "elm.swallow.icon"; type: SWALLOW;
-         description { state: "default" 0.0;
-         }
-      }
-      part { name: "elm.text.title"; type: TEXT;
+      part { name: "title2"; type: TEXT;
          scale: 1;
+         effect: SOFT_SHADOW BOTTOM;
          description { state: "default" 0.0;
+            color_class: "border_title_active";
+            rel1.to_y: "title1";
+            rel1.relative: 0.0 1.0;
+            rel1.offset: 0 -1;
+            rel2.to_y: "title1";
+            rel2.offset: -1 -1;
+            align: 0.5 0.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 18;
+            text { font: FNBD; size: 10;
+               text: "X";
+               text_class: "title_bar";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+            fixed: 0 1;
+            visible: 0;
          }
       }
-      part { name: "elm.text.subtitle"; type: TEXT;
+      part { name: "title3"; type: TEXT;
          scale: 1;
          description { state: "default" 0.0;
-         }
-      }
-   }
-   programs {
-      program {
-         signal: "elm,state,visible"; source: "elm";
-      }
-      program {
-         signal: "elm,state,title,show"; source: "elm";
-      }
-      program {
-         signal: "elm,state,title,hide"; source: "elm";
-      }
-      program {
-         signal: "elm,state,title_label,show"; source: "elm";
-      }
-      program {
-         signal: "elm,state,title_label,hide"; source: "elm";
-      }
-      program {
-         signal: "elm,state,prev_btn,show"; source: "elm";
-      }
-      program {
-         signal: "elm,state,prev_btn,hide"; source: "elm";
-      }
-      program {
-         signal: "elm,state,next_btn,show"; source: "elm";
-      }
-      program {
-         signal: "elm,state,next_btn,hide"; source: "elm";
-      }
-
-//         action: SIGNAL_EMIT "elm,action,title,clicked" "elm";
-
-      /* current page is being pushed: [previous]<----[current] */
-      program {
-         signal: "elm,state,cur,pushed"; source: "elm";
-         after: "pushed2";
-      }
-      program { name: "pushed2";
-         action: SIGNAL_EMIT "elm,action,pushed,finished" "elm";
-      }
-
-      /* current page is being popped: [current]---->[next] */
-      program {
-         signal: "elm,state,cur,popped"; source: "elm";
-         after: "popped2";
-      }
-      program { name: "popped2";
-         action: SIGNAL_EMIT "elm,action,popped,finished" "elm";
-      }
-
-      /* new page is being pushed: [current]<----[next] */
-      program {
-         signal: "elm,state,new,pushed"; source: "elm";
-         after: "pushed3";
-      }
-      program { name: "pushed3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "elm";
-      }
-
-      /* previous page is being pushed: [previous]---->[current] */
-      program {
-         signal: "elm,state,prev,popped"; source: "elm";
-         after: "popped3";
-      }
-      program { name: "popped3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "elm";
-      }
-   }
-}
-
-group { name: "elm/naviframe/item/overlap/default";
-   alias: "elm/naviframe/item/overlap/pager";
-// same as elm/naviframe/item/basic/default content
-}
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#if 0
-group { name: "elm/naviframe/item/basic/default";
-   alias: "elm/naviframe/item/basic/pager"; /**< this was remained for the 
backward compatibility */
-
-   images {
-      image: "naviframe-base.jpg" COMP;
-   }
-
-   script {
-      public notitle = 0;
-      public noprev = 0;
-      public nonext = 0;
-
-      public set_notitle(val) {
-         if (get_int(notitle) == val) return;
-
-         set_int(notitle, val);
-         if (val)
-            set_state(PART:"elm.swallow.icon", "no-title", 0.0);
-         else
-            set_state(PART:"elm.swallow.icon", "default", 0.0);
-      }
-
-      public apply_area() {
-         new np = get_int(noprev);
-         new nn = get_int(nonext);
-
-         if ((!np) && (!nn))
-            set_state(PART:"elements_area", "default", 0.0);
-         else if ((np) && (nn))
-            set_state(PART:"elements_area", "full", 0.0);
-         else if (np)
-            set_state(PART:"elements_area", "no-prev", 0.0);
-         else if (nn)
-            set_state(PART:"elements_area", "no-next", 0.0);
-      }
-
-      public set_noprev(val) {
-         if (get_int(noprev) == val) return;
-
-         set_int(noprev, val);
-         if (val)
-            set_state(PART:"elm.swallow.prev_btn", "hidden", 0.0);
-         else
-            set_state(PART:"elm.swallow.prev_btn", "default", 0.0);
-         apply_area();
-      }
-
-      public set_nonext(val) {
-         if (get_int(nonext) == val) return;
-
-         set_int(nonext, val);
-         if (val)
-            set_state(PART:"elm.swallow.next_btn", "hidden", 0.0);
-         else
-            set_state(PART:"elm.swallow.next_btn", "default", 0.0);
-         apply_area();
-      }
-   }
-
-   parts {
-      part { name: "title_clip";
-         type: RECT;
-        description { state: "default" 0.0;
-            min: 1 55;
-            align: 0.0 0.0;
+            rel1.to_y: "title2";
+            rel1.relative: 0.0 1.0;
+            rel1.offset: 0 -3;
+            rel2.to_y: "title2";
+            rel2.offset: -1 -3;
+            align: 0.5 0.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 18;
+            text { font: FN; size: 8;
+               text: "X";
+               text_class: "title_bar_sub";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
             fixed: 0 1;
-            rel1 { relative: 0.0 0.0; }
-            rel2 { relative: 1.0 0.0; }
-         }
-         description { state: "hide" 0.0;
-            inherit: "default" 0.0;
-            align: 0.0 1.0;
             visible: 0;
          }
       }
-      part { name: "content_clip";
-         type: RECT;
-         mouse_events: 0;
+      
+      
+      part { name: "clip"; type: RECT;
          description { state: "default" 0.0;
-            rel1 {
-               to_y: "title_clip";
-               relative: 0.0 1.0;
-            }
          }
       }
-      part { name: "elm.swallow.content";
-         type: SWALLOW;
-         scale: 1;
-         clip_to: "content_clip";
+      part { name: "base"; type: SPACER;
          description { state: "default" 0.0;
-            align: 0.0 0.0;
-            rel1.to: "content_clip";
-            rel2.to: "content_clip";
          }
-         description { state: "previous" 0.0;
+         description { state: "prev" 0.0;
             inherit: "default" 0.0;
             rel1.relative: -1.0 0.0;
-            rel2.relative:  0.0 1.0;
+            rel2.relative: 0.0 1.0;
          }
          description { state: "next" 0.0;
             inherit: "default" 0.0;
-            rel1.relative:  1.0 0.0;
-            rel2.relative:  2.0 1.0;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 2.0 1.0;
          }
       }
-      part { name: "elements_clip";
-         type: RECT;
-         clip_to: "title_clip";
+      part { name: "elm.swallow.content"; type: SWALLOW;
+         clip_to: "clip";
          description { state: "default" 0.0;
-            rel1.to: "title_clip";
-            rel2.to: "title_clip";
+            rel1.to: "top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "base";
          }
-         description { state: "previous" 0.0;
+         description { state: "title-hidden" 0.0;
             inherit: "default" 0.0;
-            color: 255 255 255 0;
-            visible: 0;
-            rel1.relative: -1.0 0.0;
-            rel2.relative:  0.0 1.0;
+            rel1.to: "base";
+            rel1.relative: 0.0 0.0;
          }
-         description { state: "next" 0.0;
+      }
+      part { name: "shadow"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "shadow_vert.png";
+            rel1.to: "top";
+            rel1.relative: 0.0 1.0;
+            rel2.to: "top";
+            rel2.offset: -1 0;
+            fill.smooth: 0;
+            min: 0 20;
+            align: 0.5 0.0;
+            fixed: 1 1;
+         }
+         description { state: "title-hidden" 0.0;
             inherit: "default" 0.0;
             color: 255 255 255 0;
             visible: 0;
-            rel1.relative:  1.0 0.0;
-            rel2.relative:  2.0 1.0;
          }
       }
-      part { name: "title_base";
-         type: IMAGE;
-         clip_to: "title_clip";
+      part { name: "tophide0"; type: SPACER;
          description { state: "default" 0.0;
-            rel1.to: "elements_clip";
-            rel2.to: "elements_clip";
-            image {
-               normal: "naviframe-base.jpg";
-               border: 0 0 0 2;
-               middle: SOLID;
-            }
+            rel1.to: "base";
+            rel2.to_x: "base";
+            rel2.to_y: "bottom";
          }
       }
-      part { name: "access.title";
-         type: RECT;
-         repeat_events: 1;
+      part { name: "tophide1"; type: SPACER;
          description { state: "default" 0.0;
-            fixed: 1 1;
-            rel1.to: "title_base";
-            rel2.to: "title_base";
-            color: 0 0 0 0;
+            rel1.to: "tophide0";
+            rel1.relative: 0.0 -1.0;
+            rel2.to: "tophide0";
          }
       }
-      part { name: "elements_area";
-         type: RECT;
-         mouse_events: 0;
-         clip_to: "title_clip";
+      part { name: "top";
+         clip_to: "clip";
          description { state: "default" 0.0;
-            color: 0 0 0 0;
-            fixed: 1 1;
-            rel1 {
-               to: "title_clip";
-               relative: 0.0 0.0;
-               offset: 100 0;
-            }
-            rel2 {
-               to: "title_clip";
-               relative: 1.0 1.0;
-               offset: -101 -1;
-            }
-         }
-         description { state: "full" 0.0;
-            inherit: "default" 0.0;
-            rel1.offset: 0 0;
-            rel2.offset: -1 -1;
-         }
-         description { state: "no-prev" 0.0;
-            inherit: "default" 0.0;
-         }
-         description { state: "no-next" 0.0;
+            color_class: "border_top";
+            image.normal: "vgrad_med_dark.png";
+            rel1.to: "base";
+            rel2.to_x: "base";
+            rel2.to_y: "bottom";
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+         }
+         description { state: "title-hidden" 0.0;
             inherit: "default" 0.0;
+            rel1.to: "tophide1";
+            rel2.to: "base";
+            rel2.relative: 1.0 0.0;
          }
       }
-      part { name: "elm.swallow.prev_btn";
-         type: SWALLOW;
-         scale: 1;
-         clip_to: "elements_clip";
+      part { name: "access.title"; type: RECT; repeat_events: 1;
+         clip_to: "clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 100 40;
-            align: 0.0 0.5;
             fixed: 1 1;
-            rel1 {
-               to: "elements_clip";
-               offset: 5 5;
-            }
-            rel2 {
-               to: "elements_clip";
-               relative: 0.0 1.0;
-               offset: 5 -5;
-            }
-         }
-         description { state: "hidden" 0.0;
-            inherit: "default" 0.0;
-            visible: 0;
+            color: 0 0 0 0;
+            rel1.to: "top";
+            rel2.to: "top";
          }
       }
-      part { name: "elm.swallow.next_btn";
-         type: SWALLOW;
-         scale: 1;
-         clip_to: "elements_clip";
+      part { name: "bevel"; mouse_events: 0;
+         clip_to: "clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 100 40;
-            align: 1.0 0.5;
-            fixed: 1 1;
-            rel1 {
-               to: "elements_clip";
-               relative: 1.0 0.0;
-               offset: -5 5;
-            }
-            rel2 {
-               to: "elements_clip";
-               offset: -5 -5;
-            }
-         }
-         description { state: "hidden" 0.0;
-            inherit: "default" 0.0;
-            visible: 0;
+            image.normal: "bevel_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            rel1.to: "top";
+            rel2.to: "top";
+            fill.smooth: 0;
          }
       }
-      part { name: "elm.swallow.icon";
-         type: SWALLOW;
+      part { name: "elm.text.title"; type: TEXT; mouse_events: 0;
          scale: 1;
+         effect: SOFT_SHADOW BOTTOM;
          clip_to: "elements_clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 40 40;
-            fixed: 1 1;
-            align: 1.0 0.5;
-            rel1.to: "elm.text.title";
-            rel1.relative: 0 0;
-            rel2.to: "elm.text.title";
-            rel2.relative: 0 1;
-         }
-         description { state: "no-title" 0.0;
-            inherit: "default";
+            color_class: "border_title_active_sub";
+            rel1.to_x: "base";
+            rel1.to_y: "top";
+            rel1.relative: 0.0 0.5;
+            rel2.offset: 0 -1;
+            rel2.to_x: "base";
+            rel2.to_y: "top";
+            rel2.relative: 1.0 0.5;
             align: 0.5 0.5;
-            max: 99999 40;
-            rel1 {
-               to: "elements_area";
-               relative: 0.0 0.0;
-            }
-            rel2 {
-               to: "elements_area";
-               relative: 1.0 1.0;
-            }
-         }
-      }
-      part { name: "elm.text.title";
-         type: TEXT;
-         scale: 1;
-         repeat_events: 1;
-         clip_to: "elements_clip";
-         description { state: "default" 0.0;
-            text { font: "Sans:style=Bold";
-               size: 12;
-               size_range: 9 14;
-               fit: 1 1;
-               min: 0 0;
-               max: 1 0;
+            color: 255 255 255 255;
+            color3: 0 0 0 18;
+            text { font: FNBD; size: 10;
+               text_class: "title_bar";
                align: 0.5 0.5;
-               ellipsis: 0.0;
-            }
-            color: 0 0 0 255;
-            align: 0.5 0.5;
-            rel1.to: "elements_area";
-            rel2.to: "elements_area";
-         }
-      }
-      part { name: "elm.text.subtitle";
-         type: TEXT;
-         scale: 1;
-         repeat_events: 1;
-         clip_to: "elements_clip";
-         description { state: "default" 0.0;
-            text { font: "Sans,Edje-Vera";
-               size: 10;
-               min: 0 0;
-               max: 1 0;
-               align: 0.5 1;
-            }
-            rel1 {
-               to_y: "elm.text.title";
-               to_x: "elements_area";
-               relative: 0.0 1.0;
-               offset: 0 -3;
+               min: 0 1;
             }
-            rel2 {
-               to: "elements_area";
-               offset: -1 -4;
-            }
-            color: 50 50 50 255;
-            align: 0.5 0.0;
-         }
-      }
-   }
-   programs {
-      program { name: "visible";
-         signal: "elm,state,visible";
-         source: "elm";
-         action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-      }
-      program { name: "title_show";
-         signal: "elm,state,title,show";
-         source: "elm";
-         action: STATE_SET "default" 0.0;
-         target: "title_clip";
-      }
-      program { name: "title_hide";
-         signal: "elm,state,title,hide";
-         source: "elm";
-         action: STATE_SET "hide" 0.0;
-         target: "title_clip";
-      }
-      program { name: "title_clicked";
-         signal: "mouse,clicked,1";
-         source: "title_base";
-         action: SIGNAL_EMIT "elm,action,title,clicked" "";
-      }
-
-      program {
-         signal: "elm,state,title_label,show";
-         source: "elm";
-         script {
-            set_notitle(0);
-         }
-      }
-      program {
-         signal: "elm,state,title_label,hide";
-         source: "elm";
-         script {
-            set_notitle(1);
-         }
-      }
-
-      program {
-         signal: "elm,state,prev_btn,show";
-         source: "elm";
-         script {
-            set_noprev(0);
-         }
-      }
-      program {
-         signal: "elm,state,prev_btn,hide";
-         source: "elm";
-         script {
-            set_noprev(1);
-         }
-      }
-      program {
-         signal: "elm,state,next_btn,show";
-         source: "elm";
-         script {
-            set_nonext(0);
-         }
-      }
-      program {
-         signal: "elm,state,next_btn,hide";
-         source: "elm";
-         script {
-            set_nonext(1);
-         }
-      }
-
-      /* current page is being pushed: [previous]<----[current] */
-      program { name: "cur_pushed_phase1";
-         signal: "elm,state,cur,pushed";
-         source: "elm";
-         action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         after: "cur_pushed_phase2";
-      }
-      program { name: "cur_pushed_phase2";
-         action: STATE_SET "previous" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "cur_pushed_phase3";
-      }
-      program { name: "cur_pushed_phase3";
-         action: SIGNAL_EMIT "elm,action,pushed,finished" "";
-      }
-
-      /* current page is being popped: [current]---->[next] */
-      program { name: "cur_popped_phase1";
-         signal: "elm,state,cur,popped";
-         source: "elm";
-         action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         after: "cur_popped_phase2";
-      }
-      program { name: "cur_popped_phase2";
-         action: STATE_SET "next" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "cur_popped_phase3";
-      }
-      program { name: "cur_popped_phase3";
-         action: SIGNAL_EMIT "elm,action,popped,finished" "";
-      }
-
-      /* new page is being pushed: [current]<----[next] */
-      program { name: "new_pushed_phase1";
-         signal: "elm,state,new,pushed";
-         source: "elm";
-         action: STATE_SET "next" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         after: "new_pushed_phase2";
-      }
-      program { name: "new_pushed_phase2";
-         action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "new_pushed_phase3";
-      }
-      program { name: "new_pushed_phase3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "";
-      }
-
-      /* previous page is being pushed: [previous]---->[current] */
-      program { name: "prev_popped_phase1";
-         signal: "elm,state,prev,popped";
-         source: "elm";
-         action: STATE_SET "previous" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         after: "prev_popped_phase2";
-      }
-      program { name: "prev_popped_phase2";
-         action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "prev_popped_phase3";
-      }
-      program { name: "prev_popped_phase3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "";
-      }
-   }
-}
-
-
-/* same as elm/naviframe/base/default except:
- *  - title_base is translucent
- *  - contents follows below title
- */
-group { name: "elm/naviframe/item/overlap/default";
-   alias: "elm/naviframe/item/overlap/pager"; /**< this was remained for the 
backward compatibility */
-
-   images {
-      image: "naviframe-base.jpg" COMP;
-   }
-
-   script {
-      public notitle = 0;
-      public noprev = 0;
-      public nonext = 0;
-
-      public set_notitle(val) {
-         if (get_int(notitle) == val) return;
-
-         set_int(notitle, val);
-         if (val)
-            set_state(PART:"elm.swallow.icon", "no-title", 0.0);
-         else
-            set_state(PART:"elm.swallow.icon", "default", 0.0);
-      }
-
-      public apply_area() {
-         new np = get_int(noprev);
-         new nn = get_int(nonext);
-
-         if ((!np) && (!nn))
-            set_state(PART:"elements_area", "default", 0.0);
-         else if ((np) && (nn))
-            set_state(PART:"elements_area", "full", 0.0);
-         else if (np)
-            set_state(PART:"elements_area", "no-prev", 0.0);
-         else if (nn)
-            set_state(PART:"elements_area", "no-next", 0.0);
-      }
-
-      public set_noprev(val) {
-         if (get_int(noprev) == val) return;
-
-         set_int(noprev, val);
-         if (val)
-            set_state(PART:"elm.swallow.prev_btn", "hidden", 0.0);
-         else
-            set_state(PART:"elm.swallow.prev_btn", "default", 0.0);
-         apply_area();
-      }
-
-      public set_nonext(val) {
-         if (get_int(nonext) == val) return;
-
-         set_int(nonext, val);
-         if (val)
-            set_state(PART:"elm.swallow.next_btn", "hidden", 0.0);
-         else
-            set_state(PART:"elm.swallow.next_btn", "default", 0.0);
-         apply_area();
-      }
-   }
-
-   parts {
-      part { name: "title_clip";
-         type: RECT;
-        description { state: "default" 0.0;
-            min: 1 55;
-            align: 0.0 0.0;
             fixed: 0 1;
-color: 255 0 0 125;
-            rel1 { relative: 0.0 0.0; }
-            rel2 { relative: 1.0 0.0; }
          }
-         description { state: "hide" 0.0;
+         description { state: "hidden" 0.0;
             inherit: "default" 0.0;
-            align: 0.0 1.0;
-         }
-      }
-      part { name: "content_clip";
-         type: RECT;
-         mouse_events: 0;
-         description { state: "default" 0.0;
+            visible: 0;
          }
       }
-      part { name: "elm.swallow.content";
-         type: SWALLOW;
+      part { name: "elm.text.subtitle"; type: TEXT; mouse_events: 0;
          scale: 1;
-         clip_to: "content_clip";
+         effect: SHADOW BOTTOM;
+         clip_to: "elements_clip";
          description { state: "default" 0.0;
-            align: 0.0 0.0;
-            rel1.to: "content_clip";
-            rel2.to: "content_clip";
-         }
-         description { state: "previous" 0.0;
-            inherit: "default" 0.0;
-            rel1.relative: -1.0 0.0;
-            rel2.relative:  0.0 1.0;
+            rel1.to_x: "base";
+            rel1.to_y: "elm.text.title";
+            rel1.relative: 0.0 1.0;
+            rel1.offset: 0 -3;
+            rel2.to_x: "base";
+            rel2.to_y: "elm.text.title";
+            rel2.offset: -1 -3;
+            align: 0.5 0.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 128;
+            text { font: FN; size: 8;
+               text_class: "title_bar_sub";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+            fixed: 0 1;
          }
-         description { state: "next" 0.0;
+         description { state: "hidden" 0.0;
             inherit: "default" 0.0;
-            rel1.relative:  1.0 0.0;
-            rel2.relative:  2.0 1.0;
+            visible: 0;
          }
       }
-      part { name: "elements_clip";
-         type: RECT;
+      part { name: "buttons_clip"; type: RECT;
+         clip_to: "elements_clip";
          description { state: "default" 0.0;
-            rel1.to: "title_clip";
-            rel2.to: "title_clip";
-         }
-         description { state: "previous" 0.0;
-            inherit: "default" 0.0;
-            color: 255 255 255 0;
-            visible: 0;
-            rel1.relative: -1.0 0.0;
-            rel2.relative:  0.0 1.0;
+            rel1.to: "base";
+            rel2.to: "base";
          }
-         description { state: "next" 0.0;
+         description { state: "title-hidden" 0.0;
             inherit: "default" 0.0;
-            color: 255 255 255 0;
             visible: 0;
-            rel1.relative:  1.0 0.0;
-            rel2.relative:  2.0 1.0;
-         }
-      }
-      part { name: "title_base";
-         type: IMAGE;
-         description { state: "default" 0.0;
-            rel1.to: "elements_clip";
-            rel2.to: "elements_clip";
-            color: 255 255 255 128;
-            image {
-               normal: "naviframe-base.jpg";
-               border: 0 0 0 2;
-               middle: SOLID;
-            }
-         }
-      }
-      part { name: "access.title";
-         type: RECT;
-         repeat_events: 1;
-         description { state: "default" 0.0;
-            fixed: 1 1;
-            rel1.to: "title_base";
-            rel2.to: "title_base";
-            color: 0 0 0 0;
          }
       }
-      part { name: "elements_area";
-         type: RECT;
-         mouse_events: 0;
-         clip_to: "title_clip";
+      part { name: "elm.swallow.next_btn"; type: SWALLOW;
+         scale: 1;
+         clip_to: "buttons_clip";
          description { state: "default" 0.0;
-            color: 0 0 0 0;
+            rel1.to_x: "base";
+//            rel1.to_y: "top";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: -3 2;
+            rel2.to_x: "base";
+            rel2.to_y: "title3";
+            rel2.offset: -3 -1;
+            align: 1.0 0.5;
+            min: 26 26;
+            max: 1 1;
             fixed: 1 1;
-            rel1 {
-               to: "title_clip";
-               relative: 0.0 0.0;
-               offset: 100 0;
-            }
-            rel2 {
-               to: "title_clip";
-               relative: 1.0 1.0;
-               offset: -101 -1;
-            }
          }
-         description { state: "full" 0.0;
-            inherit: "default" 0.0;
-            rel1.offset: 0 0;
-            rel2.offset: -1 -1;
-         }
-         description { state: "no-prev" 0.0;
-            inherit: "default" 0.0;
-         }
-         description { state: "no-next" 0.0;
+         description { state: "hidden" 0.0;
             inherit: "default" 0.0;
+            visible: 0;
          }
       }
-      part { name: "elm.swallow.prev_btn";
-         type: SWALLOW;
+      part { name: "elm.swallow.prev_btn"; type: SWALLOW;
          scale: 1;
-         clip_to: "elements_clip";
+         clip_to: "buttons_clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 100 40;
+            rel1.to_x: "base";
+//            rel1.to_y: "top";
+            rel1.offset: 2 2;
+            rel2.relative: 0.0 1.0;
+            rel2.offset: 2 -1;
+            rel2.to_x: "base";
+            rel2.to_y: "title3";
             align: 0.0 0.5;
+            min: 26 26;
+            max: 1 1;
             fixed: 1 1;
-            rel1 {
-               to: "elements_clip";
-               offset: 5 5;
-            }
-            rel2 {
-               to: "elements_clip";
-               relative: 0.0 1.0;
-               offset: 5 -5;
-            }
          }
          description { state: "hidden" 0.0;
             inherit: "default" 0.0;
             visible: 0;
          }
       }
-      part { name: "elm.swallow.next_btn";
-         type: SWALLOW;
-         scale: 1;
+      part { name: "elm.swallow.icon"; type: SWALLOW;
          clip_to: "elements_clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 100 40;
-            align: 1.0 0.5;
-            fixed: 1 1;
-            rel1 {
-               to: "elements_clip";
-               relative: 1.0 0.0;
-               offset: -5 5;
-            }
-            rel2 {
-               to: "elements_clip";
-               offset: -5 -5;
-            }
+            rel1.to_x: "elm.swallow.prev_btn";
+            rel1.to_y: "top";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 2 2;
+            rel2.to_x: "elm.swallow.prev_btn";
+            rel2.to_y: "top";
+            rel2.offset: 2 -3;
+            aspect: 1.0 1.0; aspect_preference: VERTICAL;
+            align: 0.0 0.5;
          }
          description { state: "hidden" 0.0;
             inherit: "default" 0.0;
-            visible: 0;
+            rel1.to_x: "top";
+            rel1.relative: 0.0 0.0;
+            rel2.to_x: "top";
+            rel2.offset: -3 -3;
+           align: 0.5 0.5;
          }
       }
-      part { name: "elm.swallow.icon";
-         type: SWALLOW;
-         scale: 1;
+      part { name: "shine"; mouse_events: 0;
          clip_to: "elements_clip";
          description { state: "default" 0.0;
-            min: 40 40;
-            max: 40 40;
-            fixed: 1 1;
-            align: 1.0 0.5;
-            rel1.to: "elm.text.title";
-            rel1.relative: 0 0;
-            rel2.to: "elm.text.title";
-            rel2.relative: 0 1;
-         }
-         description { state: "no-title" 0.0;
-            inherit: "default";
-            align: 0.5 0.5;
-            max: 99999 40;
-            rel1 {
-               to: "elements_area";
-               relative: 0.0 0.0;
-            }
-            rel2 {
-               to: "elements_area";
-               relative: 1.0 1.0;
-            }
+            image.normal: "shine.png";
+            rel1.offset: 0 -2;
+            rel1.to: "top";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            rel2.to: "top";
+            FIXED_SIZE(69, 5)
          }
       }
-      part { name: "elm.text.title";
-         type: TEXT;
-         scale: 1;
-         repeat_events: 1;
-         clip_to: "elements_clip";
+      part { name: "elements_clip"; type: RECT;
+         clip_to: "clip";
          description { state: "default" 0.0;
-            text { font: "Sans:style=Bold";
-               size: 12;
-               size_range: 9 14;
-               fit: 1 1;
-               min: 0 0;
-               max: 1 0;
-               align: 0.5 0.5;
-               ellipsis: 0.0;
-            }
-            color: 0 0 0 255;
-            align: 0.5 0.5;
-            rel1.to: "elements_area";
-            rel2.to: "elements_area";
+            rel1.to: "base";
+            rel2.to: "base";
          }
-      }
-      part { name: "elm.text.subtitle";
-         type: TEXT;
-         scale: 1;
-         repeat_events: 1;
-         clip_to: "title_clip";
-         description { state: "default" 0.0;
-            text { font: "Sans,Edje-Vera";
-               size: 10;
-               min: 0 0;
-               max: 1 0;
-               align: 0.5 1;
-            }
-            rel1 {
-               to_y: "elm.text.title";
-               to_x: "elements_area";
-               relative: 0.0 1.0;
-               offset: 0 -3;
-            }
-            rel2 {
-               to: "elements_area";
-               offset: -1 -4;
-            }
-            color: 50 50 50 255;
-            align: 0.5 0.0;
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 0;
+            visible: 0;
+         }
+         description { state: "next" 0.0;
+            inherit: "hidden" 0.0;
+         }
+         description { state: "prev" 0.0;
+            inherit: "hidden" 0.0;
          }
       }
    }
    programs {
-      program { name: "visible";
-         signal: "elm,state,visible";
-         source: "elm";
+      program {
+         signal: "elm,state,title,show"; source: "elm";
          action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "top";
+         target: "shadow";
          target: "elm.swallow.content";
-         target: "elements_clip";
+         after: "titleshow2";
       }
-      program { name: "title_show";
-         signal: "elm,state,title,show";
-         source: "elm";
+      program { name: "titleshow2";
          action: STATE_SET "default" 0.0;
-         transition: DECELERATE 0.5;
-         target: "title_clip";
+         target: "buttons_clip";
       }
-      program { name: "title_hide";
-         signal: "elm,state,title,hide";
-         source: "elm";
-         action: STATE_SET "hide" 0.0;
-         target: "title_clip";
-         transition: DECELERATE 0.5;
+      program {
+         signal: "elm,state,title,hide"; source: "elm";
+         action: STATE_SET "title-hidden" 0.0;
+         target: "buttons_clip";
+         after: "titlehide2";
+      }
+      program { name: "titlehide2";
+         action: STATE_SET "title-hidden" 0.0;
+         transition: ACCELERATE 0.5;
+         target: "top";
+         target: "shadow";
+         target: "elm.swallow.content";
       }
-      program { name: "title_clicked";
-         signal: "mouse,clicked,1";
-         source: "title_base";
-         action: SIGNAL_EMIT "elm,action,title,clicked" "";
+      program {
+         signal: "elm,state,prev_btn,show"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.prev_btn";
       }
-
       program {
-         signal: "elm,state,title_label,show";
-         source: "elm";
-         script {
-            set_notitle(0);
-         }
+         signal: "elm,state,prev_btn,hide"; source: "elm";
+         action: STATE_SET "hidden" 0.0;
+         target: "elm.swallow.prev_btn";
       }
       program {
-         signal: "elm,state,title_label,hide";
-         source: "elm";
-         script {
-            set_notitle(1);
-         }
+         signal: "elm,state,next_btn,show"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.next_btn";
       }
-
       program {
-         signal: "elm,state,prev_btn,show";
-         source: "elm";
-         script {
-            set_noprev(0);
-         }
+         signal: "elm,state,next_btn,hide"; source: "elm";
+         action: STATE_SET "hidden" 0.0;
+         target: "elm.swallow.next_btn";
       }
       program {
-         signal: "elm,state,prev_btn,hide";
-         source: "elm";
-         script {
-            set_noprev(1);
-         }
+         signal: "mouse,clicked,1"; source: "top";
+         action: SIGNAL_EMIT "elm,action,title,clicked" "elm";
       }
       program {
-         signal: "elm,state,next_btn,show";
-         source: "elm";
-         script {
-            set_nonext(0);
-         }
+         signal: "elm,state,title_label,show"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.icon";
+         target: "elm.text.title";
+         target: "elm.text.subtitle";
       }
       program {
-         signal: "elm,state,next_btn,hide";
-         source: "elm";
-         script {
-            set_nonext(1);
-         }
+         signal: "elm,state,title_label,hide"; source: "elm";
+         action: STATE_SET "hidden" 0.0;
+         target: "elm.swallow.icon";
+         target: "elm.text.title";
+         target: "elm.text.subtitle";
       }
-
-      /* current page is being pushed: [previous]<----[current] */
-      program { name: "cur_pushed_phase1";
-         signal: "elm,state,cur,pushed";
-         source: "elm";
+      program {
+         signal: "elm,state,visible"; source: "elm";
          action: STATE_SET "default" 0.0;
          target: "elm.swallow.content";
          target: "elements_clip";
-         after: "cur_pushed_phase2";
       }
-      program { name: "cur_pushed_phase2";
-         action: STATE_SET "previous" 0.0;
-         target: "elm.swallow.content";
+      
+      /* current page is being pushed: [previous]<----[current] */
+      program {
+         signal: "elm,state,cur,pushed"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
          target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "cur_pushed_phase3";
+         after: "pushed2";
+      }
+      program { name: "pushed2";
+         action: STATE_SET "prev" 0.0;
+         transition: ACCELERATE 0.5;
+         target: "base";
+         target: "elements_clip";
+         after: "pushed3";
       }
-      program { name: "cur_pushed_phase3";
-         action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+      program { name: "pushed3";
+         action: SIGNAL_EMIT "elm,action,pushed,finished" "elm";
       }
 
       /* current page is being popped: [current]---->[next] */
-      program { name: "cur_popped_phase1";
-         signal: "elm,state,cur,popped";
-         source: "elm";
+      program {
+         signal: "elm,state,cur,popped"; source: "elm";
          action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
+         target: "base";
          target: "elements_clip";
-         after: "cur_popped_phase2";
+         after: "popped2";
       }
-      program { name: "cur_popped_phase2";
+      program { name: "popped2";
          action: STATE_SET "next" 0.0;
-         target: "elm.swallow.content";
+         transition: ACCELERATE 0.5;
+         target: "base";
          target: "elements_clip";
-         transition: DECELERATE 0.5;
-         after: "cur_popped_phase3";
+         after: "popped3";
       }
-      program { name: "cur_popped_phase3";
-         action: SIGNAL_EMIT "elm,action,popped,finished" "";
+      program { name: "popped3";
+         action: SIGNAL_EMIT "elm,action,popped,finished" "elm";
       }
 
       /* new page is being pushed: [current]<----[next] */
-      program { name: "new_pushed_phase1";
-         signal: "elm,state,new,pushed";
-         source: "elm";
+      program {
+         signal: "elm,state,new,pushed"; source: "elm";
          action: STATE_SET "next" 0.0;
-         target: "elm.swallow.content";
+         target: "base";
          target: "elements_clip";
-         after: "new_pushed_phase2";
+         after: "pushedb2";
       }
-      program { name: "new_pushed_phase2";
+      program { name: "pushedb2";
          action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
          transition: DECELERATE 0.5;
-         after: "new_pushed_phase3";
+         target: "base";
+         target: "elements_clip";
+         after: "pushedb3";
       }
-      program { name: "new_pushed_phase3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "";
+      program { name: "pushedb3";
+         action: SIGNAL_EMIT "elm,action,show,finished" "elm";
       }
 
       /* previous page is being pushed: [previous]---->[current] */
-      program { name: "prev_popped_phase1";
-         signal: "elm,state,prev,popped";
-         source: "elm";
-         action: STATE_SET "previous" 0.0;
-         target: "elm.swallow.content";
+      program {
+         signal: "elm,state,prev,popped"; source: "elm";
+         action: STATE_SET "prev" 0.0;
+         target: "base";
          target: "elements_clip";
-         after: "prev_popped_phase2";
+         after: "poppedb2";
       }
-      program { name: "prev_popped_phase2";
+      program { name: "poppedb2";
          action: STATE_SET "default" 0.0;
-         target: "elm.swallow.content";
-         target: "elements_clip";
          transition: DECELERATE 0.5;
-         after: "prev_popped_phase3";
+         target: "base";
+         target: "elements_clip";
+         after: "poppedb3";
       }
-      program { name: "prev_popped_phase3";
-         action: SIGNAL_EMIT "elm,action,show,finished" "";
+      program { name: "poppedb3";
+         action: SIGNAL_EMIT "elm,action,show,finished" "elm";
+      }
+   }
+}
+
+group { name: "elm/naviframe/item/overlap/default";
+   inherit: "elm/naviframe/item/basic/default";
+   alias: "elm/naviframe/item/overlap/pager";
+   parts {
+      // this is a hack around an edje_cc inherit bug - group doesnt seem
+      // to inherit properly with limits etc.
+      BOTTOMMAX()
+      
+      part { name: "elm.swallow.content";
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel1.relative: 0.0 0.0;
+         }
+      }
+      part { name: "top";
+         description { state: "default" 0.0;
+            color: 255 255 255 224;
+         }
+         description { state: "title-hidden" 0.0;
+            color: 255 255 255 224;
+         }
       }
    }
 }
-#endif
+#undef BOTTOMMAX
diff --git a/edje/img/shadow_vert.png b/edje/img/shadow_vert.png
new file mode 100644
index 0000000..4af2fbe
Binary files /dev/null and b/edje/img/shadow_vert.png differ
diff --git a/mock-18.xcf.gz b/mock-18.xcf.gz
index 18b23e6..524e00f 100644
Binary files a/mock-18.xcf.gz and b/mock-18.xcf.gz differ

-- 


Reply via email to