elementary/naviframe - added overlap style and updated test case.
authorhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 27 Mar 2012 13:11:13 +0000 (13:11 +0000)
committerhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 27 Mar 2012 13:11:13 +0000 (13:11 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@69666 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

data/themes/widgets/naviframe.edc
src/bin/test_naviframe.c
src/lib/elc_naviframe.c

index 71d2850..86f4b48 100644 (file)
@@ -1,4 +1,5 @@
-group { name:"elm/naviframe/base/default";
+group { name: "elm/naviframe/base/default";
+   name: "elm/naviframe/base/pager";
    parts {
       part { name: "base0";
          description { state: "default" 0.0;
@@ -6,7 +7,7 @@ group { name:"elm/naviframe/base/default";
       }
    }
 }
-group { name:"elm/naviframe/item/basic/default";
+group { name: "elm/naviframe/item/basic/default";
    parts {
       part { name: "title_clip";
          type: RECT;
@@ -32,10 +33,18 @@ group { name:"elm/naviframe/item/basic/default";
             rel1.relative: 0 1;
          }
       }
+      part { name: "content_base";
+         type: RECT;
+         clip_to: "content_clip";
+         description { state: "default" 0.0;
+            rel1 { to: "elm.swallow.content"; }
+            rel2 { to: "elm.swallow.content"; }
+            color: 225 225 225 255;
+         }
+      }
       part { name: "elm.swallow.content";
          type: SWALLOW;
          scale: 1;
-         repeat_events: 0;
          clip_to: "content_clip";
          description { state: "default" 0.0;
             align: 0.0 0.0;
@@ -125,7 +134,270 @@ group { name:"elm/naviframe/item/basic/default";
          repeat_events: 1;
          clip_to: "title_clip";
          description { state: "default" 0.0;
+            text { font: "Sans:style=Bold";
+               size: 12;
+               min: 0 0;
+               max: 1 0;
+               align: 0.5 0.5;
+            }
+            color: 0 0 0 255;
+            align: 0.5 0.5;
+            rel1.to: "title_base";
+            rel2.to: "title_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";
+            rel1.relative: 0 1;
+            rel1.to: "title_base";
+            rel1.offset: 0 -3;
+            rel2.to: "title_base";
+            rel2.offset: -1 -4;
+            color: 50 50 50 255;
+            align: 0.5 0;
+         }
+      }
+   }
+   programs {
+      program { name: "content_new_pusehd";
+         signal: "elm,state,new,pushed,internal";
+         source: "";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.5;
+         target: "elm.swallow.content";
+         after: "show_finished";
+      }
+      program { name: "content_cur_pusehd";
+         signal: "elm,state,cur,pushed,internal";
+         source: "";
+         action: STATE_SET "left" 0.0;
+         target: "elm.swallow.content";
+         transition: DECELERATE 0.5;
+         after: "pushed_finished";
+      }
+      program { name: "content_prev_popped";
+         signal: "elm,state,prev,popped,internal";
+         source: "";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+         transition: DECELERATE 0.5;
+         after: "show_finished";
+      }
+      program { name: "content_cur_popped";
+         signal: "elm,state,cur,popped,internal";
+         source: "";
+         action: STATE_SET "right" 0.0;
+         target: "elm.swallow.content";
+         transition: DECELERATE 0.5;
+         after: "popped_finished";
+      }
+      program { name: "cur_pushed";
+         signal: "elm,state,cur,pushed";
+         source: "elm";
+         script {
+            set_state(PART:"elm.swallow.content", "default", 0.0);
+            emit("elm,state,cur,pushed,internal", "");
+         }
+      }
+      program { name: "new_pushed";
+         signal: "elm,state,new,pushed";
+         source: "elm";
+         script {
+            set_state(PART:"elm.swallow.content", "right", 0.0);
+            emit("elm,state,new,pushed,internal", "");
+         }
+      }
+      program { name: "prev_popped";
+         signal: "elm,state,prev,popped";
+         source: "elm";
+         script {
+            set_state(PART:"elm.swallow.content", "left", 0.0);
+            emit("elm,state,prev,popped,internal", "");
+         }
+      }
+      program { name: "cur_popped";
+         signal: "elm,state,cur,popped";
+         source: "elm";
+         script {
+            set_state(PART:"elm.swallow.content", "default", 0.0);
+            emit("elm,state,cur,popped,internal", "");
+         }
+      }
+      program { name: "visible";
+         signal: "elm,state,visible";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "elm.swallow.content";
+      }
+      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 { name: "show_finished";
+         action: SIGNAL_EMIT "elm,action,show,finished" "";
+      }
+      program { name: "pushed_finished";
+         action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+      }
+      program { name: "popped_finished";
+         action: SIGNAL_EMIT "elm,action,popped,finished" "";
+      }
+   }
+}
+group { name: "elm/naviframe/item/overlap/default";
+   parts {
+      part { name: "title_clip";
+         type: RECT;
+        description { state: "default" 0.0;
+            min: 1 55;
+            align: 0.0 0.0;
+            fixed: 0 1;
+            rel1 { relative: 0.0 0.0; }
+            rel2 { relative: 1.0 0.0; }
+         }
+         description { state: "hide" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            max: 0 0;
+            fixed: 1 1;
+         }
+      }
+      part { name: "content_clip";
+         type: RECT;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1.to_y: "title_clip";
+            rel1.relative: 0 1;
+         }
+      }
+      part { name: "content_base";
+         type: RECT;
+         clip_to: "content_clip";
+         description { state: "default" 0.0;
+            rel1 { to: "elm.swallow.content"; }
+            rel2 { to: "elm.swallow.content"; }
+            color: 225 225 225 255;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         clip_to: "content_clip";
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel1.relative: 0.0 1.0;
+            rel1.to_y: "title_clip";
+            rel2.relative: 1.0 1.0;
+            color: 255 255 255 255;
+         }
+         description { state: "left" 0.0;
+            inherit: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "right" 0.0;
+            inherit: "default" 0.0;
+            rel1.relative: 1.0 1.0;
+            rel2.relative: 2.0 1.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "title_base";
+         type: RECT;
+         description { state: "default" 0.0;
+            rel1 { to: "title_clip"; }
+            rel2 { to: "title_clip"; }
+            color: 225 225 225 255;
+         }
+      }
+      part { name: "title_separator";
+         type: RECT;
+         clip_to: "title_clip";
+         description { state: "default" 0.0;
+            min: 0 5;
+            align: 0.5 1;
+            fixed: 0 1;
+            rel1 { to: "title_clip"; relative: 0 1; }
+            rel2 { to: "title_clip"; }
+            color: 150 150 150 255;
+         }
+      }
+      part { name: "elm.swallow.prev_btn";
+         type: SWALLOW;
+         scale: 1;
+         clip_to: "title_clip";
+         description { state: "default" 0.0;
+            min: 80 40;
+            max: 80 40;
+            align: 0 0;
+            fixed: 1 1;
+            rel1.offset: 5 5;
+            rel1.to: "title_base";
+            rel2.offset: -1 -6;
+            rel2.to: "title_base";
+         }
+      }
+      part { name: "elm.swallow.next_btn";
+         type: SWALLOW;
+         scale: 1;
+         clip_to: "title_clip";
+         description { state: "default" 0.0;
+            min: 80 40;
+            max: 80 40;
+            align: 1 0;
+            fixed: 1 1;
+            rel1.offset: 0 5;
+            rel1.to: "title_base";
+            rel2.offset: -6 -6;
+            rel2.to: "title_base";
+         }
+      }
+      part { name: "elm.swallow.icon";
+         type: SWALLOW;
+         scale: 1;
+         clip_to: "title_clip";
+         description { state: "default" 0.0;
+            min: 40 40;
+            max: 40 40;
+            fixed: 1 1;
+            align: 1 0.5;
+            rel1.to: "elm.text.title";
+            rel1.relative: 0 0;
+            rel2.to: "elm.text.title";
+            rel2.relative: 0 1;
+         }
+      }
+      part { name: "elm.text.title";
+         type: TEXT;
+         scale: 1;
+         repeat_events: 1;
+         clip_to: "title_clip";
+         description { state: "default" 0.0;
+            text { font: "Sans:style=Bold";
                size: 12;
                min: 0 0;
                max: 1 0;
@@ -260,4 +532,3 @@ group { name:"elm/naviframe/item/basic/default";
       }
    }
 }
-
index afe995a..7d4fbeb 100644 (file)
@@ -14,6 +14,8 @@ static const char *img2 = PACKAGE_DATA_DIR "/images/plant_01.jpg";
 static const char *img3 = PACKAGE_DATA_DIR "/images/rock_01.jpg";
 static const char *img4 = PACKAGE_DATA_DIR "/images/rock_02.jpg";
 static const char *img5 = PACKAGE_DATA_DIR "/images/sky_01.jpg";
+static const char *img6 = PACKAGE_DATA_DIR "/images/sky_02.jpg";
+static const char *img7 = PACKAGE_DATA_DIR "/images/sky_03.jpg";
 
 Evas_Object *
 _content_new(Evas_Object *parent, const char *img)
@@ -57,20 +59,63 @@ _promote(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 }
 
 void
-_page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_page7(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *bt, *bt2, *content, *nf = data;
    Elm_Object_Item *it;
 
    bt = elm_button_add(nf);
    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   BUTTON_TEXT_SET(bt, "Prev");
+   BUTTON_TEXT_SET(bt, "Page 6");
 
    bt2 = elm_button_add(nf);
    evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
    BUTTON_TEXT_SET(bt2, "Page 1");
    evas_object_smart_callback_add(bt2, "clicked", _promote,
                                   evas_object_data_get(nf, "page1"));
+   content = _content_new(nf, img6);
+   it = elm_naviframe_item_push(nf, "Page 7", bt, bt2, content, "overlap");
+   elm_object_item_part_text_set(it, "subtitle", "Overlap style!");
+
+   evas_object_smart_callback_add(bt, "clicked", _navi_pop, nf);
+}
+
+void
+_page6(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *bt, *bt2, *content, *nf = data;
+   Elm_Object_Item *it;
+
+   bt = elm_button_add(nf);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   BUTTON_TEXT_SET(bt, "Page 5");
+
+   bt2 = elm_button_add(nf);
+   evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   BUTTON_TEXT_SET(bt2, "Page 7");
+   evas_object_smart_callback_add(bt2, "clicked", _page7, nf);
+
+   content = _content_new(nf, img7);
+   it = elm_naviframe_item_push(nf, "Page 6", bt, bt2, content, "overlap");
+   elm_object_item_part_text_set(it, "subtitle", "Overlap style!");
+
+   evas_object_smart_callback_add(bt, "clicked", _navi_pop, nf);
+}
+
+void
+_page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *bt, *bt2, *content, *nf = data;
+   Elm_Object_Item *it;
+
+   bt = elm_button_add(nf);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   BUTTON_TEXT_SET(bt, "Page 4");
+
+   bt2 = elm_button_add(nf);
+   evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   BUTTON_TEXT_SET(bt2, "Page 6");
+   evas_object_smart_callback_add(bt2, "clicked", _page6, nf);
 
    content = _content_new(nf, img5);
    it = elm_naviframe_item_insert_after(nf,
@@ -80,7 +125,7 @@ _page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
                                         bt2,
                                         content,
                                         NULL);
-
+   elm_object_item_part_text_set(it, "subtitle", "This page is inserted without transition");
    evas_object_smart_callback_add(bt, "clicked", _navi_it_del, it);
 }
 
@@ -110,6 +155,7 @@ _page4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
                                 bt,
                                 content,
                                 NULL);
+   elm_object_item_part_text_set(it, "subtitle", "Title area visibility test");
 
    ic = elm_icon_add(nf);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png",
index d97087d..f3c5f17 100644 (file)
@@ -1295,7 +1295,6 @@ elm_naviframe_item_pop(Evas_Object *obj)
           }
         elm_object_signal_emit(VIEW(it), "elm,state,cur,popped", "elm");
         evas_object_show(VIEW(prev_it));
-        evas_object_raise(VIEW(prev_it));
         elm_object_signal_emit(VIEW(prev_it),
                                "elm,state,prev,popped",
                                "elm");