collections { group { name: "rage/core"; images.image: "pm_fill.png" COMP; images.image: "vg1.png" COMP; images.image: "vg2.png" COMP; images.image: "shadow_circle_horiz.png" COMP; images.image: "shadow_circle_vert.png" COMP; images.image: "icon_exclamation.png" COMP; images.image: "icon_eject.png" COMP; images.image: "icon_mute.png" COMP; images.image: "icon_volume.png" COMP; images.image: "icon_prev.png" COMP; images.image: "icon_next.png" COMP; images.image: "icon_rewind.png" COMP; images.image: "icon_forward.png" COMP; images.image: "icon_stop.png" COMP; images.image: "icon_pause.png" COMP; images.image: "icon_play.png" COMP; images.image: "icon_refresh.png" COMP; images.image: "icon_arrow_right.png" COMP; images.image: "icon_spanner.png" COMP; images.image: "icon_fullscreen.png" COMP; images.image: "icon_unfullscreen.png" COMP; images.image: "icon_close.png" COMP; images.image: "win_shadow.png" COMP; images.image: "speaker-base.png" COMP; images.image: "speaker-over.png" COMP; images.image: "speaker-shadow.png" COMP; images.image: "tv-bg.png" COMP; images.image: "tv-over.png" COMP; images.image: "r-0.png" COMP; images.image: "r-1.png" COMP; images.image: "r-2.png" COMP; images.image: "r-3.png" COMP; images.image: "r-4.png" COMP; script { public pos_visible; public pos_timer; public drag_is_down; public novideo; public pos_timeout(val) { set_int(pos_visible, 0); set_int(pos_timer, 0); stop_program(PROGRAM:"posshow"); run_program(PROGRAM:"poshide"); if (!get_int(novideo)) { stop_program(PROGRAM:"cbarshow"); run_program(PROGRAM:"cbarhide"); } } } parts { //// -- BACKGROUND part { name: "bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 64 64 64 255; } } part { name: "fill"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; image.normal: "pm_fill.png"; color: 56 56 56 255; fill { size.relative: 0.0 0.0; size.offset: 256 256; } } } part { name: "vg1"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel2.relative: 1.0 0.0; rel2.to: "vg2"; image.normal: "vg1.png"; color: 64 64 64 255; fill { size.relative: 0.0 1.0; size.offset: 256 0; smooth: 0; } } description { state: "focused" 0.0; inherit: "default" 0.0; color: 32 32 32 255; } } part { name: "vg2"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; align: 0.5 1.0; image.normal: "vg2.png"; color: 64 64 64 255; max: 99999 32; fill { size.relative: 0.0 1.0; size.offset: 256 0; smooth: 0; } } } program { signal: "state,win,focused"; source: "rage"; action: STATE_SET "focused" 0.0; target: "vg1"; } program { signal: "state,win,unfocused"; source: "rage"; action: STATE_SET "default" 0.0; target: "vg1"; } part { name: "shadow"; type: RECT; description { state: "default" 0.0; visible: 0; } description { state: "video" 0.0; inherit: "default" 0.0; visible: 1; } description { state: "novideo" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "sh_t"; nomouse; scale: 1; clip_to: "shadow"; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; rel2.relative: 1.0 0.0; image.normal: "shadow_circle_horiz.png"; min: 0 32; color: 255 255 255 128; } } part { name: "sh_b"; nomouse; scale: 1; clip_to: "shadow"; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; rel1.relative: 0.0 1.0; image.normal: "shadow_circle_horiz.png"; min: 0 32; color: 255 255 255 128; } } part { name: "sh_l"; nomouse; scale: 1; clip_to: "shadow"; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; rel2.relative: 0.0 1.0; image.normal: "shadow_circle_vert.png"; min: 32 0; color: 255 255 255 128; } } part { name: "sh_r"; nomouse; scale: 1; clip_to: "shadow"; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; rel1.relative: 1.0 0.0; image.normal: "shadow_circle_vert.png"; min: 32 0; color: 255 255 255 128; } } part { name: "black"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 255; visible: 1; } } program { signal: "state,win,fullscreen"; source: "rage"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.2; target: "black"; } program { signal: "state,win,normal"; source: "rage"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0; target: "black"; } part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; color: 0 0 0 255; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 32 32 32 255; } description { state: "play" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "exclam"; mouse_events: 0; scale: 1; clip_to: "novid_clip"; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; fixed: 1 1; image.normal: "icon_exclamation.png"; max: 24 24; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } description { state: "play" 0.0; inherit: "default" 0.0; visible: 0; } } program { signal: "action,newvid"; source: "rage"; action: STATE_SET "default" 0.0; target: "exclam"; target: "base"; after: "newvid2"; } program { name: "newvid2"; action: STATE_SET "visible" 0.0; in: 2.0 0.0; transition: SINUSOIDAL 1.0; target: "exclam"; target: "base"; } program { signal: "action,frame"; source: "rage"; action: STATE_SET "play" 0.0; target: "exclam"; target: "base"; } part { name: "rage.content"; type: SWALLOW; description { state: "default" 0.0; visible: 0; } description { state: "novideo" 0.0; visible: 0; } description { state: "video" 0.0; visible: 1; } } part { name: "controlbar_shadow_clip"; type: RECT; clip_to: "controlbar_clip"; description { state: "default" 0.0; rel2.relative: 1.0 0.0; rel2.to_y: "controlbar"; } } part { name: "controlbar_shadow"; mouse_events: 0; scale: 1; clip_to: "controlbar_shadow_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "controlbar"; rel2.to: "controlbar"; rel2.relative: 1.0 0.0; image.normal: "shadow_circle_horiz.png"; min: 0 32; color: 255 255 255 128; } } part { name: "prefsize"; type: SPACER; scale: 1; description { state: "default" 0.0; rel2.to: "controlbar"; rel2.relative: 1.0 0.0; } description { state: "pref" 0.0; inherit: "default" 0.0; min: 160 160; } } program { signal: "pref,size,on"; source: "rage"; action: STATE_SET "pref" 0.0; target: "prefsize"; } program { signal: "pref,size,off"; source: "rage"; action: STATE_SET "default" 0.0; target: "prefsize"; } part { name: "novid_clip"; type: RECT; description { state: "default" 0.0; } description { state: "novideo" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "speaker_clip"; type: RECT; description { state: "default" 0.0; visible: 0; } description { state: "novideo" 0.0; inherit: "default" 0.0; visible: 1; } description { state: "video" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "speaker_bg"; type: RECT; clip_to: "speaker_clip"; description { state: "default" 0.0; color: 64 64 64 255; } } part { name: "speaker_base"; type: RECT; clip_to: "speaker_clip"; description { state: "default" 0.0; rel2.to: "controlbar"; rel2.relative: 1.0 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; max: 160 160; color: 32 32 32 255; } } part { name: "speaker_cone"; clip_to: "speaker_clip"; description { state: "default" 0.0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; image.normal: "speaker-base.png"; } } part { name: "art_clip"; type: RECT; clip_to: "speaker_clip"; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; rel1.relative: -0.5 -0.5; rel2.relative: 1.5 1.5; fixed: 1 1; aspect: 1.0 1.0; aspect_preference: BOTH; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; visible: 1; color: 255 255 255 255; } } part { name: "art_clip2"; type: RECT; clip_to: "art_clip"; description { state: "default" 0.0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; fixed: 1 1; } } part { name: "rage.art"; type: SWALLOW; mouse_events: 0; clip_to: "art_clip2"; description { state: "default" 0.0; rel1.to: "art_clip"; rel2.to: "art_clip"; } } part { name: "speaker_shadow"; clip_to: "speaker_clip"; description { state: "default" 0.0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; image.normal: "speaker-shadow.png"; color: 255 255 255 128; } } part { name: "speaker_cover"; clip_to: "speaker_clip"; description { state: "default" 0.0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; image.normal: "speaker-over.png"; color: 64 64 64 255; } } program { signal: "state,novideo"; source: "rage"; action: STATE_SET "novideo" 0.0; target: "speaker_clip"; target: "shadow"; target: "statusloc"; target: "rage.content"; } program { signal: "state,default"; source: "rage"; action: STATE_SET "default" 0.0; target: "speaker_clip"; target: "shadow"; target: "statusloc"; target: "rage.content"; } program { signal: "state,video"; source: "rage"; action: STATE_SET "video" 0.0; target: "speaker_clip"; target: "shadow"; target: "statusloc"; target: "rage.content"; } program { signal: "state,novideo"; source: "rage"; script { set_int(novideo, 1); } } program { signal: "state,video"; source: "rage"; script { set_int(novideo, 0); } } program { signal: "action,newvid"; source: "rage"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.2; target: "art_clip"; } program { signal: "state,noart"; source: "rage"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.3; target: "art_clip"; } program { signal: "state,art"; source: "rage"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "art_clip"; } part { name: "rage.gesture"; type: SWALLOW; description { state: "default" 0.0; rel2.to_y: "controlbar"; rel2.relative: 1.0 0.0; } } part { name: "rage.browser"; type: SWALLOW; description { state: "default" 0.0; rel1.relative: 1.0 0.0; rel1.offset: 40 0; rel2.relative: 2.0 0.0; rel2.offset: -41 -1; rel2.to_y: "controlbar"; fixed: 1 1; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 0.0; color: 255 255 255 255; visible: 1; } } program { signal: "browser,state,visible"; source: "rage"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "rage.browser"; } program { signal: "browser,state,hidden"; source: "rage"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.5; target: "rage.browser"; after: "browser_hidden"; } program { name: "browser_hidden"; action: SIGNAL_EMIT "browser,state,hidden,finished" "rage"; } part { name: "rage.list"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; rel1.relative: 1.0 0.0; rel2.relative: 1.0 0.0; rel2.to_y: "controlbar"; fixed: 1 1; } description { state: "visible" 0.0; inherit: "default" 0.0; align: 1.0 0.5; visible: 1; } } program { signal: "list,state,visible"; source: "rage"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.3; target: "rage.list"; } program { signal: "list,state,hidden"; source: "rage"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.5; target: "rage.list"; after: "list_hidden"; } program { name: "list_hidden"; action: SIGNAL_EMIT "list,state,hidden,finished" "rage"; } part { name: "controlbar_clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; color: 255 255 255 255; visible: 1; } } part { name: "controlbar"; type: RECT; mouse_events: 0; clip_to: "controlbar_clip"; description { state: "default" 0.0; color: 64 64 64 128; rel1.to: "rage.pos.prev.swallow"; } description { state: "novideo" 0.0; inherit: "default" 0.0; color: 64 64 64 255; } } program { signal: "state,novideo"; source: "rage"; action: STATE_SET "novideo" 0.0; target: "controlbar"; } program { signal: "state,video"; source: "rage"; action: STATE_SET "default" 0.0; target: "controlbar"; } part { name: "posclip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; color: 255 255 255 255; visible: 1; } } part { name: "bar_bg"; type: SPACER; description { state: "default" 0.0; fixed: 1 1; rel1.offset: 0 -1; rel1.relative: 0.0 1.0; min: 1 1; } } part { name: "rage.dragable.pos"; type: RECT; mouse_events: 0; clip_to: "controlbar_clip"; dragable.x: 1 1 0; dragable.y: 0 0 0; dragable.confine: "bar_bg"; description { state: "default" 0.0; min: 1 1; max: 1 1; rel1.relative: 0.5 0.0; rel1.to_x: "bar_bg"; rel2.relative: 0.5 1.0; rel2.to_x: "bar_bg"; color: 0 0 0 0; fixed: 1 1; } } part { name: "bar"; type: RECT; mouse_events: 0; clip_to: "controlbar_clip"; description { state: "default" 0.0; fixed: 1 1; color: 51 153 255 255; rel1.offset: 0 -5; rel1.relative: 0.0 1.0; rel1.to_x: "bar_bg"; rel2.to_x: "rage.dragable.pos"; min: 0 5; } } part { name: "rage.pos.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.dragable.pos"; rel2.to: "rage.dragable.pos"; align: 0.5 1.0; min: 20 20; } } part { name: "posevent"; type: RECT; clip_to: "controlbar_clip"; scale: 1; ignore_flags: ON_HOLD; dragable.events: "rage.dragable.pos"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.pos.swallow"; rel2.to: "rage.pos.swallow"; color: 0 0 0 0; min: 20 20; align: 0.5 1.0; } } part { name: "rage.pos.prev.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.0 0.0; rel1.to_y: "dragover_event"; rel2.relative: 0.0 0.0; rel2.to_y: "dragover_event"; min: 20 20; align: 0.0 1.0; } } part { name: "rage.pos.play.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to_x: "rage.pos.prev.swallow"; rel1.to_y: "dragover_event"; rel1.relative: 1.0 0.0; rel2.to_x: "rage.pos.prev.swallow"; rel2.to_y: "dragover_event"; rel2.relative: 1.0 0.0; min: 20 20; align: 0.0 1.0; } } part { name: "rage.pos.next.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to_x: "rage.pos.play.swallow"; rel1.to_y: "dragover_event"; rel1.relative: 1.0 0.0; rel2.to_x: "rage.pos.play.swallow"; rel2.to_y: "dragover_event"; rel2.relative: 1.0 0.0; min: 20 20; align: 0.0 1.0; } } part { name: "rage.vol.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to_y: "dragover_event"; rel1.relative: 1.0 0.0; rel2.to_y: "dragover_event"; rel2.relative: 1.0 0.0; min: 20 20; align: 1.0 1.0; } } part { name: "pos_prev"; scale: 1; clip_to: "controlbar_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.pos.prev.swallow"; rel2.to: "rage.pos.prev.swallow"; image.normal: "icon_prev.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "pos_prevev"; type: RECT; description { state: "default" 0.0; rel1.to: "rage.pos.prev.swallow"; rel2.to: "rage.pos.prev.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "pos_prevev"; action: STATE_SET "active" 0.0; target: "pos_prev"; } program { signal: "mouse,up,1"; source: "pos_prevev"; action: STATE_SET "default" 0.0; target: "pos_prev"; } part { name: "playpause"; type: RECT; clip_to: "controlbar_clip"; description { state: "default" 0.0; visible: 0; } description { state: "pause" 0.0; visible: 1; } } part { name: "playpause2"; type: RECT; clip_to: "controlbar_clip"; description { state: "default" 0.0; visible: 1; } description { state: "pause" 0.0; visible: 0; } } part { name: "pos_pause"; scale: 1; clip_to: "playpause"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.pos.play.swallow"; rel2.to: "rage.pos.play.swallow"; image.normal: "icon_play.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "pos_pauseev"; type: RECT; clip_to: "playpause"; description { state: "default" 0.0; rel1.to: "rage.pos.play.swallow"; rel2.to: "rage.pos.play.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "pos_pauseev"; action: STATE_SET "active" 0.0; target: "pos_pause"; } program { signal: "mouse,up,1"; source: "pos_pauseev"; action: STATE_SET "default" 0.0; target: "pos_pause"; } part { name: "pos_play"; scale: 1; clip_to: "playpause2"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.pos.play.swallow"; rel2.to: "rage.pos.play.swallow"; min: 20 20; max: 20 20; image.normal: "icon_pause.png"; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "pos_playev"; type: RECT; clip_to: "playpause2"; description { state: "default" 0.0; rel1.to: "rage.pos.play.swallow"; rel2.to: "rage.pos.play.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "pos_playev"; action: STATE_SET "active" 0.0; target: "pos_play"; } program { signal: "mouse,up,1"; source: "pos_playev"; action: STATE_SET "default" 0.0; target: "pos_play"; } program { signal: "action,play"; source: "rage"; action: STATE_SET "default" 0.0; target: "playpause"; target: "playpause2"; } program { signal: "action,pause"; source: "rage"; action: STATE_SET "pause" 0.0; target: "playpause"; target: "playpause2"; } part { name: "pos_next"; scale: 1; clip_to: "controlbar_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.pos.next.swallow"; rel2.to: "rage.pos.next.swallow"; image.normal: "icon_next.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "pos_nextev"; type: RECT; description { state: "default" 0.0; rel1.to: "rage.pos.next.swallow"; rel2.to: "rage.pos.next.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "pos_nextev"; action: STATE_SET "active" 0.0; target: "pos_next"; } program { signal: "mouse,up,1"; source: "pos_nextev"; action: STATE_SET "default" 0.0; target: "pos_next"; } part { name: "vol"; scale: 1; clip_to: "controlbar_clip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.vol.swallow"; rel2.to: "rage.vol.swallow"; image.normal: "icon_volume.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "volev"; type: RECT; clip_to: "controlbar_clip"; description { state: "default" 0.0; rel1.to: "rage.vol.swallow"; rel2.to: "rage.vol.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "volev"; action: STATE_SET "active" 0.0; target: "vol"; } program { signal: "mouse,up,1"; source: "volev"; action: STATE_SET "default" 0.0; target: "vol"; } program { signal: "mouse,clicked,1"; source: "optev"; action: SIGNAL_EMIT "pos,action,options" "rage"; } program { signal: "mouse,clicked,1"; source: "fullscreenev"; action: SIGNAL_EMIT "win,fullscreen" "rage"; } program { signal: "mouse,clicked,1"; source: "unfullscreenev"; action: SIGNAL_EMIT "win,unfullscreen" "rage"; } program { signal: "mouse,clicked,1"; source: "closeev"; action: SIGNAL_EMIT "win,close" "rage"; } program { signal: "mouse,clicked,1"; source: "pos_prevev"; action: SIGNAL_EMIT "pos,action,prev" "rage"; } program { signal: "mouse,clicked,1"; source: "pos_nextev"; action: SIGNAL_EMIT "pos,action,next" "rage"; } program { signal: "mouse,clicked,1"; source: "pos_playev"; action: SIGNAL_EMIT "pos,action,pause" "rage"; } program { signal: "mouse,clicked,1"; source: "pos_pauseev"; action: SIGNAL_EMIT "pos,action,play" "rage"; } part { name: "rage.pos"; type: TEXT; mouse_events: 0; clip_to: "controlbar_clip"; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to: "slash"; rel1.relative: 0.0 0.0; rel1.offset: -5 0; rel2.to: "slash"; rel2.relative: 0.0 1.0; rel2.offset: -5 -1; color: 255 255 255 255; align: 1.0 0.5; text { font: "Sans"; size: 8; align: 1.0 0.5; min: 1 1; elipsis: -1; } } } part { name: "slash"; type: TEXT; mouse_events: 0; clip_to: "controlbar_clip"; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.length"; rel1.relative: 0.0 0.0; rel1.offset: -5 0; rel2.to: "rage.length"; rel2.relative: 0.0 1.0; rel2.offset: -5 -1; color: 255 255 255 255; align: 1.0 0.5; text { font: "Sans"; size: 8; align: 1.0 0.5; min: 1 1; text: "/"; elipsis: -1; } } } part { name: "rage.length"; type: TEXT; mouse_events: 0; clip_to: "controlbar_clip"; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.to_y: "pos_next"; rel1.to_x: "vol"; rel1.relative: 0.0 0.0; rel1.offset: -1 0; rel2.to_y: "pos_next"; rel2.to_x: "vol"; rel2.relative: 0.0 1.0; rel2.offset: -1 -1; color: 255 255 255 255; align: 1.0 0.5; text { font: "Sans"; size: 8; align: 1.0 0.5; min: 1 1; elipsis: -1; } } } #define STATE_FADE_PROG(_name) \ program { \ signal: "action,"_name; source: "rage"; \ action: STATE_SET "visible" 0.0; \ transition: SINUSOIDAL 0.2 CURRENT; \ target: _name; \ after: _name"2"; \ } \ program { name: _name"2"; \ action: STATE_SET "default" 0.0; \ in: 1.0 0.0; \ transition: SINUSOIDAL 1.0 CURRENT; \ target: _name""; \ } part { name: "mute"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel2.relative: 0.0 0.0; rel2.offset: 0 0; align: 0.0 0.0; image.normal: "icon_mute.png"; min: 20 20; max: 20 20; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("mute") part { name: "unmute"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel2.relative: 0.0 0.0; rel2.offset: 0 0; align: 0.0 0.0; image.normal: "icon_volume.png"; min: 20 20; max: 20 20; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("unmute") part { name: "loop"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel1.to_x: "mute"; rel2.relative: 1.0 0.0; rel2.offset: 0 0; rel2.to_x: "mute"; align: 0.0 0.0; image.normal: "icon_refresh.png"; min: 20 20; max: 20 20; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("loop") part { name: "sequential"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel1.to_x: "mute"; rel2.relative: 1.0 0.0; rel2.offset: 0 0; rel2.to_x: "mute"; align: 0.0 0.0; image.normal: "icon_arrow_right.png"; min: 20 20; max: 20 20; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("sequential") part { name: "statusloc"; type: SPACER; description { state: "default" 0.0; rel1.to: "rage.content"; rel2.to: "rage.content"; } description { state: "novideo" 0.0; rel1.to: "speaker_base"; rel2.to: "speaker_base"; } } part { name: "play"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_play.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("play") part { name: "pause"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_pause.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("pause") part { name: "stop"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_stop.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("stop") part { name: "eject"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_eject.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("eject") part { name: "forward"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_forward.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("forward") part { name: "next"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_next.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("next") part { name: "rewind"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_rewind.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("rewind") part { name: "prev"; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; rel1.to: "statusloc"; rel2.to: "statusloc"; image.normal: "icon_prev.png"; min: 40 40; max: 40 40; aspect: 1.0 1.0; aspect_preference: BOTH; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } STATE_FADE_PROG("prev") part { name: "rage.options.swallow"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.0 0.0; rel1.offset: -1 0; rel1.to: "rage.win.fullscreen"; rel2.relative: 0.0 1.0; rel2.offset: -1 -1; rel2.to: "rage.win.fullscreen"; min: 20 20; align: 1.0 0.0; } } part { name: "rage.win.fullscreen"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.0 0.0; rel1.offset: -1 0; rel1.to: "rage.win.close"; rel2.relative: 0.0 1.0; rel2.offset: -1 -1; rel2.to: "rage.win.close"; min: 20 20; align: 1.0 0.0; } } part { name: "rage.win.close"; type: SWALLOW; scale: 1; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 1.0 0.0; rel1.offset: 0 0; rel2.relative: 1.0 0.0; rel2.offset: 0 0; min: 20 20; align: 0.0 0.0; } description { state: "fullscreen" 0.0; fixed: 1 1; rel1.relative: 1.0 0.0; rel1.offset: -1 0; rel2.relative: 1.0 0.0; rel2.offset: -1 0; min: 20 20; align: 1.0 0.0; } } part { name: "close"; scale: 1; clip_to: "posclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.win.close"; rel2.to: "rage.win.close"; image.normal: "icon_close.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "closeev"; type: RECT; description { state: "default" 0.0; rel1.to: "rage.win.close"; rel2.to: "rage.win.close"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "closeev"; action: STATE_SET "active" 0.0; target: "close"; } program { signal: "mouse,up,1"; source: "closeev"; action: STATE_SET "default" 0.0; target: "close"; } part { name: "fullscreenclip"; type: RECT; clip_to: "posclip"; description { state: "default" 0.0; rel1.to: "fullscreen"; rel2.to: "fullscreen"; visible: 1; } description { state: "fullscreen" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "unfullscreenclip"; type: RECT; clip_to: "posclip"; description { state: "default" 0.0; rel1.to: "unfullscreen"; rel2.to: "unfullscreen"; visible: 0; } description { state: "fullscreen" 0.0; inherit: "default" 0.0; visible: 1; } } program { signal: "state,win,fullscreen"; source: "rage"; action: STATE_SET "fullscreen" 0.0; target: "fullscreenclip"; target: "unfullscreenclip"; target: "rage.win.close"; } program { signal: "state,win,normal"; source: "rage"; action: STATE_SET "default" 0.0; target: "fullscreenclip"; target: "unfullscreenclip"; target: "rage.win.close"; } part { name: "fullscreen"; scale: 1; clip_to: "fullscreenclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.win.fullscreen"; rel2.to: "rage.win.fullscreen"; image.normal: "icon_fullscreen.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "fullscreenev"; type: RECT; clip_to: "fullscreenclip"; description { state: "default" 0.0; rel1.to: "rage.win.fullscreen"; rel2.to: "rage.win.fullscreen"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "fullscreenev"; action: STATE_SET "active" 0.0; target: "fullscreen"; } program { signal: "mouse,up,1"; source: "fullscreenev"; action: STATE_SET "default" 0.0; target: "fullscreen"; } part { name: "unfullscreen"; scale: 1; clip_to: "unfullscreenclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.win.fullscreen"; rel2.to: "rage.win.fullscreen"; image.normal: "icon_unfullscreen.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "unfullscreenev"; type: RECT; clip_to: "unfullscreenclip"; description { state: "default" 0.0; rel1.to: "rage.win.fullscreen"; rel2.to: "rage.win.fullscreen"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "unfullscreenev"; action: STATE_SET "active" 0.0; target: "unfullscreen"; } program { signal: "mouse,up,1"; source: "unfullscreenev"; action: STATE_SET "default" 0.0; target: "unfullscreen"; } part { name: "opt"; scale: 1; clip_to: "posclip"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.options.swallow"; rel2.to: "rage.options.swallow"; image.normal: "icon_spanner.png"; min: 20 20; max: 20 20; } description { state: "active" 0.0; inherit: "default" 0.0; color: 160 160 160 255; } } part { name: "optev"; type: RECT; description { state: "default" 0.0; rel1.to: "rage.options.swallow"; rel2.to: "rage.options.swallow"; color: 0 0 0 0; } } program { signal: "mouse,down,1"; source: "optev"; action: STATE_SET "active" 0.0; target: "opt"; } program { signal: "mouse,up,1"; source: "optev"; action: STATE_SET "default" 0.0; target: "opt"; } part { name: "dragover_master"; type: RECT; clip_to: "posclip"; description { state: "default" 0.0; visible: 1; } description { state: "novideo" 0.0; visible: 0; } } program { signal: "state,novideo"; source: "rage"; action: STATE_SET "novideo" 0.0; target: "dragover_master"; } program { signal: "state,video"; source: "rage"; action: STATE_SET "default" 0.0; target: "dragover_master"; } part { name: "dragover_active"; type: RECT; clip_to: "dragover_master"; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; } description { state: "visible" 0.0; color: 255 255 255 255; visible: 1; } } part { name: "dragover_event"; type: RECT; repeat_events: 1; clip_to: "posclip"; description { state: "default" 0.0; rel1.to_x: "bar_bg"; rel1.to_y: "posevent"; rel2.to_x: "bar_bg"; color: 0 0 0 0; fixed: 1 1; } } program { signal: "mouse,in"; source: "dragover_event"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.5; target: "dragover_active"; } program { signal: "mouse,out"; source: "dragover_event"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0; target: "dragover_active"; } part { name: "dragover"; type: SPACER; description { state: "default" 0.0; rel1.to: "dragover_event"; rel1.relative: 0.5 0.0; rel2.to: "dragover_event"; rel2.relative: 0.5 0.0; fixed: 1 1; } } part { name: "dragshadow"; mouse_events: 0; clip_to: "dragover_active"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "rage.dragable.content"; rel2.to: "rage.dragable.content"; color: 255 255 255 128; image.normal: "win_shadow.png"; image.border: 14 14 14 14; image.middle: 0; rel1.offset: -7 -3; rel2.offset: 6 11; fill.smooth: 0; } } part { name: "dragover_fill"; type: RECT; mouse_events: 0; clip_to: "dragover_active"; description { state: "default" 0.0; fixed: 1 1; color: 32 32 32 255; rel1.to: "rage.dragable.content"; rel2.to: "rage.dragable.content"; } } part { name: "rage.dragable.content"; type: SWALLOW; mouse_events: 0; clip_to: "dragover_active"; description { state: "default" 0.0; rel1.to: "dragover"; rel2.to: "dragover"; align: 0.5 1.0; fixed: 1 1; } } program { name: "dragmove"; signal: "mouse,move"; source: "dragover_event"; script { new mx, my, x, y, w, h; new Float:pos, Float:px, Float:pw; get_mouse(mx, my); get_geometry(PART:"dragover_event", x, y, w, h); x = mx - x; y = my - y; px = x; pw = w; if (w > 0) pos = px / pw; else pos = 0.5; custom_state(PART:"dragover", "default", 0.0); set_state_val(PART:"dragover", STATE_REL1, pos, 0.0); set_state_val(PART:"dragover", STATE_REL2, pos, 0.0); set_state(PART:"dragover", "custom", 0.0); send_message(MSG_FLOAT, 13, pos); if (get_int(drag_is_down) == 1) send_message(MSG_FLOAT, 10, pos); } } program { name: "dragdown"; signal: "mouse,down,1"; source: "dragover_event"; script { new mx, my, x, y, w, h; new Float:pos, Float:px, Float:pw; set_int(drag_is_down, 1); get_mouse(mx, my); get_geometry(PART:"dragover_event", x, y, w, h); x = mx - x; y = my - y; px = x; pw = w; if (w > 0) pos = px / pw; else pos = 0.5; custom_state(PART:"dragover", "default", 0.0); set_state_val(PART:"dragover", STATE_REL1, pos, 0.0); set_state_val(PART:"dragover", STATE_REL2, pos, 0.0); set_state(PART:"dragover", "custom", 0.0); send_message(MSG_FLOAT, 10, pos); } } program { name: "dragup"; signal: "mouse,up,1"; source: "dragover_event"; script { set_int(drag_is_down, 0); } } part { name: "event"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } program { name: "move1"; signal: "mouse,move"; source: "event"; script { new t; if (!get_int(pos_visible)) { stop_program(PROGRAM:"poshide"); run_program(PROGRAM:"posshow"); if (!get_int(novideo)) { stop_program(PROGRAM:"cbarhide"); run_program(PROGRAM:"cbarshow"); } set_int(pos_visible, 1); } t = get_int(pos_timer); if (t) cancel_timer(t); t = timer(5.0, "pos_timeout", 1); set_int(pos_timer, t); } } program { name: "posshow"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.3; target: "posclip"; } program { name: "cbarshow"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.3; target: "controlbar_clip"; } program { name: "poshide"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0; target: "posclip"; } program { name: "cbarhide"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0; target: "controlbar_clip"; } part { name: "listevent"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1.relative: 0.8 0.0; rel2.relative: 1.0 0.0; rel2.to_y: "controlbar"; } } part { name: "listevent2"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel2.relative: 0.8 1.0; } } program { signal: "mouse,in"; source: "listevent"; action: SIGNAL_EMIT "list,show" "rage"; } program { signal: "mouse,in"; source: "listevent2"; action: SIGNAL_EMIT "list,hide" "rage"; } program { signal: "action,newvid"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,rewind"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,forward"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,next"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,prev"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,play"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } program { signal: "action,pause"; source: "rage"; action: SIGNAL_EMIT "mouse,move" "event"; } //// -- ABOUT IMAGE part { name: "tv-bg"; clip_to: "tv-clip"; description { state: "default" 0.0; rel1.to: "tv"; rel1.relative: (40/256) (120/256); rel2.to: "tv"; rel2.relative: (174/256) (222/256); image.normal: "tv-bg.png"; } } part { name: "tv-anim"; clip_to: "tv-clip"; description { state: "default" 0.0; rel1.to: "tv-bg"; rel2.to: "tv-bg"; image.tween: "r-4.png"; image.tween: "r-3.png"; image.tween: "r-2.png"; image.tween: "r-1.png"; image.normal: "r-0.png"; } } part { name: "tv"; clip_to: "tv-clip"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; max: 256 256; image.normal: "tv-over.png"; } } program { signal: "mouse,clicked,1"; source: "tv"; action: SIGNAL_EMIT "about,hide" "rage"; } part { name: "tv-clip"; type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "visible" 0.0; visible: 1; color: 255 255 255 255; } } program { signal: "about,show"; source: "rage"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.5; target: "tv-clip"; } program { signal: "about,hide"; source: "rage"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0; target: "tv-clip"; after: "tv-hide2"; } program { name: "tv-hide2"; action: ACTION_STOP; target: "tv-anim"; } program { name: "tv-anim"; signal: "about,show"; source: "rage"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "tv-anim"; after: "tv-anim"; } } } group { name: "rage/list/item"; images.image: "win_shadow.png" COMP; parts { part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "clip"; rel2.to: "clip"; color: 255 255 255 128; image.normal: "win_shadow.png"; image.border: 14 14 14 14; image.middle: 0; rel1.offset: -7 -3; rel2.offset: 6 11; fill.smooth: 0; } } part { name: "glow"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "clip"; rel2.to: "clip"; color: 51 153 255 0; visible: 0; } description { state: "selected" 0.0; inherit: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; color: 51 153 255 255; visible: 1; } } program { signal: "rage,state,selected"; source: "rage"; action: STATE_SET "selected" 0.0; transition: SINUSOIDAL 0.1; target: "glow"; target: "clip"; } program { signal: "rage,state,unselected"; source: "rage"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.3; target: "glow"; target: "clip"; } part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 32 32 32 255; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 -5; } } part { name: "rage.sizer"; type: SWALLOW; description { state: "default" 0.0; min: 16 16; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "rage.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "rage.title"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; align: 0.0 1.0; rel1.to: "clip"; rel1.offset: 4 4; rel2.to: "clip"; rel2.offset: -5 -5; color: 255 255 255 255; text { font: "Sans"; size: 8; align: 0.0 1.0; min: 0 1; elipsis: 0; } } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } } program { signal: "mouse,clicked,1"; source: "event"; action: SIGNAL_EMIT "rage,selected" "rage"; } } } group { name: "rage/browser/entry"; parts { part { name: "rage.title"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 0 1; align: 0.0 0.0; rel1.offset: 0 10; rel2.offset: -1 10; rel2.relative: 1.0 0.0; color: 255 255 255 255; text { font: "Sans:style=Bold"; size: 10; align: 0.0 0.0; min: 0 1; elipsis: 0; } } description { state: "fullscreen" 0.0; inherit: "default" 0.0; rel1.offset: 0 40; rel2.offset: -1 40; text.size: 40; } } part { name: "rage.content"; type: SWALLOW; description { state: "default" 0.0; rel1.to_y: "rage.title"; rel1.relative: 0.0 1.0; rel1.offset: 0 10; rel2.offset: -1 -1; } description { state: "fullscreen" 0.0; inherit: "default" 0.0; rel1.offset: 0 40; rel2.offset: -1 -11; } } } programs { program { signal: "state,fullscreen"; source: "rage"; action: STATE_SET "fullscreen" 0.0; target: "rage.title"; target: "rage.content"; } program { signal: "state,normal"; source: "rage"; action: STATE_SET "default" 0.0; target: "rage.title"; target: "rage.content"; } } } group { name: "rage/browser/item"; images.image: "win_shadow.png" COMP; images.image: "dimmer.png" COMP; styles { style { name: "browser_item_label"; base: "font=Sans font_size=10 color=#ffffffff wrap=mixed ellipsis=1.0"; } style { name: "browser_item_label_fullscreen"; base: "font=Sans font_size=20 color=#ffffffff wrap=mixed ellipsis=1.0"; } } parts { part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; rel1.to: "clip"; rel2.to: "clip"; color: 255 255 255 128; image.normal: "win_shadow.png"; image.border: 14 14 14 14; image.middle: 0; rel1.offset: -7 -3; rel2.offset: 6 11; fill.smooth: 0; } } part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "glow"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "clip"; rel2.to: "clip"; color: 51 153 255 0; visible: 0; } description { state: "selected" 0.0; inherit: "default" 0.0; rel1.to: "p1"; rel1.relative: 0.75 0.75; rel2.to: "p2"; rel2.relative: 0.25 0.25; color: 51 153 255 255; visible: 1; } } program { signal: "rage,state,selected"; source: "rage"; action: STATE_SET "selected" 0.0; transition: SINUSOIDAL 0.1; target: "glow"; target: "clip"; } program { signal: "rage,state,unselected"; source: "rage"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.3; target: "glow"; target: "clip"; } part { name: "p1"; type: SPACER; scale: 1; description { state: "default" 0.0; rel2.relative: 0.0 0.0; align: 0.0 0.0; min: 8 8; fixed: 1 1; } description { state: "fullscreen" 0.0; inherit: "default" 0.0; min: 16 16; } } part { name: "p2"; type: SPACER; scale: 1; description { state: "default" 0.0; rel1.relative: 1.0 1.0; align: 1.0 1.0; min: 8 8; fixed: 1 1; } description { state: "fullscreen" 0.0; inherit: "default" 0.0; min: 16 16; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "p1"; rel1.relative: 1.0 1.0; rel2.to: "p2"; rel2.relative: 0.0 0.0; color: 192 192 192 255; } description { state: "selected" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "rage.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "dimmer"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; image.normal: "dimmer.png"; fill.smooth: 0; rel1.to: "clip"; rel2.to: "clip"; } } part { name: "rage.title"; type: TEXTBLOCK; mouse_events: 0; clip_to: "clip"; scale: 1; description { state: "default" 0.0; fixed: 1 1; align: 0.0 1.0; rel1.offset: 2 2; rel1.to: "clip"; rel2.offset: -3 -3; rel2.to: "clip"; color: 255 255 255 255; text { font: "Sans"; size: 20; style: "browser_item_label"; align: 0.0 1.0; min: 0 1; elipsis: 0; } } description { state: "fullscreen" 0.0; inherit: "default" 0.0; rel1.offset: 8 8; rel2.offset: -9 -9; text.style: "browser_item_label_fullscreen"; } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } } program { signal: "mouse,clicked,1"; source: "event"; action: SIGNAL_EMIT "rage,selected" "rage"; } } programs { program { signal: "state,fullscreen"; source: "rage"; action: STATE_SET "fullscreen" 0.0; target: "rage.title"; target: "p1"; target: "p2"; } program { signal: "state,normal"; source: "rage"; action: STATE_SET "default" 0.0; target: "rage.title"; target: "p1"; target: "p2"; } } } }