#ifndef NO_COLORS color_classes { # include "default_colors.in.edc" # define BG_COL 32 32 32 255 } #endif collections { group { name: "terminology/keybinding"; parts { part { name: "shadow"; type: RECT; description { state: "default" 0.0; color: 0 0 0 196; } } part { name: "label"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW BOTTOM; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to: "shadow"; rel2.to: "shadow"; rel1.relative: 0.5 0.5; rel1.offset: 0 0; rel2.relative: 0.5 0.5; rel2.offset: 0 0; color: 255 255 255 255; color3: 0 0 0 18; align: 0.5 0.5; text { font: "Sans"; size: 12; min: 1 1; ellipsis: 0; } } } }; }; group { name: "terminology/miniview"; images { image: "icon_close.png" COMP; image: "fn_shadow.png" COMP; } set { name: "bg_shadow"; image { image: "bg_shadow.png" COMP; size: 0 0 200 150; } image { image: "bg_shadow2.png" COMP; size: 200 150 400 300; } image { image: "bg_shadow3.png" COMP; size: 400 300 99999 99999; } } parts { part { name: "miniview.bg"; type: RECT; //mouse_events: 1; description { state: "default" 0.0; color: BG_COL; } } part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "bg_shadow"; fill.smooth: 0; } } part { name: "miniview.img"; type: SWALLOW; description { state: "default" 0.0; visible: 1; rel1 { to: "miniview.bg"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "miniview.bg"; relative: 1.0 1.0; offset: -1 -1; } } } part { name: "miniview_screen"; type: RECT; mouse_events: 1; dragable { confine: "miniview.img"; x: 0 0 0; y: 1 1 0; } description { state: "default" 0.0; color: 255 255 255 40; fixed:1 1; } description { state: "outbounds" 0.0; color: 255 25 35 40; fixed:1 1; } } part { name: "miniview.close_shadow"; type: IMAGE; description { state: "default" 0.0; image { normal: "fn_shadow.png"; }; rel1 { to: "miniview.bg"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "miniview.bg"; relative: 0.0 0.0; offset: 16 16; } } } part { name: "miniview.close"; type: IMAGE; description { state: "default" 0.0; image { normal: "icon_close.png"; }; rel1.to: "miniview.close_shadow"; rel2.to: "miniview.close_shadow"; } } }; programs { program { signal: "mouse,clicked,1"; source: "miniview.close"; action: SIGNAL_EMIT "miniview,close" "terminology"; } program { signal: "miniview_screen,inbounds"; source: "miniview"; action: STATE_SET "default" 0.0; target: "miniview_screen"; } program { signal: "miniview_screen,outbounds"; source: "miniview"; action: STATE_SET "outbounds" 0.0; target: "miniview_screen"; } }; }; /////////////////////////////////////////////////////////////////////////// //// the background and general container for the terminal group { name: "terminology/core"; script { public message(Msg_Type:type, id, ...) { if (type != MSG_INT) return; if (id == 1) { // fade new r, g, b, a, v; v = (getarg(2) * 255) / 100; custom_state(PART:"fade", "default", 0.0); get_state_val(PART:"fade", STATE_COLOR, r, g, b, a); set_state_val(PART:"fade", STATE_COLOR, r, g, b, v); set_state(PART:"fade", "custom", 0.0); } } } parts { //////////////////////////////////////////////////////////////////// // background handling part { name: "fade"; type: RECT; description { state: "default" 0.0; } } part { name: "terminology.background"; type: SWALLOW; clip_to: "fade"; description { state: "default" 0.0; } description { state: "image" 0.0; inherit: "default" 0.0; } description { state: "scale" 0.0; inherit: "default" 0.0; } description { state: "edje" 0.0; inherit: "default" 0.0; } description { state: "movie" 0.0; inherit: "default" 0.0; } } program { signal: "media,off"; source: "terminology"; action: STATE_SET "default" 0.0; target: "terminology.background"; } program { signal: "media,image"; source: "terminology"; action: STATE_SET "image" 0.0; target: "terminology.background"; } program { signal: "media,scale"; source: "terminology"; action: STATE_SET "scale" 0.0; target: "terminology.background"; } program { signal: "media,edje"; source: "terminology"; action: STATE_SET "edje" 0.0; target: "terminology.background"; } program { signal: "media,movie"; source: "terminology"; action: STATE_SET "movie" 0.0; target: "terminology.background"; } part { name: "terminology.tabregion"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel2.relative: 1.0 0.0; min: 1 1; align: 0.0 0.0; } } //////////////////////////////////////////////////////////////////// // actual text grid for chars, cursors, selectiond etc. goes here part { name: "terminology.content"; type: SWALLOW; description { state: "default" 0.0; rel1.offset: 1 0; rel1.relative: 0.0 1.0; rel1.to_y: "terminology.tabregion"; rel2.offset: -2 -2; } } } } //// the background and general container for the terminal group { name: "terminology/background"; images { image: "bg_bevel.png" COMP; image: "bg_glint.png" COMP; image: "bg_glow_in.png" COMP; image: "bg_led_glow.png" COMP; image: "bg_led_base.png" COMP; image: "bg_led.png" COMP; image: "bg_led_strobe.png" COMP; image: "pm_shadow.png" COMP; image: "pm_overlay.png" COMP; image: "pm_fill.png" COMP; image: "cr_glow.png" COMP; image: "tab_base_bottom.png" COMP; image: "tab_base_l0.png" COMP; image: "tab_base_l1.png" COMP; image: "tab_base_m.png" COMP; image: "tab_base_r0.png" COMP; image: "tab_base_r1.png" COMP; image: "tab_bg_l0.png" COMP; image: "tab_bg_l1.png" COMP; image: "tab_bg_r0.png" COMP; image: "tab_bg_r1.png" COMP; image: "tab_shad_l0.png" COMP; image: "tab_shad_l1.png" COMP; image: "tab_shad_r0.png" COMP; image: "tab_shad_r1.png" COMP; image: "media_busy_knob.png" COMP; image: "media_busy_spinner.png" COMP; image: "tab_close.png" COMP; } set { name: "bg_shadow"; image { image: "bg_shadow.png" COMP; size: 0 0 200 150; } image { image: "bg_shadow2.png" COMP; size: 200 150 400 300; } image { image: "bg_shadow3.png" COMP; size: 400 300 99999 99999; } } set { name: "bg_shine"; image { image: "bg_shine5.png" COMP; size: 0 0 256 120; } image { image: "bg_shine4.png" COMP; size: 256 120 512 240; } image { image: "bg_shine3.png" COMP; size: 512 240 1024 480; } image { image: "bg_shine2.png" COMP; size: 1024 480 2048 960; } image { image: "bg_shine.png" COMP; size: 2048 960 99999 99999; } } sounds { sample { name: "bell" LOSSY 64; source: "bell.wav"; } } script { public message(Msg_Type:type, id, ...) { new r, g, b, a, v; if (type != MSG_INT) return; if (id == 1) { v = (getarg(2) * 255) / 100; custom_state(PART:"shadow", "default", 0.0); get_state_val(PART:"shadow", STATE_COLOR, r, g, b, a); set_state_val(PART:"shadow", STATE_COLOR, r, g, b, v); set_state(PART:"shadow", "custom", 0.0); custom_state(PART:"base", "default", 0.0); get_state_val(PART:"base", STATE_COLOR, r, g, b, a); set_state_val(PART:"base", STATE_COLOR, r, g, b, v); set_state(PART:"base", "custom", 0.0); } else if (id == 2) { v = getarg(2); custom_state(PART:"shine_focused", "focused", 0.0); get_state_val(PART:"shine_focused", STATE_COLOR, r, g, b, a); set_state_val(PART:"shine_focused", STATE_COLOR, r, g, b, v); set_state(PART:"shine_focused", "custom", 0.0); custom_state(PART:"shine_unfocused", "default", 0.0); get_state_val(PART:"shine_unfocused", STATE_COLOR, r, g, b, a); set_state_val(PART:"shine_unfocused", STATE_COLOR, r, g, b, v/8); set_state(PART:"shine_unfocused", "custom", 0.0); } } } parts { //////////////////////////////////////////////////////////////////// // background handling part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "bg_shadow"; fill.smooth: 0; } } part { name: "base"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: BG_COL; } } //////////////////////////////////////////////////////////////////// // actual text grid for chars, cursors, selectiond etc. goes here // and has a background layered behind it inside the swallowed // child edje part { name: "terminology.content"; type: SWALLOW; description { state: "default" 0.0; } } //////////////////////////////////////////////////////////////////// // indicator of other tabs and control part { name: "tabcount_clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "terminology.tabmissed.label"; type: TEXT; mouse_events: 0; effect: GLOW; scale: 1; clip_to: "tabcount_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.tabcount.label"; rel2.to: "terminology.tabcount.label"; rel1.offset: -4 0; rel2.relative: 0.0 1.0; rel2.offset: -5 -1; color: 255 153 51 64; color2: 255 51 0 18; color3: 255 0 0 8; align: 1.0 0.5; text { font: "Sans"; size: 8; align: 1.0 0.5; min: 1 1; ellipsis: 0; } } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 64 255; color2: 255 153 51 128; color3: 255 0 0 20; } } part { name: "terminology.tabcount.label"; type: TEXT; mouse_events: 0; effect: GLOW; scale: 1; clip_to: "tabcount_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; rel1.relative: -0.2 0.0; rel2.relative: -0.2 1.0; color: 51 153 255 64; color2: 51 153 255 18; color3: 51 153 255 8; align: 1.0 0.5; text { font: "Sans"; size: 8; align: 1.0 0.5; min: 1 1; ellipsis: 0; } } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 255 255; color2: 51 153 255 128; color3: 51 153 255 20; } } part { name: "tabcount_glow_r0"; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "tabcount_r0"; rel2.to: "tabcount_r0"; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "tabcount_glow_r1"; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "tabcount_r1"; rel2.to: "tabcount_r1"; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "tabcount_glow_r2"; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "tabcount_r2"; rel2.to: "tabcount_r2"; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "tabcount_glow_r3"; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "tabcount_r3"; rel2.to: "tabcount_r3"; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "tabcount_r0"; type: RECT; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; rel1.relative: 0.05 0.05; rel2.relative: 0.45 0.45; color: 255 255 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "tabcount_r1"; type: RECT; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; rel1.relative: 0.55 0.05; rel2.relative: 0.95 0.45; color: 255 255 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "tabcount_r2"; type: RECT; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; rel1.relative: 0.05 0.55; rel2.relative: 0.45 0.95; color: 255 255 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "tabcount_r3"; type: RECT; clip_to: "tabcount_clip"; description { state: "default" 0.0; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; rel1.relative: 0.55 0.55; rel2.relative: 0.95 0.95; color: 255 255 255 32; } description { state: "over" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "terminology.tabcount.control"; type: SWALLOW; clip_to: "tabcount_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 1.0 0.0; rel1.offset: -3 2; rel1.to: "viewregion"; rel2.relative: 1.0 0.0; rel2.offset: -3 2; rel2.to: "viewregion"; align: 1.0 0.0; min: 16 16; } } part { name: "tabcount_ev"; type: RECT; repeat_events: 1; clip_to: "tabcount_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.tabcount.control"; rel2.to: "terminology.tabcount.control"; color: 0 0 0 0; } } part { name: "terminology.tabregion"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "viewregion"; rel2.relative: 1.0 0.0; } } part { name: "viewregion"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "terminology.content"; } description { state: "tab" 0.0; inherit: "default" 0.0; rel1.to_y: "tabmiddle"; rel1.relative: 0.0 1.0; } } program { signal: "mouse,in"; source: "tabcount_ev"; action: STATE_SET "over" 0.0; transition: DECELERATE 0.5; target: "tabcount_r0"; target: "tabcount_r1"; target: "tabcount_r2"; target: "tabcount_r3"; target: "tabcount_glow_r0"; target: "tabcount_glow_r1"; target: "tabcount_glow_r2"; target: "tabcount_glow_r3"; target: "terminology.tabcount.label"; target: "terminology.tabmissed.label"; } program { signal: "mouse,out"; source: "tabcount_ev"; action: STATE_SET "default" 0.0; transition: DECELERATE 2.0; target: "tabcount_r0"; target: "tabcount_r1"; target: "tabcount_r2"; target: "tabcount_r3"; target: "tabcount_glow_r0"; target: "tabcount_glow_r1"; target: "tabcount_glow_r2"; target: "tabcount_glow_r3"; target: "terminology.tabcount.label"; target: "terminology.tabmissed.label"; } program { signal: "mouse,clicked,1"; source: "tabcount_ev"; action: SIGNAL_EMIT "tabcount,go" "terminology"; } program { signal: "mouse,wheel,0,1"; source: "tabcount_ev"; action: SIGNAL_EMIT "tabcount,prev" "terminology"; } program { signal: "mouse,wheel,0,-1"; source: "tabcount_ev"; action: SIGNAL_EMIT "tabcount,next" "terminology"; } program { signal: "tabcount,off"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "tabcount_clip"; } program { signal: "tabcount,on"; source: "terminology"; action: STATE_SET "on" 0.0; transition: DECELERATE 0.5; target: "tabcount_clip"; } program { signal: "tabmissed,off"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "terminology.tabmissed.label"; } program { signal: "tabmissed,on"; source: "terminology"; action: STATE_SET "over" 0.0; transition: DECELERATE 0.2; target: "terminology.tabmissed.label"; after: "tabmissed2"; } program { name: "tabmissed2"; signal: "tabmissed,on"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 3.0; target: "terminology.tabmissed.label"; } //////////////////////////////////////////////////////////////////// // sendfile request part { name: "sendfile_request_clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "sendfile_request_shadow"; mouse_events: 0; clip_to: "sendfile_request_clip"; description { state: "default" 0.0; fixed: 1 1; rel.to: "sendfile_request_bg"; rel1.offset: -32 -32; rel2.offset: 31 31; image.normal: "pm_shadow.png"; image.border: 64 64 64 64; fill.smooth: 0; } } part { name: "sendfile_request_bg"; type: RECT; clip_to: "sendfile_request_clip"; description { state: "default" 0.0; color: 64 64 64 255; rel1.relative: 0.0 -1.0; rel2.relative: 1.0 0.0; } description { state: "on" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } part { name: "terminology.sendfile.request"; type: SWALLOW; clip_to: "sendfile_request_clip"; scale: 1; description { state: "default" 0.0; rel.to: "sendfile_request_bg"; rel1.offset: 4 4; rel2.offset: -5 -5; #if HAS_OFFSCALE offscale; #endif } description { state: "on" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } program { signal: "sendfile,request,on"; source: "terminology"; action: ACTION_STOP; target: "sendfile_request_on"; target: "sendfile_request_off"; } program { signal: "sendfile,request,off"; source: "terminology"; action: ACTION_STOP; target: "sendfile_request_on"; target: "sendfile_request_off"; } program { name: "sendfile_request_on"; signal: "sendfile,request,on"; source: "terminology"; in: 0.5 0.0; action: STATE_SET "on" 0.0; transition: DECELERATE 0.5; target: "sendfile_request_clip"; target: "sendfile_request_bg"; } program { name: "sendfile_request_off"; signal: "sendfile,request,off"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "sendfile_request_clip"; target: "sendfile_request_bg"; } //////////////////////////////////////////////////////////////////// // sendfile progress part { name: "sendfile_progress_clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "sendfile_progress_shadow"; mouse_events: 0; clip_to: "sendfile_progress_clip"; description { state: "default" 0.0; fixed: 1 1; rel.to: "sendfile_progress_bg"; rel1.offset: -32 -32; rel2.offset: 31 31; image.normal: "pm_shadow.png"; image.border: 64 64 64 64; fill.smooth: 0; } } part { name: "sendfile_progress_bg"; type: RECT; clip_to: "sendfile_progress_clip"; scale : 1; description { state: "default" 0.0; color: 64 64 64 255; rel.to: "terminology.sendfile.progress"; rel1.offset: -4 -4; rel2.offset: 4 4; #if HAS_OFFSCALE offscale; #endif } } part { name: "terminology.sendfile.progress"; type: SWALLOW; clip_to: "sendfile_progress_clip"; scale : 1; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel1.offset: 4 -5; rel2.relative: 1.0 0.0; rel2.offset: -5 -5; align: 0.5 1.0; #if HAS_OFFSCALE offscale; #endif } description { state: "on" 0.0; inherit: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 4; align: 0.5 0.0; } } program { signal: "sendfile,progress,on"; source: "terminology"; action: ACTION_STOP; target: "sendfile_progress_on"; target: "sendfile_progress_off"; } program { signal: "sendfile,progress,off"; source: "terminology"; action: ACTION_STOP; target: "sendfile_progress_on"; target: "sendfile_progress_off"; } program { name: "sendfile_progress_on"; signal: "sendfile,progress,on"; source: "terminology"; in: 0.5 0.0; action: STATE_SET "on" 0.0; transition: DECELERATE 0.5; target: "sendfile_progress_clip"; target: "terminology.sendfile.progress"; } program { name: "sendfile_progress_off"; signal: "sendfile,progress,off"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "sendfile_progress_clip"; target: "terminology.sendfile.progress"; } //////////////////////////////////////////////////////////////////// // miniview part { name: "terminology.miniview"; type: SWALLOW; description { state: "default" 0.0; rel1.to_x: "terminology.content"; rel1.to_y: "viewregion"; rel2.to: "terminology.content"; //color: 255 255 255 0; visible: 0; fixed: 1 1; } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; //color: 255 255 255 255; } } program { signal: "miniview,off"; source: "terminology"; action: STATE_SET "default" 0.0; target: "terminology.miniview"; } program { signal: "miniview,on"; source: "terminology"; action: STATE_SET "on" 0.0; target: "terminology.miniview"; } //////////////////////////////////////////////////////////////////// // overlayed prettiness part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "bg_glow_in.png"; image.border: 7 7 7 7; image.middle: 0; fill.smooth: 0; color: 51 153 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "focused2" 0.0; inherit: "default" 0.0; color: 51 153 255 64; } } part { name: "bevel"; mouse_events: 0; description { state: "default" 0.0; image.normal: "bg_bevel.png"; image.border: 3 3 3 3; image.middle: 0; fill.smooth: 0; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "shine_focused"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: 0 0; rel2.offset: -1 -1; image.normal: "bg_shine"; fill.smooth: 0; align: 0.5 0.0; aspect: (256/120) (256/120); aspect_preference: HORIZONTAL; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "shine_unfocused"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: 0 0; rel2.offset: -1 -1; image.normal: "bg_shine"; fill.smooth: 0; align: 0.5 0.0; aspect: (256/120) (256/120); aspect_preference: HORIZONTAL; color: 255 255 255 64; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 0; } } part { name: "glintclip"; type: RECT; description { state: "default" 0.0; } description { state: "tab" 0.0; inherit: "default" 0.0; } } part { name: "glint"; mouse_events: 0; clip_to: "glintclip"; description { state: "default" 0.0; fixed: 1 1; min: 79 5; max: 79 5; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 0; } image.normal: "bg_glint.png"; color: 255 255 255 128; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "tab_bevel_bottom"; mouse_events: 0; description { state: "default" 0.0; rel1.to_y: "tabmiddle"; rel1.relative: 0.0 1.0; image.normal: "tab_base_bottom.png"; image.border: 2 2 0 2; image.middle: 0; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_top0"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tableft"; rel2.to_y: "tableft"; rel2.to_x: "tab_bevel_top1"; rel2.relative: 0.0 1.0; image.normal: "tab_base_l0.png"; image.border: 0 0 0 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_top1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tabmiddle"; rel1.offset: -4 0; rel2.to: "tabmiddle"; align: 0.0 0.0; max: 12 99999; min: 12 0; image.normal: "tab_base_l1.png"; image.border: 0 0 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_top2"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel1.relative: 1.0 0.0; rel2.to: "tab_bevel_top3"; rel2.relative: 0.0 1.0; image.normal: "tab_base_m.png"; image.border: 0 0 4 0; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_top3"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tabmiddle"; rel2.to: "tabmiddle"; rel2.offset: 3 -1; align: 1.0 0.0; max: 12 99999; min: 12 0; image.normal: "tab_base_r1.png"; image.border: 0 0 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_top4"; mouse_events: 0; description { state: "default" 0.0; rel1.to_y: "tabright"; rel1.to_x: "tab_bevel_top3"; rel1.relative: 1.0 0.0; rel2.to: "tabright"; image.normal: "tab_base_r0.png"; image.border: 0 0 0 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_bg0"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top0"; rel2.to: "tab_bevel_top0"; image.normal: "tab_bg_l0.png"; image.border: 2 0 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_bg1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel2.to: "tab_bevel_top1"; image.normal: "tab_bg_l1.png"; image.border: 0 0 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_bg3"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top3"; rel2.to: "tab_bevel_top3"; image.normal: "tab_bg_r1.png"; image.border: 0 0 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_bg4"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top4"; rel2.to: "tab_bevel_top4"; image.normal: "tab_bg_r0.png"; image.border: 0 2 4 4; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "terminology.tabl.content"; type: SWALLOW; description { state: "default" 0.0; rel1.to: "tableft"; rel2.to: "tableft"; fixed: 1 1; } } part { name: "terminology.tabr.content"; type: SWALLOW; description { state: "default" 0.0; rel1.to: "tabright"; rel2.to: "tabright"; fixed: 1 1; } } part { name: "tab_bevel_shad0"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top0"; rel2.to: "tab_bevel_top0"; image.normal: "tab_shad_l0.png"; image.border: 0 0 0 10; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_shad1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel2.to: "tab_bevel_top1"; image.normal: "tab_shad_l1.png"; image.border: 0 0 10 10; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_shad3"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top3"; rel2.to: "tab_bevel_top3"; image.normal: "tab_shad_r1.png"; image.border: 0 0 10 10; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tab_bevel_shad4"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "tab_bevel_top4"; rel2.to: "tab_bevel_top4"; image.normal: "tab_shad_r0.png"; image.border: 0 0 0 10; fill.smooth: 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } program { signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glint"; target: "glow"; target: "shine_unfocused"; target: "shine_focused"; after: "focus_in2"; sequence { action: STATE_SET "custom" 0.0; target: "shine_focused"; } } program { signal: "focused,set"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glint"; target: "shine_focused"; target: "shine_unfocused"; sequence { action: STATE_SET "focused2" 0.0; target: "glow"; } sequence { action: STATE_SET "custom" 0.0; target: "shine_focused"; } } program { name: "focus_in2"; action: STATE_SET "focused2" 0.0; transition: DECELERATE 0.5; target: "glow"; } program { signal: "focus,out"; source: "terminology"; action: STATE_SET "default" 0.0; target: "glint"; target: "glow"; target: "shine_focused"; target: "shine_unfocused"; sequence { action: STATE_SET "custom" 0.0; target: "shine_unfocused"; } } //////////////////////////////////////////////////////////////////// // a swallow to hold a finger size rect for min tab size program { signal: "tabbar,on"; source: "terminology"; action: STATE_SET "tab" 0.0; target: "viewregion"; target: "tableft"; target: "tabmiddle"; target: "tabright"; target: "bevel"; target: "glintclip"; target: "tab_bevel_bottom"; target: "tab_bevel_top0"; target: "tab_bevel_top1"; target: "tab_bevel_top2"; target: "tab_bevel_top3"; target: "tab_bevel_top4"; target: "tab_bevel_bg0"; target: "tab_bevel_bg1"; target: "tab_bevel_bg3"; target: "tab_bevel_bg4"; target: "tab_bevel_shad0"; target: "tab_bevel_shad1"; target: "tab_bevel_shad3"; target: "tab_bevel_shad4"; target: "tabtitle"; target: "tabclose"; } program { signal: "tabbar,off"; source: "terminology"; action: STATE_SET "default" 0.0; target: "viewregion"; target: "tableft"; target: "tabmiddle"; target: "tabright"; target: "bevel"; target: "glintclip"; target: "tab_bevel_bottom"; target: "tab_bevel_top0"; target: "tab_bevel_top1"; target: "tab_bevel_top2"; target: "tab_bevel_top3"; target: "tab_bevel_top4"; target: "tab_bevel_bg0"; target: "tab_bevel_bg1"; target: "tab_bevel_bg3"; target: "tab_bevel_bg4"; target: "tab_bevel_shad0"; target: "tab_bevel_shad1"; target: "tab_bevel_shad3"; target: "tab_bevel_shad4"; target: "tabtitle"; target: "tabclose"; } part { name: "terminology.tab"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; rel1.relative: 1.0 0.0; rel1.to_x: "terminology.tabl"; rel2.relative: 0.0 0.0; rel2.to_x: "terminology.tabr"; align: 0.5 0.0; visible: 0; fixed: 1 1; } } // some slot for dragable parts to stay in along top edge of bg part { name: "tabdrag"; type: SPACER; description { state: "default" 0.0; rel2.relative: 1.0 0.0; fixed: 1 1; } } // left boundary of the active tab (ragable 0.0 -> 1.0) part { name: "terminology.tabl"; type: SPACER; dragable.x: 1 1 0; dragable.confine: "tabdrag"; description { state: "default" 0.0; rel2.relative: 1.0 0.0; max: 1 1; fixed: 1 1; } } // right boundary of the active tab (ragable 0.0 -> 1.0) part { name: "terminology.tabr"; type: SPACER; dragable.x: 1 1 0; dragable.confine: "tabdrag"; description { state: "default" 0.0; rel2.relative: 1.0 0.0; max: 1 1; fixed: 1 1; } } part { name: "terminology.tab.title"; type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW BOTTOM; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; color3: 0 0 0 18; text { font: "Sans:style=Bold"; size: 10; align: 0.5 0.0; min: 0 1; } align: 0.5 0.0; rel1.to_x: "tab_bevel_top2"; rel1.offset: 0 2; rel2.to_x: "tab_bevel_top2"; rel2.offset: -1 2; rel2.relative: 1.0 0.0; visible: 0; fixed: 1 1; } } part { name: "tabtitle"; type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW BOTTOM; description { state: "default" 0.0; color: 255 255 255 255; color3: 0 0 0 18; text { font: "Sans:style=Bold"; size: 10; align: 0.5 0.5; min: 0 1; text_source: "terminology.tab.title"; } align: 0.5 0.5; rel1.to_x: "tab_bevel_top2"; rel1.to_y: "tabmiddle"; rel2.to_x: "tab_bevel_top2"; rel2.to_y: "tabmiddle"; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tablimit0"; type: SPACER; description { state: "default" 0.0; rel1.to_y: "terminology.tab"; rel1.relative: 0.0 1.0; rel2.to_y: "terminology.tab.title"; align: 0.0 0.0; fixed: 1 1; } } part { name: "tableft"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel2.to_x: "terminology.tab"; rel2.to_y: "tabmiddle"; rel2.relative: 0.0 1.0; color: 0 0 0 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tabright"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.tab"; rel1.relative: 1.0 0.0; rel2.to_y: "tabmiddle"; color: 0 0 0 0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tabmiddle"; type: RECT; description { state: "default" 0.0; rel1.to: "terminology.tab"; rel2.to_x: "terminology.tab"; rel2.to_y: "tablimit0"; rel2.offset: -1 0; color: 0 0 0 0; align: 0.0 0.0; visible: 0; fixed: 1 1; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "tabclose"; type: IMAGE; description { state: "default" 0.0; image { normal: "tab_close.png"; }; rel1 { to: "tabmiddle"; relative: 1.0 0.5; offset: -20 -8; } rel2 { to: "tabmiddle"; relative: 1.0 0.5; offset: -2 8; } visible: 0; } description { state: "tab" 0.0; inherit: "default" 0.0; visible: 1; } } program { signal: "mouse,down,1,double"; source: "tabmiddle"; action: SIGNAL_EMIT "tab,title" "terminology"; } program { signal: "mouse,clicked,1"; source: "tabclose"; action: SIGNAL_EMIT "tab,close" "terminology"; } //////////////////////////////////////////////////////////////////// // visual bell - spinning red siren light part { name: "bell_glow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell_base"; rel2.to: "bell_base"; min: 1600 1600; fill.smooth: 0; image.normal: "bg_led_glow.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "done" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; min: 0 0; } } part { name: "bell_base"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; min: 32 32; max: 32 32; rel2.offset: -1 -1; align: 1.0 1.0; image.normal: "bg_led_base.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bell"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell_base"; rel2.to: "bell_base"; image.normal: "bg_led.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bell_strobe"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell"; rel2.to: "bell"; image.normal: "bg_led_strobe.png"; map { on: 1; smooth: 1; rotation.center: "bell"; } } description { state: "spin" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; map.rotation.z: 36.0; } description { state: "spin_done" 0.0; inherit: "default" 0.0; map.rotation.z: 720.0; } } program { signal: "bell,ring"; source: "terminology"; action: PLAY_SAMPLE "bell" 1.0 ALERT; } program { signal: "bell"; source: "terminology"; action: STATE_SET "default" 0.0; target: "bell_base"; target: "bell"; target: "bell_strobe"; target: "bell_glow"; after: "bell"; } program { name: "bell"; action: STATE_SET "visible" 0.0; target: "bell_base"; target: "bell_glow"; after: "bell2"; } program { name: "bell2"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.1; target: "bell"; target: "bell_glow"; after: "bell3"; after: "bell3.1"; } program { name: "bell3"; action: STATE_SET "spin" 0.0; transition: LINEAR 0.1; target: "bell_strobe"; after: "bell4.0"; after: "bell4.1"; after: "bell4.2"; } program { name: "bell3.1"; action: STATE_SET "done" 0.0; transition: DECELERATE 0.5; target: "bell_glow"; } program { name: "bell4.0"; action: STATE_SET "default" 0.0; transition: ACCELERATE 1.2; target: "bell"; } program { name: "bell4.1"; action: STATE_SET "default" 0.0; transition: ACCELERATE 1.6; target: "bell_base"; } program { name: "bell4.2"; action: STATE_SET "spin_done" 0.0; transition: LINEAR 0.9; target: "bell_strobe"; } //////////////////////////////////////////////////////////////////// // popup media over the terminal (until dismissed) part { name: "popmedia_clip"; type: RECT; mouse_events: 1; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "popmedia_shadow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.popmedia"; rel2.to: "terminology.popmedia"; image.normal: "pm_shadow.png"; image.border: 64 64 64 64; image.border_scale_by: 0.1; fill.smooth: 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: -32 -32; rel2.offset: 31 31; image.border_scale_by: 1.0; visible: 1; } } part { name: "popmedia_fill"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.popmedia"; rel2.to: "terminology.popmedia"; image.normal: "pm_fill.png"; fill { size.relative: 0.0 0.0; size.offset: 64 64; } } } part { name: "terminology.popmedia"; type: SWALLOW; clip_to: "popmedia_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; visible: 0; } description { state: "image" 0.0; inherit: "default" 0.0; rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; visible: 1; } description { state: "scale" 0.0; inherit: "default" 0.0; rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; visible: 1; } description { state: "edje" 0.0; inherit: "default" 0.0; rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; visible: 1; } description { state: "movie" 0.0; inherit: "default" 0.0; rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; visible: 1; } } part { name: "popmedia_overlay"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.popmedia"; rel2.to: "terminology.popmedia"; image.normal: "pm_overlay.png"; fill.smooth: 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "popmedia_bevel"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.popmedia"; rel2.to: "terminology.popmedia"; image.normal: "bg_bevel.png"; image.border: 3 3 3 3; image.middle: 0; fill.smooth: 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "popmedia_glintclip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "popmedia_glint"; mouse_events: 0; clip_to: "popmedia_glintclip"; description { state: "default" 0.0; fixed: 1 1; min: 79 5; max: 79 5; rel1 { to: "terminology.popmedia"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "terminology.popmedia"; relative: 1.0 0.0; offset: -1 0; } image.normal: "bg_glint.png"; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "popmedia_shine"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.popmedia"; rel2.to: "terminology.popmedia"; image.normal: "bg_shine"; fill.smooth: 0; align: 0.5 0.0; aspect: (256/120) (256/120); aspect_preference: HORIZONTAL; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "popmedia_dismiss"; type: RECT; mouse_events: 1; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } program { signal: "mouse,clicked,*"; source: "popmedia_dismiss"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "terminology.popmedia"; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; after: "popmedia_dismiss2"; } program { name: "popmedia_dismiss2"; action: SIGNAL_EMIT "popmedia,done" "terminology"; } program { signal: "popmedia,off"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "terminology.popmedia"; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; after: "popmedia_dismiss2"; } program { signal: "popmedia,image"; source: "terminology"; action: STATE_SET "image" 0.0; transition: DECELERATE 0.2; target: "terminology.popmedia"; } program { signal: "popmedia,scale"; source: "terminology"; action: STATE_SET "scale" 0.0; transition: DECELERATE 0.2; target: "terminology.popmedia"; } program { signal: "popmedia,edje"; source: "terminology"; action: STATE_SET "edje" 0.0; transition: DECELERATE 0.2; target: "terminology.popmedia"; } program { signal: "popmedia,movie"; source: "terminology"; action: STATE_SET "movie" 0.0; transition: DECELERATE 0.2; target: "terminology.popmedia"; } program { signal: "popmedia,image"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; } program { signal: "popmedia,scale"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; } program { signal: "popmedia,edje"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; } program { signal: "popmedia,movie"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "popmedia_clip"; target: "popmedia_dismiss"; target: "popmedia_shadow"; target: "popmedia_overlay"; target: "popmedia_bevel"; target: "popmedia_glint"; target: "popmedia_glintclip"; target: "popmedia_shine"; } /* media busy */ part { name: "media"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "knob"; clip_to: "media"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "media_busy_knob.png"; min: 40 40; max: 40 40; align: 1.0 1.0; } } part { name: "knob_spinner"; clip_to: "media"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; color: 51 153 255 255; rel1.to: "knob"; rel2.to: "knob"; image.normal: "media_busy_spinner.png"; map { on: 1; smooth: 1; rotation.center: "knob"; } } description { state: "spin" 0.0; inherit: "default" 0.0; visible: 1; map.rotation.z: 360; } } program { signal: "busy"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.5; target: "media"; } program { name: "spin1"; signal: "busy"; source: "terminology"; action: STATE_SET "spin" 0.0; transition: LINEAR 0.5; target: "knob_spinner"; after: "spin2"; } program { name: "spin2"; action: STATE_SET "default" 0.0; target: "knob_spinner"; after: "spin1"; } program { signal: "done"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 1.5; target: "media"; } } } group { name: "terminology/tabbar_back"; images { image: "tab_base_l1.png" COMP; image: "tab_base_m.png" COMP; image: "tab_base_r1.png" COMP; image: "tab_other_l.png" COMP; image: "tab_other_m.png" COMP; image: "tab_other_r.png" COMP; image: "tab_shad_l2.png" COMP; image: "tab_shad_r2.png" COMP; image: "tab_close.png" COMP; } parts { part { name: "tab_bevel_shad1"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel2.to: "tab_bevel_top1"; image.normal: "tab_shad_l2.png"; image.border: 0 0 10 10; fill.smooth: 0; } } part { name: "tab_bevel_shad3"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top3"; rel2.to: "tab_bevel_top3"; image.normal: "tab_shad_r2.png"; image.border: 0 0 10 10; fill.smooth: 0; } } part { name: "tab_base_top1"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel2.to: "tab_bevel_top1"; image.normal: "tab_other_l.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "tab_base_top2"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top2"; rel2.to: "tab_bevel_top2"; image.normal: "tab_other_m.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "tab_base_top3"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top3"; rel2.to: "tab_bevel_top3"; image.normal: "tab_other_r.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "tab_bevel_top1"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; align: 0.0 0.0; rel1.offset: -4 0; max: 12 99999; min: 12 0; image.normal: "tab_base_l1.png"; image.border: 0 0 4 4; fill.smooth: 0; fixed: 1 0; } } part { name: "tab_bevel_top2"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "tab_bevel_top1"; rel1.relative: 1.0 0.0; rel2.to: "tab_bevel_top3"; rel2.relative: 0.0 1.0; image.normal: "tab_base_m.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "tab_bevel_top3"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; align: 1.0 0.0; rel2.offset: 3 -1; max: 12 99999; min: 12 0; image.normal: "tab_base_r1.png"; image.border: 0 0 4 4; fill.smooth: 0; fixed: 1 0; } } part { name: "terminology.title"; type: TEXT; mouse_events: 0; scale: 1; effect: SHADOW BOTTOM; description { state: "default" 0.0; text { font: "Sans:style=Bold"; size: 10; align: 0.5 0.5; min: 0 1; } align: 0.5 0.5; color: 0 0 0 255; color3: 255 255 255 25; rel1.to: "tab_bevel_top2"; rel2.to: "tab_bevel_top2"; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel2.offset: -1 -2; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } program { signal: "mouse,clicked,1"; source: "event"; action: SIGNAL_EMIT "tab,activate" "terminology"; } } } group { name: "terminology/base"; images.image: "pm_shadow.png" COMP; images.image: "bg_bevel.png" COMP; images.image: "bg_glint.png" COMP; parts { part { name: "terminology.content"; type: SWALLOW; description { state: "default" 0.0; } } //////////////////////////////////////////////////////////////////// // a place terminology will place an entry box for internal commands part { name: "cmdclip"; type: RECT; description { state: "default" 0.0; rel1.to: "terminology.cmdbox"; rel1.offset: -100 -100; rel2.to: "terminology.cmdbox"; rel2.offset: 99 99; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } part { name: "cmdshadow"; mouse_events: 0; clip_to: "cmdclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "cmdback"; rel1.offset: -32 -32; rel2.to: "cmdback"; rel2.offset: 31 31; image.normal: "pm_shadow.png"; image.border: 64 64 64 64; fill.smooth: 0; } } part { name: "cmdback"; type: RECT; clip_to: "cmdclip"; description { state: "default" 0.0; color: 48 48 48 255; rel1.to: "terminology.cmdbox"; rel1.offset: -2 -2; rel2.to: "terminology.cmdbox"; rel2.offset: 1 1; } } part { name: "terminology.cmdbox"; type: SWALLOW; clip_to: "cmdclip"; description { state: "default" 0.0; fixed: 1 1; min: 8 8; rel1.relative: 0.0 1.0; rel1.offset: 8 9; rel2.offset: -9 9; align: 0.5 0.0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: 8 -9; rel2.offset: -9 -9; align: 0.5 1.0; } } part { name: "cmdbevel"; mouse_events: 0; clip_to: "cmdclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "cmdback"; rel2.to: "cmdback"; image.normal: "bg_bevel.png"; image.border: 3 3 3 3; image.middle: 0; fill.smooth: 0; } } part { name: "cmdglint"; mouse_events: 0; clip_to: "cmdclip"; description { state: "default" 0.0; fixed: 1 1; min: 79 5; max: 79 5; rel1 { to: "cmdback"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "cmdback"; relative: 1.0 0.0; offset: -1 0; } image.normal: "bg_glint.png"; } } program { signal: "cmdbox,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.4; target: "cmdclip"; } program { signal: "cmdbox,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: SPRING 0.4 0.5 4; target: "terminology.cmdbox"; } program { signal: "cmdbox,hide"; source: "terminology"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.5; target: "terminology.cmdbox"; target: "cmdclip"; } //////////////////////////////////////////////////////////////////// // overlayed options and controls part { name: "terminology.about"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; min: 198 198; max: 198 198; align: 0.5 0.0; visible: 0; rel1.relative: 0.0 1.0; rel2.relative: 1.0 1.0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; align: 0.5 0.5; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } program { signal: "about,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: SPRING 1.2 2.0 6; target: "terminology.about"; } program { signal: "about,hide"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.6; target: "terminology.about"; } //////////////////////////////////////////////////////////////////// // swallow to hold invisile rect to click on to dismiss things part { name: "terminology.dismiss"; type: SWALLOW; description { state: "default" 0.0; } } //////////////////////////////////////////////////////////////////// // overlayed options and controls part { name: "terminology.optdetails"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; min: 40 40; align: 0.0 0.5; visible: 0; rel1 { relative: 1.0 0.02; offset: 8 8; } rel2 { relative: 1.0 0.98; offset: 8 -9; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; align: 1.0 0.5; rel1 { relative: 0.1 0.02; offset: 8 8; } rel2 { to_x: "terminology.options"; relative: 0.0 0.98; offset: -9 -9; } } } program { signal: "optdetails,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.4; target: "terminology.optdetails"; } program { signal: "optdetails,hide"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "terminology.optdetails"; after: "opdt_hide2"; } program { name: "opdt_hide2"; action: SIGNAL_EMIT "optdetails,hide,done" "terminology"; } part { name: "terminology.options"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.5; visible: 0; rel1 { relative: 1.0 0.02; offset: 8 8; } rel2 { relative: 1.0 0.98; offset: 8 -9; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; align: 1.0 0.5; rel1 { offset: -9 8; } rel2 { offset: -9 -9; } } } program { signal: "options,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.4; target: "terminology.options"; } program { signal: "options,hide"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.6; target: "terminology.options"; } part { name: "terminology.controls"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; min: 10 10; align: 0.0 0.5; visible: 0; rel1 { relative: 1.0 0.5; offset: 8 8; } rel2 { relative: 1.0 0.5; offset: 8 -9; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; align: 1.0 0.5; rel1 { relative: 1.0 0.5; offset: -9 8; } rel2 { offset: -9 -9; } } } program { signal: "controls,show"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "terminology.controls"; } program { signal: "controls,hide"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "terminology.controls"; } } } /////////////////////////////////////////////////////////////////////////// //// the selection // selections come in 5 modes: // // oneline (also multiple lines but all fill the row): // | ######### | // // disjoint: // | #######| // |## | // // default: // | ###########| // |######### | // // topfull: // |##############| // |###### | // // bottomfull: // | ######| // |##############| #define PATCOL 255 255 255 25 #define OUTCOL 51 153 255 128 group { name: "terminology/selection"; images { image: "sl_stripe.png" COMP; image: "sl_left.png" COMP; image: "sl_right.png" COMP; image: "sl_top.png" COMP; image: "sl_bottom.png" COMP; image: "sl_htop.png" COMP; image: "sl_hbottom.png" COMP; } parts { // background pattern. duplicated because clips cut out regions of // it to see and clips don't overlap part { name: "background_top"; mouse_events: 0; clip_to: "top_clip"; description { state: "default" 0.0; color: PATCOL; image.normal: "sl_stripe.png"; fill.size.relative: 0.0 0.0; fill.size.offset: 240 240; } } part { name: "background_middle"; mouse_events: 0; clip_to: "middle_clip"; description { state: "default" 0.0; color: PATCOL; image.normal: "sl_stripe.png"; fill.size.relative: 0.0 0.0; fill.size.offset: 240 240; } } part { name: "background_bottom"; mouse_events: 0; clip_to: "bottom_clip"; description { state: "default" 0.0; color: PATCOL; image.normal: "sl_stripe.png"; fill.size.relative: 0.0 0.0; fill.size.offset: 240 240; } } // clips that clip the above pattern images to occupy specific // regions of the object (or be invisible since clip is invisible) part { name: "top_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.top_left"; rel1.relative: 1.0 0.0; rel2.to_y: "terminology.top_left"; rel2.relative: 1.0 1.0; } description { state: "oneline" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "disjoint" 0.0; inherit: "default" 0.0; } description { state: "topfull" 0.0; inherit: "default" 0.0; } description { state: "bottomfull" 0.0; inherit: "default" 0.0; } } part { name: "middle_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.top_left"; rel1.relative: 0.0 1.0; rel2.to: "terminology.bottom_right"; rel2.relative: 1.0 0.0; } description { state: "oneline" 0.0; rel1.to: "terminology.top_left"; rel1.relative: 1.0 0.0; rel2.to: "terminology.bottom_right"; rel2.relative: 0.0 1.0; } description { state: "disjoint" 0.0; inherit: "default" 0.0; } description { state: "topfull" 0.0; inherit: "default" 0.0; } description { state: "bottomfull" 0.0; inherit: "default" 0.0; } } part { name: "bottom_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to_y: "terminology.bottom_right"; rel1.relative: 0.0 0.0; rel2.to_x: "terminology.bottom_right"; rel2.relative: 0.0 1.0; } description { state: "oneline" 0.0; visible: 0; } description { state: "disjoint" 0.0; inherit: "default" 0.0; } description { state: "topfull" 0.0; inherit: "default" 0.0; } description { state: "bottomfull" 0.0; inherit: "default" 0.0; } } // the outline around the selection... #define TARGETS \ target: "top_clip"; target: "middle_clip"; target: "bottom_clip"; \ target: "0.clip"; target: "1.clip"; target: "2.clip"; target: "3.clip"; target: "4.clip" part { name: "0.clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "oneline" 0.0; visible: 1; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "disjoint" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "topfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "bottomfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } } part { name: "1.clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "oneline" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "disjoint" 0.0; visible: 1; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "topfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "bottomfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } } part { name: "2.clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 1; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "oneline" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "disjoint" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "topfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "bottomfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } } part { name: "3.clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "oneline" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "disjoint" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "topfull" 0.0; visible: 1; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "bottomfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } } part { name: "4.clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "oneline" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "disjoint" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "topfull" 0.0; visible: 0; rel1.offset: -100 -100; rel2.offset: 101 101; } description { state: "bottomfull" 0.0; visible: 1; rel1.offset: -100 -100; rel2.offset: 101 101; } } // oneline (also multiple lines but all fill the row): // | ######### | part { name: "0.left"; mouse_events: 0; clip_to: "0.clip"; description { state: "default" 0.0; rel1 { to_x: "terminology.top_left"; relative: 1.0 0.0; offset: -1 -1; } rel2 { to_x: "terminology.top_left"; relative: 1.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "0.right"; mouse_events: 0; clip_to: "0.clip"; description { state: "default" 0.0; rel1 { to_x: "terminology.bottom_right"; relative: 0.0 0.0; offset: -3 -1; } rel2 { to_x: "terminology.bottom_right"; relative: 0.0 1.0; offset: 0 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "0.top"; mouse_events: 0; clip_to: "0.clip"; description { state: "default" 0.0; rel1 { to: "0.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "0.right"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "0.bottom"; mouse_events: 0; clip_to: "0.clip"; description { state: "default" 0.0; rel1 { to: "0.left"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "0.right"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } program { name: "oneline"; signal: "mode,oneline"; source: "terminology"; action: STATE_SET "oneline" 0.0; TARGETS; } // disjoint: // | #######| // |## | part { name: "1.left"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "terminology.top_left"; relative: 1.0 0.0; offset: -1 -1; } rel2 { to: "terminology.top_left"; relative: 1.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "1.right"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to_y: "terminology.top_left"; relative: 1.0 0.0; offset: -4 -1; } rel2 { to_y: "terminology.top_left"; relative: 1.0 1.0; offset: -1 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "1.top"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "1.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "1.right"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "1.bottom"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "1.left"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "1.right"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } part { name: "1.left2"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to_y: "terminology.bottom_right"; offset: -1 -1; } rel2 { to_y: "terminology.bottom_right"; relative: 0.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "1.right2"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "terminology.bottom_right"; relative: 0.0 0.0; offset: -3 -1; } rel2 { to: "terminology.bottom_right"; relative: 0.0 1.0; offset: 0 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "1.top2"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "1.left2"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "1.right2"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "1.bottom2"; mouse_events: 0; clip_to: "1.clip"; description { state: "default" 0.0; rel1 { to: "1.left2"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "1.right2"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } program { name: "disjoint"; signal: "mode,disjoint"; source: "terminology"; action: STATE_SET "disjoint" 0.0; TARGETS; } // default: // | ###########| // |######### | part { name: "2.topkink"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; relative: 0.0 0.0; offset: -4 -1; } rel2 { to: "top_clip"; relative: 0.0 1.0; offset: 2 2; } color: OUTCOL; image.normal: "sl_top.png"; image.border: 0 0 4 7; } } part { name: "2.bottomkink"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "bottom_clip"; relative: 1.0 0.0; offset: -3 -3; } rel2 { to: "bottom_clip"; relative: 1.0 1.0; offset: 3 0; } color: OUTCOL; image.normal: "sl_bottom.png"; image.border: 0 0 7 4; } } part { name: "2.left"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "middle_clip"; offset: -1 -1; } rel2 { to: "bottom_clip"; relative: 0.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "2.right"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; relative: 1.0 0.0; offset: -3 -1; } rel2 { to: "middle_clip"; offset: 0 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "2.top"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "2.topkink"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "2.right"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "2.top2"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "2.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "2.topkink"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "2.bottom"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "2.left"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "2.bottomkink"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } part { name: "2.bottom2"; mouse_events: 0; clip_to: "2.clip"; description { state: "default" 0.0; rel1 { to: "2.bottomkink"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "2.right"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } program { name: "multiline"; signal: "mode,multiline"; source: "terminology"; action: STATE_SET "default" 0.0; TARGETS; } // topfull: // |##############| // |###### | part { name: "3.bottomkink"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "bottom_clip"; relative: 1.0 0.0; offset: -3 -3; } rel2 { to: "bottom_clip"; relative: 1.0 1.0; offset: 3 0; } color: OUTCOL; image.normal: "sl_bottom.png"; image.border: 0 0 7 4; } } part { name: "3.left"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; offset: -1 -1; } rel2 { to: "bottom_clip"; relative: 0.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "3.right"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; relative: 1.0 0.0; offset: -3 -1; } rel2 { to: "middle_clip"; offset: 0 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "3.top"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "3.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "3.right"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "3.bottom"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "3.left"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "3.bottomkink"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } part { name: "3.bottom2"; mouse_events: 0; clip_to: "3.clip"; description { state: "default" 0.0; rel1 { to: "3.bottomkink"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "3.right"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } program { name: "topfull"; signal: "mode,topfull"; source: "terminology"; action: STATE_SET "topfull" 0.0; TARGETS; } // bottomfull: // | ######| // |##############| part { name: "4.topkink"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; relative: 0.0 0.0; offset: -4 -1; } rel2 { to: "top_clip"; relative: 0.0 1.0; offset: 2 2; } color: OUTCOL; image.normal: "sl_top.png"; image.border: 0 0 4 7; } } part { name: "4.left"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "middle_clip"; offset: -1 -1; } rel2 { to: "bottom_clip"; relative: 0.0 1.0; offset: 2 0; } color: OUTCOL; image.normal: "sl_left.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "4.right"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "top_clip"; relative: 1.0 0.0; offset: -3 -1; } rel2 { offset: 0 0; } color: OUTCOL; image.normal: "sl_right.png"; image.border: 0 0 4 4; fill.smooth: 0; } } part { name: "4.top"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "4.topkink"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "4.right"; relative: 0.0 0.0; offset: -1 3; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "4.top2"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "4.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to: "4.topkink"; relative: 0.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_htop.png"; fill.smooth: 0; } } part { name: "4.bottom"; mouse_events: 0; clip_to: "4.clip"; description { state: "default" 0.0; rel1 { to: "4.left"; relative: 1.0 1.0; offset: 0 -4; } rel2 { to: "4.right"; relative: 1.0 1.0; offset: -1 -1; } color: OUTCOL; image.normal: "sl_hbottom.png"; fill.smooth: 0; } } program { signal: "mode,bottomfull"; source: "terminology"; action: STATE_SET "bottomfull" 0.0; TARGETS; } // top and bottom swallows used to coimmunicate via min/max size the // size of the top and bottom lines part { name: "terminology.top_left"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.0; rel2.relative: 0.0 0.0; visible: 0; } } part { name: "terminology.bottom_right"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; align: 1.0 1.0; rel1.relative: 1.0 1.0; visible: 0; } } // blinky cursors indicating you can drag the ends of the selection part { name: "cursor.top_left"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.top_left"; rel1.relative: 1.0 0.0; rel2.to: "terminology.top_left"; rel2.relative: 1.0 1.0; rel2.offset: 0 -1; color: 255 0 0 128; } } part { name: "cursor_blink.top_left"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "cursor.top_left"; rel2.to: "cursor.top_left"; visible: 0; } description { state: "fading" 0.0; inherit: "default" 0.0; color: 255 0 0 255; visible: 1; } description { state: "fading" 1.0; inherit: "fading" 0.0; color: 255 0 0 64; rel1.offset: -5 0; } } part { name: "zone.top_left"; type: RECT; description { state: "default" 0.0; rel1.to: "cursor.top_left"; rel1.offset: -15 0; rel2.to: "cursor.top_left"; rel2.offset: 15 0; color: 0 0 0 0; } program { name: "top_left.blink"; signal: "mouse,in"; source: "zone.top_left"; action: STATE_SET "fading" 0.0; target: "cursor_blink.top_left"; after: "top_left.fade"; } program { name: "top_left.fade"; action: STATE_SET "fading" 1.0; transition: LINEAR 0.3; target: "cursor_blink.top_left"; after: "top_left.blink"; } program { name: "top_left.stop"; signal: "mouse,out"; source: "zone.top_left"; action: STATE_SET "default" 0.0; target: "cursor_blink.top_left"; } } part { name: "cursor.bottom_right"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.bottom_right"; rel1.relative: 0.0 0.0; rel1.offset: -1 0; rel2.to: "terminology.bottom_right"; rel2.relative: 0.0 1.0; rel2.offset: -1 -1; color: 255 0 0 128; } } part { name: "cursor_blink.bottom_right"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "cursor.bottom_right"; rel2.to: "cursor.bottom_right"; visible: 0; } description { state: "fading" 0.0; inherit: "default" 0.0; color: 255 0 0 255; visible: 1; } description { state: "fading" 1.0; inherit: "fading" 0.0; color: 255 0 0 64; rel2.offset: +5 0; } } part { name: "zone.bottom_right"; type: RECT; description { state: "default" 0.0; rel1.to: "cursor.bottom_right"; rel1.offset: -15 0; rel2.to: "cursor.bottom_right"; rel2.offset: 15 0; color: 0 0 0 0; } program { name: "bottom_right.blink"; signal: "mouse,in"; source: "zone.bottom_right"; action: STATE_SET "fading" 0.0; target: "cursor_blink.bottom_right"; after: "bottom_right.fade"; } program { name: "bottom_right.fade"; action: STATE_SET "fading" 1.0; transition: LINEAR 0.3; target: "cursor_blink.bottom_right"; after: "bottom_right.blink"; } program { name: "bottom_right.stop"; signal: "mouse,out"; source: "zone.bottom_right"; action: STATE_SET "default" 0.0; target: "cursor_blink.bottom_right"; } } } } /////////////////////////////////////////////////////////////////////////// //// the cursor to show where text is typed group { name: "terminology/cursor"; images { image: "cr_key.png" COMP; image: "cr_out.png" COMP; image: "cr_pulse.png" COMP; image: "cr_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } } /////////////////////////////////////////////////////////////////////////// //// the cursor as a bar to show where text is typed group { name: "terminology/cursor_bar"; images { image: "cr_key.png" COMP; image: "cr_bar_out.png" COMP; image: "cr_bar_pulse.png" COMP; image: "cr_bar_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_bar_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_bar_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_bar_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } } /////////////////////////////////////////////////////////////////////////// //// the cursor as an underline to show where text is typed group { name: "terminology/cursor_underline"; images { image: "cr_key.png" COMP; image: "cr_underline_out.png" COMP; image: "cr_underline_pulse.png" COMP; image: "cr_underline_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_underline_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_underline_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_underline_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } } /////////////////////////////////////////////////////////////////////////// //// an object to contain the selection tool used for selecting tabs (with //// a glow grid of terms group { name: "terminology/sel/base"; images { image: "pm_overlay.png" COMP; image: "pm_fill.png" COMP; image: "inset_shadow.png" COMP; } set { name: "bg_shadow"; image { image: "bg_shadow.png" COMP; size: 0 0 200 150; } image { image: "bg_shadow2.png" COMP; size: 200 150 400 300; } image { image: "bg_shadow3.png" COMP; size: 400 300 99999 99999; } } script { public message(Msg_Type:type, id, ...) { new r, g, b, a, v; if ((type != MSG_INT) || (id != 1)) return; v = (getarg(2) * 255) / 100; custom_state(PART:"shadow", "default", 0.0); get_state_val(PART:"shadow", STATE_COLOR, r, g, b, a); set_state_val(PART:"shadow", STATE_COLOR, r, g, b, v); set_state(PART:"shadow", "custom", 0.0); if (v < 255) set_state(PART:"fill", "translucent", 0.0); else set_state(PART:"fill", "default", 0.0); } } parts { //////////////////////////////////////////////////////////////////// // background and shadows part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "bg_shadow"; fill.smooth: 0; } } part { name: "fill"; mouse_events: 0; description { state: "default" 0.0; image.normal: "pm_fill.png"; fill { size.relative: 0.0 0.0; size.offset: 64 64; } } description { state: "translucent" 0.0; inherit: "default" 0.0; visible: 0; } } //////////////////////////////////////////////////////////////////// // content (where the grid of terms goes) part { name: "clip"; type: RECT; description { state: "default" 0.0; } } part { name: "terminology.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; } } //////////////////////////////////////////////////////////////////// // fancy stuff on top part { name: "overlay"; mouse_events: 0; description { state: "default" 0.0; image.normal: "pm_overlay.png"; color: 255 255 255 0; fill.smooth: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "overlay_shadow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "inset_shadow.png"; image.border: 5 5 7 3; image.middle: 0; fill.smooth: 0; color: 255 255 255 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } program { signal: "begin"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "overlay"; target: "overlay_shadow"; } program { signal: "end"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.3 CURRENT; target: "overlay"; target: "overlay_shadow"; } } } group { name: "terminology/sel/item"; images { image: "bg_bevel.png" COMP; image: "bg_glint.png" COMP; image: "pm_shadow.png" COMP; image: "cr_glow.png" COMP; image: "bg_led_glow.png" COMP; image: "bg_led_base.png" COMP; image: "bg_led.png" COMP; image: "bg_led_strobe.png" COMP; } set { name: "bg_shine"; image { image: "bg_shine5.png" COMP; size: 0 0 256 120; } image { image: "bg_shine4.png" COMP; size: 256 120 512 240; } image { image: "bg_shine3.png" COMP; size: 512 240 1024 480; } image { image: "bg_shine2.png" COMP; size: 1024 480 2048 960; } image { image: "bg_shine.png" COMP; size: 2048 960 99999 99999; } } parts { //////////////////////////////////////////////////////////////////// // base background and selection image part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "terminology.content"; rel2.to: "terminology.content"; color: 128 128 128 255; } description { state: "selected" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "terminology.content"; rel1.offset: -5 -5; rel2.offset: 4 4; image.normal: "pm_shadow.png"; image.border: 64 64 64 64; image.border_scale_by: 0.1; color: 255 255 255 128; fill.smooth: 0; } description { state: "selected" 0.0; inherit: "default" 0.0; rel1.offset: -40 -40; rel2.offset: 39 39; image.border_scale_by: 1.0; color: 255 255 255 255; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "terminology.content"; rel2.to: "terminology.content"; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 0; } description { state: "selected" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } //////////////////////////////////////////////////////////////////// // swallowed terminal content + bg inside it part { name: "base"; type: RECT; clip_to: "clip"; description { state: "default" 0.0; color: 32 32 32 255; rel1.to: "terminology.content"; rel2.to: "terminology.content"; } } part { name: "terminology.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; } description { state: "selected" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } program { signal: "selected"; source: "terminology"; action: STATE_SET "selected" 0.0; transition: DECELERATE 0.2 CURRENT; target: "terminology.content"; target: "terminology.label"; target: "shadow"; target: "clip"; target: "glow"; } program { signal: "selected,start"; source: "terminology"; action: STATE_SET "selected" 0.0; target: "terminology.content"; target: "terminology.label"; target: "shadow"; target: "clip"; target: "glow"; } program { signal: "unselected"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.4 CURRENT; target: "terminology.content"; target: "terminology.label"; target: "shadow"; target: "clip"; target: "glow"; } //////////////////////////////////////////////////////////////////// // fancy stuff over the top of the terminal for shading and labelling part { name: "overlay"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "terminology.content"; image.normal: "pm_overlay.png"; fill.smooth: 0; } } part { name: "bevel"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "terminology.content"; image.normal: "bg_bevel.png"; image.border: 3 3 3 3; image.middle: 0; fill.smooth: 0; } } part { name: "terminology.label"; type: TEXT; mouse_events: 0; effect: GLOW; scale: 1; description { state: "default" 0.0; rel1.to: "terminology.content"; rel2.to: "terminology.content"; color: 51 153 255 255; color2: 51 153 255 24; color3: 51 153 255 18; align: 0.5 1.0; text { font: "Sans"; size: 10; align: 0.5 1.0; min: 0 1; } } description { state: "selected" 0.0; inherit: "default" 0.0; color: 255 255 255 255; color2: 51 153 255 128; color3: 51 153 255 20; } } part { name: "clip2"; type: RECT; description { state: "default" 0.0; rel1.to: "terminology.content"; rel2.to: "terminology.content"; } } //////////////////////////////////////////////////////////////////// // fancy stuff on top part { name: "glint"; mouse_events: 0; clip_to: "clip2"; description { state: "default" 0.0; fixed: 1 1; min: 79 5; max: 79 5; rel1 { to: "terminology.content"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "terminology.content"; relative: 1.0 0.0; offset: -1 0; } image.normal: "bg_glint.png"; } } part { name: "shine"; mouse_events: 0; clip_to: "clip2"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "terminology.content"; rel2.to: "terminology.content"; image.normal: "bg_shine"; fill.smooth: 0; align: 0.5 0.0; aspect: (256/120) (256/120); aspect_preference: HORIZONTAL; } } //////////////////////////////////////////////////////////////////// // visual bell - spinning red siren light part { name: "bell_glow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell_base"; rel2.to: "bell_base"; min: 200 200; fill.smooth: 0; image.normal: "bg_led_glow.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bell_base"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; min: 32 32; max: 32 32; rel1.to: "terminology.content"; rel2.to: "terminology.content"; align: 1.0 1.0; image.normal: "bg_led_base.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bell"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell_base"; rel2.to: "bell_base"; image.normal: "bg_led.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bell_strobe"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; visible: 0; color: 255 255 255 0; rel1.to: "bell"; rel2.to: "bell"; image.normal: "bg_led_strobe.png"; map { on: 1; smooth: 1; rotation.center: "bell"; } } description { state: "spin" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; map.rotation.z: 36.0; } description { state: "spin_done" 0.0; inherit: "spin" 0.0; map.rotation.z: 720.0; } description { state: "spin_done2" 0.0; inherit: "spin" 0.0; map.rotation.z: 1440.0; } } program { signal: "bell"; source: "terminology"; action: STATE_SET "default" 0.0; target: "bell_base"; target: "bell"; target: "bell_strobe"; target: "bell_glow"; after: "bell"; } program { name: "bell"; action: STATE_SET "visible" 0.0; target: "bell_base"; target: "bell_glow"; after: "bell2"; } program { name: "bell2"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.1; target: "bell"; target: "bell_glow"; after: "bell3"; } program { name: "bell3"; action: STATE_SET "spin" 0.0; transition: LINEAR 0.1; target: "bell_strobe"; after: "bell4.2"; } program { name: "bell4.2"; action: STATE_SET "spin_done" 0.0; transition: LINEAR 0.9; target: "bell_strobe"; after: "bell4.3"; } program { name: "bell4.3"; action: STATE_SET "spin_done2" 0.0; transition: LINEAR 1.0; target: "bell_strobe"; after: "bell4.4"; } program { name: "bell4.4"; action: STATE_SET "spin_done" 0.0; target: "bell_strobe"; after: "bell4.3"; } } } /////////////////////////////////////////////////////////////////////////// //// an object overlayd on text that is a link group { name: "terminology/link"; images { image: "lk_bottom.png" COMP; image: "lk_left.png" COMP; image: "lk_right.png" COMP; } parts { part { name: "bottom"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "lk_bottom.png"; image.border: 9 9 0 0; align: 0.5 1.0; min: 20 8; rel1.offset: -6 0; rel1.relative: 0.0 1.0; rel2.offset: 5 0; color: 51 153 255 255; fill.smooth: 0; } } part { name: "l"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "lk_left.png"; align: 0.0 1.0; min: 4 4; rel1.offset: 16 -1; rel1.relative: 0.0 1.0; rel2.offset: 16 -1; rel2.relative: 0.0 1.0; color: 51 153 255 0; } description { state: "out" 0.0; fixed: 1 1; inherit: "default" 0.0; min: 16 16; rel1.offset: -10 -1; rel2.offset: -10 -1; color: 51 153 255 255; } description { state: "out2" 0.0; fixed: 1 1; inherit: "default" 0.0; min: 32 32; rel1.offset: -26 -1; rel2.offset: -26 -1; color: 51 153 255 0; } } part { name: "r"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "lk_right.png"; align: 1.0 1.0; min: 4 4; rel1.offset: -15 0; rel1.relative: 1.0 1.0; rel2.offset: -15 0; rel2.relative: 1.0 1.0; color: 51 153 255 0; } description { state: "out" 0.0; fixed: 1 1; inherit: "default" 0.0; min: 16 16; rel1.offset: 9 -1; rel2.offset: 9 -1; color: 51 153 255 255; } description { state: "out2" 0.0; fixed: 1 1; inherit: "default" 0.0; min: 32 32; rel1.offset: 25 -1; rel2.offset: 25 -1; color: 51 153 255 0; } } part { name: "event"; type: RECT; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } programs { program { name: "show"; signal: "show"; source: ""; action: STATE_SET "out" 0.0; transition: LINEAR 0.3; target: "l"; target: "r"; after: "show2"; } program { name: "show2"; action: STATE_SET "out2" 0.0; transition: LINEAR 0.3; target: "l"; target: "r"; after: "show3"; } program { name: "show3"; action: STATE_SET "default" 0.0; target: "l"; target: "r"; after: "show"; } } } } ////////////////////////////////////////////////////////////////////////////// //// the multimedia controls group { name: "terminology/mediabusy"; images { image: "media_busy_knob.png" COMP; image: "media_busy_spinner.png" COMP; image: "media_busy_progress.png" COMP; } script { public message(Msg_Type:type, id, ...) { if ((type == MSG_FLOAT) && (id == 1)) { new Float:val; val = getfarg(2); // val 0.0 -. 1.0 percentage custom_state(PART:"progress", "default", 0.0); set_state_val(PART:"progress", STATE_REL2, val, 1.0); set_state(PART:"progress", "custom", 0.0); } } } parts { part { name: "progress_area"; type: SPACER; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel2.to_x: "knob"; rel2.relative: 0.0 1.0; min: 10 40; max: 99999 40; align: 0.0 1.0; } } part { name: "progress"; mouse_events: 0; clip_to: "fade"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "progress_area"; rel2.to: "progress_area"; rel2.relative: 0.0 1.0; color: 51 153 255 255; image.normal: "media_busy_progress.png"; image.border: 5 5 0 0; min: 10 40; align: 0.0 1.0; } } part { name: "fade"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "knob"; clip_to: "fade"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "media_busy_knob.png"; min: 40 40; max: 40 40; align: 1.0 1.0; } } part { name: "knob_spinner"; clip_to: "fade"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; color: 51 153 255 255; rel1.to: "knob"; rel2.to: "knob"; image.normal: "media_busy_spinner.png"; map { on: 1; smooth: 1; rotation.center: "knob"; } } description { state: "spin" 0.0; inherit: "default" 0.0; visible: 1; map.rotation.z: 360; } } } programs { program { signal: "busy"; source: "terminology"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.5; target: "fade"; } program { name: "spin1"; signal: "busy"; source: "terminology"; action: STATE_SET "spin" 0.0; transition: LINEAR 0.5; target: "knob_spinner"; after: "spin2"; } program { name: "spin2"; action: STATE_SET "default" 0.0; target: "knob_spinner"; after: "spin1"; } // program { name: "downloading"; // signal: "busy"; // source: "terminology"; // action: STATE_SET "default" 0.0; // } program { signal: "done"; source: "terminology"; action: STATE_SET "default" 0.0; transition: DECELERATE 1.5; target: "fade"; } } } /////////////////////////////////////////////////////////////////////////// //// the multimedia controls group { name: "terminology/mediactrl"; images { image: "media_bg.png" COMP; image: "media_play.png" COMP; image: "media_stop.png" COMP; image: "media_pause.png" COMP; image: "media_line.png" COMP; image: "media_knob_vol.png" COMP; image: "media_knob_pos.png" COMP; } parts { part { name: "media_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "media_bg"; rel2.to: "media_bg"; } } part { name: "media_bg"; clip_to: "media_clip"; description { state: "default" 0.0; image.normal: "media_bg.png"; image.border: 11 11 11 11; min: 24 24; max: 24 24; align: 1.0 0.0; } description { state: "expanded" 0.0; inherit: "default" 0.0; min: 216 24; max: 216 24; } } part { name: "play"; mouse_events: 1; repeat_events: 1; clip_to: "media_clip"; description { state: "default" 0.0; image.normal: "media_pause.png"; max: 24 24; align: 1.0 0.0; } description { state: "paused" 0.0; inherit: "default" 0.0; image.normal: "media_play.png"; } } part { name: "stop"; mouse_events: 1; repeat_events: 1; clip_to: "media_clip"; description { state: "default" 0.0; image.normal: "media_stop.png"; max: 24 24; rel1.to: "play"; rel2.to: "play"; rel1.offset: -16 0; rel2.offset: -16 0; } } part { name: "posline"; mouse_events: 1; repeat_events: 1; clip_to: "media_clip"; description { state: "default" 0.0; image.normal: "media_line.png"; image.border: 15 15 0 0; min: 90 14; max: 90 14; rel1.to: "stop"; rel2.to: "stop"; rel1.offset: -25 0; rel2.offset: -90 0; } } part { name: "terminology.posdrag"; mouse_events: 0; repeat_events: 1; clip_to: "media_clip"; dragable { confine: "posline"; x: 1 1 0; y: 0 0 0; } description { state: "default" 0.0; image.normal: "media_knob_pos.png"; min: 14 14; max: 14 14; } description { state: "muted" 0.0; visible: 0; } } part { name: "volline"; mouse_events: 1; repeat_events: 1; clip_to: "media_clip"; description { state: "default" 0.0; image.normal: "media_line.png"; image.border: 15 15 0 0; min: 60 14; max: 60 14; rel1 { to: "posline"; offset: -25 0; } rel2 { to: "posline"; relative: 0.0 1.0; offset: -60 0; } } } part { name: "terminology.voldrag"; type: IMAGE; mouse_events: 0; repeat_events: 1; clip_to: "media_clip"; dragable { confine: "volline"; x: 1 1 0; y: 0 0 0; } description { state: "default" 0.0; image.normal: "media_knob_vol.png"; min: 14 14; max: 14 14; } description { state: "muted" 0.0; visible: 0; } } } programs { program { signal: "mouse,in"; source: "media_bg"; action: STATE_SET "expanded" 0.0; transition: SINUSOIDAL 0.4 CURRENT; target: "media_bg"; } program { signal: "mouse,out"; source: "media_bg"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.4 CURRENT; target: "media_bg"; } program { signal: "mouse,up,*"; source: "play"; filter: "play" "default"; action: SIGNAL_EMIT "pause" ""; } program { signal: "mouse,up,1"; source: "play"; filter: "play" "paused"; action: SIGNAL_EMIT "play" ""; } program { signal: "mouse,up,1"; source: "stop"; action: SIGNAL_EMIT "stop" ""; } program { signal: "pause,set"; source: "terminology"; action: STATE_SET "paused" 0.0; target: "play"; } program { signal: "play,set"; source: "terminology"; action: STATE_SET "default" 0.0; target: "play"; } program { signal: "mute,set"; source: "terminology"; action: STATE_SET "muted" 0.0; target: "terminology.voldrag"; } program { signal: "mute,unset"; source: "terminology"; action: STATE_SET "default" 0.0; target: "terminology.voldrag"; } program { signal: "mouse,down,1"; source: "posline"; filter: "terminology.posdrag" "default"; script { new x, y, w, h, m_x, m_y; new Float:pos; get_geometry(PART:"posline", x, y, w, h); get_mouse(m_x, m_y); pos = m_x - x; pos = pos / w; set_drag(PART:"terminology.posdrag", pos, 0.0); emit("pos,drag,start", ""); } } program { signal: "mouse,up,1"; source: "posline"; action: SIGNAL_EMIT "pos,drag,stop" ""; } program { signal: "mouse,move"; source: "posline"; script { new x, y, w, h, m_x, m_y; new Float:pos; if (!get_mouse_buttons()) return; get_geometry(PART:"posline", x, y, w, h); get_mouse(m_x, m_y); pos = m_x - x; pos = pos / w; set_drag(PART:"terminology.posdrag", pos, 0.0); emit("pos,drag", ""); } } program { signal: "mouse,down,1"; source: "volline"; filter: "terminology.voldrag" "default"; script { new x, y, w, h, m_x, m_y; new Float:pos; get_geometry(PART:"volline", x, y, w, h); get_mouse(m_x, m_y); pos = m_x - x; pos = pos / w; set_drag(PART:"terminology.voldrag", pos, 0.0); emit("vol,drag", ""); } } program { signal: "mouse,move"; source: "volline"; script { new x, y, w, h, m_x, m_y; new Float:pos; if (!get_mouse_buttons()) return; get_geometry(PART:"volline", x, y, w, h); get_mouse(m_x, m_y); pos = m_x - x; pos = pos / w; set_drag(PART:"terminology.voldrag", pos, 0.0); emit("vol,drag", ""); } } } } #define ICON(Grp, Img) \ group { name: "elm/icon/"##Grp##"/default"; min: 10 10; max: 80 80; \ images.image: Img COMP; \ parts { part { name: "base"; description { state: "default" 0.0; \ aspect: 1.0 1.0; aspect_preference: BOTH; image.normal: Img; \ } } } } ICON("new", "icon_new.png"); ICON("split-h", "icon_split_h.png"); ICON("split-v", "icon_split_v.png"); ICON("mini-view", "icon_miniview.png"); ICON("close", "icon_close.png"); ICON("copy", "icon_copy.png"); ICON("paste", "icon_paste.png"); ICON("settings", "icon_settings.png"); ICON("about", "icon_about.png"); #undef ICON /////////////////////////////////////////////////////////////////////////// //// the about box content image group { name: "terminology/about"; images { image: "ab_base.png" COMP; image: "ab_shell.png" COMP; } styles { style { name: "aboutstyle"; base: "font=Sans font_size=8 color=#3f1 style=glow glow2_color=#3f13 glow_color=#3f11 wrap=word"; tag: "b" "+ color=#8f8 glow2_color=#3f15 glow_color=#3f12"; } } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: (39/198) (27/198); to: "shell"; } rel2 { relative: (151/198) (115/198); to: "shell"; } image.normal: "ab_base.png"; } } part { name: "baseclip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; rel1.to: "base"; rel2.to: "base"; } } part { name: "terminology.text"; type: TEXTBLOCK; clip_to: "baseclip"; mouse_events: 1; scale: 1; description { state: "default" 0.0; fixed: 1 1; align: 0.5 0.0; max: 10000 10000; rel1 { to: "base"; relative: 0.08 1.0; } rel2 { to: "base"; relative: 0.97 1.0; } text { style: "aboutstyle"; text: "Hello world.
This is Terminology, your friendly neighbourhood terminal.

This needs more text to test vertical scrolling to see if the animation works right.
I hope this will be enough now."; min: 0 1; } } description { state: "up" 0.0; inherit: "default" 0.0; align: 0.5 1.0; rel1.relative: 0.08 0.0; rel2.relative: 0.97 0.0; } } part { name: "shell"; scale: 1; description { state: "default" 0.0; max: 198 198; aspect: 1.0 1.0; aspect_preference: BOTH; image.normal: "ab_shell.png"; } } } programs { program { signal: "begin"; source: "terminology"; action: ACTION_STOP; target: "show"; target: "show2"; after: "begin2"; } program { name: "begin2"; action: STATE_SET "default" 0.0; target: "terminology.text"; after: "show"; } program { name: "show"; action: STATE_SET "up" 0.0; transition: LINEAR 60.0; target: "terminology.text"; after: "show2"; } program { name: "show2"; action: STATE_SET "default" 0.0; target: "terminology.text"; after: "show"; } } } /////////////////////////////////////////////////////////////////////////// //// used in the font selection dialog to give a base for black text //// previews so they are always visible group { name: "terminology/fontpreview"; images { image: "fn_shadow.png" COMP; } parts { part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; rel1 { offset: -2 -1; to: "base"; } rel2 { offset: 1 2; to: "base"; } image { normal: "fn_shadow.png"; border: 5 5 5 5; } fill.smooth: 0; } } part { name: "base"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: BG_COL; rel1.offset: 2 2; rel2.offset: -3 -3; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; color: 255 255 255 255; } } part { name: "terminology.text.preview"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1 { to: "base"; offset: 1 1; } rel2 { to: "base"; offset: -2 -2; } } } } } }