group { name: "elm/ews/background/default"; parts { part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 64 64 64 255; } } } } /* Border Decorations Protocol: Receive Signals: all use "elm" as source - elm,state,focus,{on,off} - elm,state,iconified,{on,off} - elm,state,maximized,{on,off} - elm,state,fullscreen,{on,off} - elm,state,alpha,{on,off} Send Signals: - elm,action,focus - elm,action,iconify - elm,action,maximize - elm,action,fullscreen - elm,action,restore - remove iconified, maximized or fullscreen - elm,action,close - elm,action,menu - elm,action,move,start - elm,action,move,stop Parts: - elm.text.title - elm.text.name - elm.text.class */ images { image: "shadow.png" COMP; image: "icon_close.png" COMP; image: "icon_arrow_up_right.png" COMP; image: "icon_arrow_down_left.png" COMP; } group { name: "elm/ews/decoration/borderless"; parts { part { name: "shadow"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "shadow.png"; border: 13 13 13 13; middle: 0; } rel1 { to: "base"; offset: -11 -9; } rel2 { to: "base"; offset: 11 11; } fill.smooth: 0; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } programs { program { signal: "elm,state,alpha,on"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "shadow"; } program { signal: "elm,state,alpha,off"; source: "elm"; action: STATE_SET "visible" 0.0; target: "shadow"; } } part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; } } } } group { name: "elm/ews/decoration/default"; parts { part { name: "shadow"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "shadow.png"; border: 13 13 13 13; middle: 0; } rel1 { to: "base"; offset: -11 -9; } rel2 { to: "base"; offset: 11 11; } fill.smooth: 0; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; } } programs { program { signal: "elm,state,alpha,on"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "shadow"; } program { signal: "elm,state,alpha,off"; source: "elm"; action: STATE_SET "visible" 0.0; target: "shadow"; } } part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; // TODO: make me a nice image! color: 200 200 200 255; rel1.offset: -2 -32; rel2.offset: 1 1; } } part { name: "base-text"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1.to: "base"; rel2 { offset: -2 -1; relative: 0.0 0.0; to_x: "base-buttons"; } } } programs { program { signal: "mouse,down,1"; source: "base-text"; action: SIGNAL_EMIT "elm,action,move,start" "elm"; } program { signal: "mouse,up,1"; source: "base-text"; action: SIGNAL_EMIT "elm,action,move,stop" "elm"; } } part { name: "elm.text.title"; type: TEXT; effect: SHADOW; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; color3: 0 0 0 255; rel1 { to: "base-text"; offset: 5 2; } rel2 { to: "base-text"; offset: -6 -3; } text { font: "Sans:style=Bold"; size: 12; align: 0.0 0.5; } } } part { name: "base-buttons"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel1 { to: "base"; relative: 1.0 0.0; offset: (-24 * 3 -1) 0; } rel2 { relative: 1.0 0.0; offset: -1 -1; } } } part { name: "restore"; type: IMAGE; mouse_events: 1; description { state: "default" 0.0; image.normal: "icon_arrow_down_left.png"; min: 24 24; max: 24 24; rel1 { to: "base-buttons"; relative: 1.0 0.0; offset: (-24 * 3 - 1) 0; } rel2 { to: "base-buttons"; relative: 1.0 1.0; offset: (-24 * 2 - 1) 0; } } } programs { program { signal: "mouse,clicked,1"; source: "restore"; action: SIGNAL_EMIT "elm,action,restore" "elm"; } } part { name: "maximize"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image.normal: "icon_arrow_up_right.png"; min: 24 24; max: 24 24; rel1 { to: "base-buttons"; relative: 1.0 0.0; offset: (-24 * 2 - 1) 0; } rel2 { to: "base-buttons"; relative: 1.0 1.0; offset: (-24 * 1 - 1) 0; } } description { state: "maximized" 0.0; inherit: "default" 0.0; color: 255 255 255 96; } } part { name: "maximize-eventarea"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1.to: "maximize"; rel2.to: "maximize"; } description { state: "maximized" 0.0; inherit: "default" 0.0; visible: 0; } } programs { program { signal: "mouse,clicked,1"; source: "maximize-eventarea"; action: SIGNAL_EMIT "elm,action,maximize" "elm"; } program { signal: "elm,state,maximized,on"; source: "elm"; action: STATE_SET "maximized" 0.0; target: "maximize-eventarea"; target: "maximize"; } program { signal: "elm,state,maximized,off"; source: "elm"; action: STATE_SET "default" 0.0; target: "maximize-eventarea"; target: "maximize"; } } part { name: "close"; type: IMAGE; mouse_events: 1; description { state: "default" 0.0; image.normal: "icon_close.png"; min: 24 24; max: 24 24; rel1 { to: "base-buttons"; relative: 1.0 0.0; offset: (-24 * 1 - 1) 0; } rel2 { to: "base-buttons"; relative: 1.0 1.0; offset: (-24 * 0 - 1) 0; } } } programs { program { signal: "mouse,clicked,1"; source: "close"; action: SIGNAL_EMIT "elm,action,close" "elm"; } } } }