group { name: "e/deskmirror/frame/default"; alias: "e/deskmirror/frame/dialog"; alias: "e/deskmirror/frame/urgent"; alias: "e/deskmirror/frame/sparkle"; images.image: "pager_mini_win_shadow.png" COMP; script { public message(Msg_Type:type, id, ...) { if ((type == MSG_FLOAT) && (id == 0)) { new Float:sc = getfarg(2); custom_state(PART:"top_spacer", "default", 0.0); set_state_val(PART:"top_spacer", STATE_REL2, 1.0, sc); set_state(PART:"top_spacer", "custom", 0.0); } } } parts { part { name: "spacer"; type: SPACER; description { state: "default"; } description { state: "iconic"; inherit: "default" 0.0; rel1.relative: 0.0 1.0; rel2.relative: 0.0 1.0; } } part { name: "top_spacer"; type: SPACER; description { state: "default" 0.0; rel1.to: "spacer"; rel2.to_x: "spacer"; rel2.to_y: "e.text.title"; rel2.offset: -1 -4; align: 0.5 0.0; } } part { name: "bottom_size"; type: SPACER; description { state: "default" 0.0; rel1.to_x: "spacer"; rel1.relative: 0.0 1.0; rel1.offset: 0 -1; rel2.to: "spacer"; min: 0 1; fixed: 0 1; } description { state: "hidden" 0.0; inherit: "default" 0.0; min: 0 0; max: 0 0; } } part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; image.normal: "pager_mini_win_shadow.png"; image.border: 7 7 7 7; image.middle: 0; rel1.to: "top"; rel1.offset: -5 -5; rel2.to: "bottom"; rel2.offset: 4 4; fill.smooth: 0; color_class: "/shadow/normal/border"; } description { state: "off"; inherit: "default" 0.0; visible: 0; } } part { name: "client_clip"; type: RECT; description { state: "default" 0.0; rel1.to_y: "top"; rel1.relative: 0.0 1.0; rel2.to_y: "bottom"; rel2.relative: 1.0 0.0; } } part { name: "e.swallow.client"; type: SWALLOW; clip_to: "client_clip"; description { state: "default" 0.0; rel1.to_y: "top"; rel1.relative: 0.0 1.0; rel2.to_y: "bottom"; rel2.relative: 1.0 0.0; } } part { name: "top"; type: RECT; description { state: "default" 0.0; rel.to: "top_spacer"; color_class: "/bg/normal/titlebar"; min: 0 1; } description { state: "focused" 0.0; inherit: "default" 0.0; color_class: "/bg/selected/titlebar"; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel.to: "spacer"; rel1.offset: 1 3; rel2.relative: 1.0 0.0; rel2.offset: -2 3; align: 0.5 0.0; color_class: "/fg/normal/titlebar"; text { font: FNBD; size: 10; text_class: "title_bar"; align: 0.5 0.0; min: 0 1; } visible: 0; fixed: 0 1; } description { state: "focused" 0.0; inherit: "default" 0.0; color_class: "/fg/selected/titlebar"; } } part { name: "bottom"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel.to: "bottom_size"; color_class: "/bg/normal/border"; } description { state: "hidden" 0.0; inherit: "default" 0.0; max: 0 0; visible: 0; } } part { name: "clone"; type: PROXY; mouse_events: 0; description { state: "default"; source: "e.swallow.client"; rel.to: "e.swallow.client"; visible: 0; color: 255 255 255 0; // no cc proxy.source_clip: 0; } description { state: "urgent1"; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; // no cc proxy.source_clip: 0; } description { state: "urgent2" 0.0; inherit: "default" 0.0; visible: 1; rel1.relative: -2.0 -2.0; rel2.relative: 3.0 3.0; color: 255 255 255 0; // no cc proxy.source_clip: 0; } } } programs { program { signal: "e,state,urgent"; source: "e"; action: ACTION_STOP; target: "go_big"; target: "go_big2"; after: "go_big"; } program { name: "go_big"; action: STATE_SET "urgent1" 0.0; target: "clone"; after: "go_big2"; } program { name: "go_big2"; action: STATE_SET "urgent2" 0.0; transition: LINEAR 0.5 USE_DURATION_FACTOR 1; target: "clone"; after: "go_big"; } program { signal: "e,state,not_urgent"; source: "e"; action: ACTION_STOP; target: "go_big"; target: "go_big2"; after: "go_hid"; } program { name: "go_hid"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5 USE_DURATION_FACTOR 1; target: "clone"; } program { signal: "e,state,shadow,on"; source: "e"; action: STATE_SET "default" 0.0; target: "shadow"; } program { signal: "e,state,shadow,off"; source: "e"; action: STATE_SET "off" 0.0; target: "shadow"; } program { signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "e.text.title"; target: "top"; } program { signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "e.text.title"; target: "top"; } program { signal: "e,state,shaded"; source: "e"; action: STATE_SET "hidden" 0.0; target: "bottom"; } program { signal: "e,state,maximize*"; source: "e"; action: STATE_SET "hidden" 0.0; target: "bottom"; } program { signal: "e,state,unmaximize*"; source: "e"; after: "unshade"; } program { signal: "e,state,unshaded"; source: "e"; after: "unshade"; } program { name: "unshade"; signal: "e,state,unshading"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; } program { name: "iconify"; action: STATE_SET "iconic" 0.0; transition: ACCELERATE 0.2 CURRENT USE_DURATION_FACTOR 1; target: "spacer"; } program { name: "uniconify"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2 CURRENT USE_DURATION_FACTOR 1; target: "spacer"; } program { signal: "e,action,uniconify"; source: "e"; action: ACTION_STOP; target: "iconify"; after: "uniconify"; } program { signal: "e,action,iconify"; source: "e"; action: ACTION_STOP; target: "uniconify"; after: "iconify"; } } } group { name: "e/deskmirror/frame/noresize"; inherit: "e/deskmirror/frame/default"; parts { part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel2.relative: 1.0 1.0; } } part { name: "bottom"; type: RECT; description { state: "default" 0.0; color_class: "/bg/normal/border"; rel1.relative: 0.0 1.0; rel1.offset: 0 -1; rel2.relative: 1.0 1.0; min: 0 0; max: 0 0; fixed: 0 1; visible: 0; } } } } group { name: "e/deskmirror/frame/noresize_dialog"; inherit: "e/deskmirror/frame/default"; parts { part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel2.relative: 1.0 1.0; } } part { name: "bottom"; type: RECT; description { state: "default" 0.0; color_class: "/bg/normal/border"; rel1.relative: 0.0 1.0; rel1.offset: 0 -1; rel2.relative: 1.0 1.0; min: 0 0; max: 0 0; fixed: 0 1; visible: 0; } } } } group { name: "e/deskmirror/frame/pixel"; parts { part { name: "client_clip"; type: RECT; description { state: "default" 0.0; rel.to: "e.swallow.client"; } } part { name: "frame"; type: RECT; description { state: "default" 0.0; color_class: "/bg/normal/border/outline"; } description { state: "focused" 0.0; inherit: "default" 0.0; color_class: "/bg/selected/border/outline"; } } part { name: "e.swallow.client"; type: SWALLOW; clip_to: "client_clip"; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; } } } programs { program { signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "frame"; } program { signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "frame"; } } } group { name: "e/deskmirror/frame/tiling"; parts { part { name: "client_clip"; type: RECT; description { state: "default" 0.0; rel.to: "e.swallow.client"; } } part { name: "frame"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; // no cc rel1.offset: -1 -1; rel2.offset: 0 0; color_class: "/bg/selected/border/outline"; color: 255 255 255 0; // no cc } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; // no cc } } part { name: "e.swallow.client"; type: SWALLOW; clip_to: "client_clip"; description { state: "default" 0.0; } } } programs { program { signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "frame"; } program { signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "frame"; } } } group { "e/deskmirror/frame/borderless"; parts { spacer { "spacer"; desc {} desc { "iconic"; rel1.relative: 0.0 1.0; rel2.relative: 0.0 1.0; } } rect { "client_clip"; } swallow { "e.swallow.client"; clip: "client_clip"; } proxy { "clone"; nomouse; desc { source: "e.swallow.client"; hid; color: 255 255 255 0; // no cc } desc { "urgent1"; inherit: "default"; vis; color: 255 255 255 255; // no cc } desc { "urgent2"; inherit: "default"; vis; rel1.relative: -2.0 -2.0; rel2.relative: 3.0 3.0; color: 255 255 255 0; // no cc } } program { name: "iconify"; action: STATE_SET "iconic" 0.0; transition: ACCELERATE 0.2 CURRENT USE_DURATION_FACTOR 1; target: "spacer"; } program { name: "uniconify"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2 CURRENT USE_DURATION_FACTOR 1; target: "spacer"; } program { signal: "e,action,uniconify"; source: "e"; action: ACTION_STOP; target: "iconify"; after: "uniconify"; } program { signal: "e,action,iconify"; source: "e"; action: ACTION_STOP; target: "uniconify"; after: "iconify"; } program { signal: "e,state,urgent"; source: "e"; action: ACTION_STOP; target: "go_big"; target: "go_big2"; after: "go_big"; } program { name: "go_big"; action: STATE_SET "urgent1" 0.0; target: "clone"; after: "go_big2"; } program { name: "go_big2"; action: STATE_SET "urgent2" 0.0; transition: LINEAR 0.5 USE_DURATION_FACTOR 1; target: "clone"; after: "go_big"; } program { signal: "e,state,not_urgent"; source: "e"; action: ACTION_STOP; target: "go_big"; target: "go_big2"; after: "go_hid"; } program { name: "go_hid"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5 USE_DURATION_FACTOR 1; target: "clone"; } } }