group { name: "elm/naviframe/base/default"; name: "elm/naviframe/base/pager"; parts { part { name: "base0"; type: RECT; description { state: "default" 0.0; } } } } group { name: "elm/naviframe/item/basic/default"; 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; 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; 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"; 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; } description { state: "next" 0.0; inherit: "default" 0.0; rel1.relative: 1.0 0.0; rel2.relative: 2.0 1.0; } } part { name: "elements_clip"; type: RECT; clip_to: "title_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; } description { state: "next" 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"; 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; } } } part { name: "elements_area"; type: RECT; mouse_events: 0; clip_to: "title_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; inherit: "default" 0.0; } } part { name: "elm.swallow.prev_btn"; type: SWALLOW; scale: 1; clip_to: "elements_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; } } part { name: "elm.swallow.next_btn"; type: SWALLOW; scale: 1; 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; } } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "elm.swallow.icon"; type: SWALLOW; scale: 1; 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; } } } 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; 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; } 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"; 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; 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; } } part { name: "content_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; clip_to: "content_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; } description { state: "next" 0.0; inherit: "default" 0.0; rel1.relative: 1.0 0.0; rel2.relative: 2.0 1.0; } } part { name: "elements_clip"; type: RECT; 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; } description { state: "next" 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: "elements_area"; type: RECT; mouse_events: 0; clip_to: "title_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; inherit: "default" 0.0; } } part { name: "elm.swallow.prev_btn"; type: SWALLOW; scale: 1; clip_to: "elements_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; } } part { name: "elm.swallow.next_btn"; type: SWALLOW; scale: 1; 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; } } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "elm.swallow.icon"; type: SWALLOW; scale: 1; 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; } } } 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; 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: "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; } } } 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; transition: DECELERATE 0.5; target: "title_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 { 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" ""; } } }