aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@gmail.com>2011-10-05 22:18:22 +0000
committerGustavo Sverzut Barbieri <barbieri@gmail.com>2011-10-05 22:18:22 +0000
commitb4f38ea71ddb66e6517652a4f789f16774cfa4ea (patch)
treeeaf7d73e541b77299117d2b46ee372a7841f38fc /data
parentelementary/example - removed white spaces, renamed the window title from thre... (diff)
downloadelementary-b4f38ea71ddb66e6517652a4f789f16774cfa4ea.tar.gz
Elementary support for EWS, with simplistic window manager.
This contains a very simple and stupid window manager to be used in FB, PS3 or similar single-window engines. Everybody is welcome to improve it, particularly: * Edje: better border decoration theme * Edje: nice background * C + Edje: taskbar with minimized items. * C + Edje: find a better protocol to determine window size, accounting border decoration without account shadow! Right now I'm taking everything :-P * C: window management keys (Alt+F4 and like) How to use: export ELM_ENGINE=ews How to configure backing store: export ECORE_EVAS_EWS=engine:x:y:w:h:options Example: {{{ export ECORE_EVAS_EWS=software_x11:0:0:1024:768 export ELM_ENGINE=ews elementary_test }}} Bugs: maybe many, but so far seems it wouldn't take mouse events for secondary windows. Will check it later. SVN revision: 63849
Diffstat (limited to 'data')
-rw-r--r--data/themes/Makefile.am1
-rw-r--r--data/themes/default.edc2
-rw-r--r--data/themes/ews.edc317
3 files changed, 320 insertions, 0 deletions
diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am
index f145f6fd6..7496bfca0 100644
--- a/data/themes/Makefile.am
+++ b/data/themes/Makefile.am
@@ -60,6 +60,7 @@ widgets/win.edc \
widgets/entry.edc \
widgets/map.edc \
widgets/scroller.edc \
+ews.edc \
arrow_down.png \
arrow_up.png \
bar_shine.png \
diff --git a/data/themes/default.edc b/data/themes/default.edc
index d36275687..f24beb0fd 100644
--- a/data/themes/default.edc
+++ b/data/themes/default.edc
@@ -365,4 +365,6 @@ collections {
#include "widgets/video.edc"
#include "widgets/naviframe.edc"
+#include "ews.edc"
+
}
diff --git a/data/themes/ews.edc b/data/themes/ews.edc
new file mode 100644
index 000000000..c3e70fe67
--- /dev/null
+++ b/data/themes/ews.edc
@@ -0,0 +1,317 @@
+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";
+ }
+ }
+ }
+}