diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am index 1e534f12..a746a8cf 100644 --- a/data/themes/Makefile.am +++ b/data/themes/Makefile.am @@ -11,6 +11,7 @@ EDJE_FLAGS = $(EDJE_FLAGS_VERBOSE_$(V)) -id $(top_srcdir)/data/themes/images -fd filesdir = $(pkgdatadir)/themes files_DATA = \ default.edj \ +default-nausea.edj \ default-spin.edj \ mild.edj \ black.edj \ @@ -23,7 +24,7 @@ am__v_EDJ_ = $(am__v_EDJ_$(AM_DEFAULT_VERBOSITY)) am__v_EDJ_0 = @echo " EDJ " $@; -EXTRA_DIST = default.edc default-spin.edc mild.edc black.edc mustang.edc default_colors.in.edc +EXTRA_DIST = default.edc default-spin.edc default-nausea.edc mild.edc black.edc mustang.edc default_colors.in.edc default.edj: Makefile default.edc default_colors.in.edc $(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \ @@ -35,8 +36,15 @@ default-spin.edj: Makefile default-spin.edc default_colors.in.edc $(top_srcdir)/data/themes/default-spin.edc \ $(top_builddir)/data/themes/default-spin.edj +default-nausea.edj: Makefile default-nausea.edc default_colors.in.edc + $(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \ + $(top_srcdir)/data/themes/default-nausea.edc \ + $(top_builddir)/data/themes/default-nausea.edj + mild.edj: Makefile mild.edc default_colors.in.edc $(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \ + $(top_srcdir)/data/themes/mild.edc \ + $(top_builddir)/data/themes/mild.edj black.edj: Makefile black.edc mild.edc default_colors.in.edc $(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/data/themes/default-nausea.edc b/data/themes/default-nausea.edc new file mode 100644 index 00000000..6394df39 --- /dev/null +++ b/data/themes/default-nausea.edc @@ -0,0 +1,3529 @@ +collections { + +////////////////////////////////////////////////////////////////////////////// + //// the background and general container for the terminal + group { name: "terminology/core"; + parts { + //////////////////////////////////////////////////////////////////// + // background handling + part { name: "fade"; type: RECT; + description { state: "default" 0.0; + } + description { state: "translucent" 0.0; + inherit: "default" 0.0; + color: 255 255 255 128; + } + } + program { + signal: "translucent,on"; source: "terminology"; + action: STATE_SET "translucent" 0.0; + target: "fade"; + } + program { + signal: "translucent,off"; source: "terminology"; + action: STATE_SET "default" 0.0; + target: "fade"; + } + 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"; + } + + //////////////////////////////////////////////////////////////////// + // actual text grid for chars, cursors, selectiond etc. goes here + part { name: "terminology.content"; type: SWALLOW; + description { state: "default" 0.0; + rel1.offset: 1 1; + rel2.offset: -2 -2; + } + } + } + } + + //// the background and general container for the terminal + group { name: "terminology/background"; + images { + image: "bg_bevel.png" COMP; + image: "bg_shine.png" COMP; + image: "bg_glint.png" COMP; + image: "bg_glow_in.png" COMP; + image: "bg_shadow.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; + } + sounds { + sample { name: "bell" LOSSY 64; + source: "bell.wav"; + } + } + parts { + //////////////////////////////////////////////////////////////////// + // background handling + part { name: "shadow"; + mouse_events: 0; + description { state: "default" 0.0; + image.normal: "bg_shadow.png"; + fill.smooth: 0; + visible: 0; + } + description { state: "translucent" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "base"; type: RECT; + mouse_events: 1; + description { state: "default" 0.0; + color: 32 32 32 255; + } + description { state: "translucent" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + program { + signal: "translucent,on"; source: "terminology"; + action: STATE_SET "translucent" 0.0; + target: "base"; + target: "shadow"; + } + program { + signal: "translucent,off"; source: "terminology"; + action: STATE_SET "default" 0.0; + target: "base"; + target: "shadow"; + } + + //////////////////////////////////////////////////////////////////// + // 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; + } + } + 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; + } + } + 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; + rel2.relative: 1.0 0.0; + rel2.offset: -3 2; + 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; + } + } + 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: "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"; + } + + //////////////////////////////////////////////////////////////////// + // 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 5 3; + image.middle: 0; + fill.smooth: 0; + } + } + part { name: "glintclip"; type: RECT; + description { state: "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: "shine"; + mouse_events: 0; + description { state: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: -1 -1; + image.normal: "bg_shine.png"; + fill.smooth: 0; + align: 0.5 0.0; + aspect: (255/120) (255/120); + aspect_preference: HORIZONTAL; + color: 255 255 255 64; + } + description { state: "focused" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + program { + signal: "focus,in"; source: "terminology"; + action: STATE_SET "focused" 0.0; + target: "glint"; + target: "glow"; + target: "shine"; + after: "focus_in2"; + } + 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"; + } + + //////////////////////////////////////////////////////////////////// + // visual bell - spinning red overlay of death + part { name: "bell_proxy"; type: PROXY; + mouse_events: 0; + description { state: "default" 0.0; + source: "terminology.content"; + visible: 0; + proxy.source_visible: 1; + rel1.to: "terminology.content"; + rel2.to: "terminology.content"; + map { + on: 1; + perspective_on: 1; + rotation.y: 0; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + proxy.source_visible: 0; + visible: 1; + } + description { state: "rotated1" 0.0; + inherit: "visible" 0.0; + rel1.offset: 20 20; + rel1.to: ""; + rel2.offset: 20 20; + rel2.to: ""; + map.rotation.y: 20; + } + description { state: "rotated2" 0.0; + inherit: "visible" 0.0; + rel1.offset: -20 -20; + rel1.to: ""; + rel2.offset: -20 -20; + rel2.to: ""; + map.rotation.y: -20; + } + } + program { + signal: "bell"; source: "terminology"; + action: PLAY_SAMPLE "bell" 1.0; + } + program { + signal: "bell"; source: "terminology"; + action: STATE_SET "visible" 0.0; + target: "bell_proxy"; + after: "bell_proxy2"; + } + program { name: "bell_proxy2"; + action: STATE_SET "rotated1" 0.0; + transition: SINUSOIDAL 0.1 CURRENT; + target: "bell_proxy"; + after: "bell_proxy3"; + } + program { name: "bell_proxy3"; + action: STATE_SET "rotated2" 0.0; + transition: SINUSOIDAL 0.1 CURRENT; + target: "bell_proxy"; + after: "bell_proxy4"; + } + program { name: "bell_proxy4"; + action: STATE_SET "rotated1" 0.0; + transition: SINUSOIDAL 0.1 CURRENT; + target: "bell_proxy"; + after: "bell_proxy_end"; + } + program { name: "bell_proxy_end"; + action: STATE_SET "default" 0.0; + target: "bell_proxy"; + } + + //////////////////////////////////////////////////////////////////// + // 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 5 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.png"; + fill.smooth: 0; + align: 0.5 0.0; + aspect: (255/120) (255/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_fill"; + 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_fill"; + 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_fill"; + 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_fill"; + 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_fill"; + 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_fill"; + target: "popmedia_overlay"; + target: "popmedia_bevel"; + target: "popmedia_glint"; + target: "popmedia_glintclip"; + target: "popmedia_shine"; + } + } + } + + group { name: "terminology/base"; + 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: "cmdback"; type: RECT; + clip_to: "cmdclip"; + description { state: "default" 0.0; + color: 255 255 255 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; + } + } + 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 51 153 255 128 +#define PATCOL2 51 153 255 144 +#define OUTCOL 51 153 255 128 +#define OUTCOL2 51 153 255 255 + + 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: 40 40; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: PATCOL2; + } + } + 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: 40 40; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: PATCOL2; + } + } + 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: 40 40; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: PATCOL2; + } + } + + // 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; + visible: 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; + } + } + 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; + } + } + + // 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + 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; + } + description { state: "pulse" 0.0; + inherit: "default" 0.0; + color: OUTCOL2; + } + } + program { + signal: "mode,bottomfull"; source: "terminology"; + action: STATE_SET "bottomfull" 0.0; + TARGETS; + } + +#define SELPULSE \ +target: "background_top"; \ +target: "background_middle"; \ +target: "background_bottom"; \ +target: "0.left"; \ +target: "0.right"; \ +target: "0.top"; \ +target: "0.bottom"; \ +target: "1.left"; \ +target: "1.right"; \ +target: "1.top"; \ +target: "1.bottom"; \ +target: "1.left2"; \ +target: "1.right2"; \ +target: "1.top2"; \ +target: "1.bottom2"; \ +target: "2.topkink"; \ +target: "2.bottomkink"; \ +target: "2.left"; \ +target: "2.right"; \ +target: "2.top2"; \ +target: "2.top"; \ +target: "2.bottom"; \ +target: "2.bottom2"; \ +target: "3.bottomkink"; \ +target: "3.left"; \ +target: "3.right"; \ +target: "3.top"; \ +target: "3.bottom"; \ +target: "3.bottom2"; \ +target: "4.topkink"; \ +target: "4.left"; \ +target: "4.right"; \ +target: "4.top2"; \ +target: "4.top"; \ +target: "4.bottom" + + program { name: "selpulse"; + signal: "show"; source: ""; + action: STATE_SET "pulse" 0.0; + transition: SINUSOIDAL 0.5; + SELPULSE; + after: "selpulse2"; + } + program { name: "selpulse2"; + action: STATE_SET "default" 0.0; + transition: SINUSOIDAL 1.0; + SELPULSE; + after: "selpulse"; + } + + // 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; + } + program { name: "key-down2"; + action: PLAY_SAMPLE "key-tap2" 1.0; + } + program { name: "key-down3"; + action: PLAY_SAMPLE "key-tap3" 1.0; + } + program { name: "key-down4"; + action: PLAY_SAMPLE "key-tap4" 1.0; + } + program { name: "key-down5"; + action: PLAY_SAMPLE "key-tap5" 1.0; + } + 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: "bg_shadow.png" COMP; + image: "inset_shadow.png" COMP; + } + parts { + //////////////////////////////////////////////////////////////////// + // background and shadows + part { name: "shadow"; + mouse_events: 0; + description { state: "default" 0.0; + image.normal: "bg_shadow.png"; + 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; + } + } + program { + signal: "translucent,on"; source: "terminology"; + action: STATE_SET "translucent" 0.0; + target: "fill"; + } + program { + signal: "translucent,off"; source: "terminology"; + action: STATE_SET "default" 0.0; + target: "fill"; + } + + //////////////////////////////////////////////////////////////////// + // 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_shine.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; + } + 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 5 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.png"; + fill.smooth: 0; + align: 0.5 0.0; + aspect: (255/120) (255/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; + 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; + 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; + 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; + 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; + 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; + 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; + 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 "default" 0.0; + 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: 0; + 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: 1; + 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: 0; + 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: 1; + 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"; + } + } + } + +#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("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; + 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"; + 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: 255 255 255 255; + 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; + } + } + } + } + } +}