From 43dcac275d98cd4773dc516aa2d3aceb7543d3c4 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Tue, 27 Mar 2012 13:11:13 +0000 Subject: [PATCH] elementary/naviframe - added overlap style and updated test case. SVN revision: 69666 --- .../data/themes/widgets/naviframe.edc | 281 +++++++++++++++++- legacy/elementary/src/bin/test_naviframe.c | 56 +++- legacy/elementary/src/lib/elc_naviframe.c | 1 - 3 files changed, 327 insertions(+), 11 deletions(-) diff --git a/legacy/elementary/data/themes/widgets/naviframe.edc b/legacy/elementary/data/themes/widgets/naviframe.edc index 71d285076d..86f4b48d23 100644 --- a/legacy/elementary/data/themes/widgets/naviframe.edc +++ b/legacy/elementary/data/themes/widgets/naviframe.edc @@ -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,Edje-Vera"; + 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"; } } } - diff --git a/legacy/elementary/src/bin/test_naviframe.c b/legacy/elementary/src/bin/test_naviframe.c index afe995a13e..7d4fbeb70e 100644 --- a/legacy/elementary/src/bin/test_naviframe.c +++ b/legacy/elementary/src/bin/test_naviframe.c @@ -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) @@ -56,6 +58,50 @@ _promote(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) elm_naviframe_item_promote(data); } +void +_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, "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__) { @@ -64,13 +110,12 @@ _page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) 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 4"); 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")); + 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", diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index d97087d362..f3c5f17718 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -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");