raster pushed a commit to branch master.

commit 09e5c74ad16ac53e48f8f101af64cfdedf50aa9a
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon Aug 19 22:13:26 2013 +0900

    start border stuff - ews first.
---
 edje/dark.edc           |   2 +-
 edje/edc/elm/border.edc | 731 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 732 insertions(+), 1 deletion(-)

diff --git a/edje/dark.edc b/edje/dark.edc
index 0f1b31f..acdc033 100644
--- a/edje/dark.edc
+++ b/edje/dark.edc
@@ -64,7 +64,7 @@ collections {
 // needs design work, but edc needs to also scale up and down but not be so 
fat when scale is down/finger size smaller
 //#include "edc/elm/popup.edc"
 // border - this just has to take the e17 borders as-is, combine with comp 
swallow for shadow+focus and presto!
-//#include "edc/elm/border.edc"
+#include "edc/elm/border.edc"
 #include "edc/elm/spinner.edc"
 #include "edc/elm/menu.edc"
 #include "edc/elm/clock.edc"
diff --git a/edje/edc/elm/border.edc b/edje/edc/elm/border.edc
new file mode 100644
index 0000000..a75c1ad
--- /dev/null
+++ b/edje/edc/elm/border.edc
@@ -0,0 +1,731 @@
+group { name: "elm/ews/background/default";
+   images.image: "bg_radgrad.png" COMP;
+   images.image: "dot_pattern.png" COMP;
+   parts {
+      part { name: "bg";
+         description { state: "default" 0.0;
+            image.normal: "bg_radgrad.png";
+            image.scale_hint: STATIC;
+            fill.smooth: 0;
+            ASPECT_FILL((1024/653))
+         }
+      }
+      part { name: "pat";
+         description { state: "default" 0.0;
+            image.normal: "dot_pattern.png";
+            TILED_PATTERN(256, 256)
+         }
+      }
+   }
+}
+
+group { name: "elm/ews/decoration/default";
+   images.image: "win_shadow.png" COMP;
+   images.image: "win_glow.png" COMP;
+   images.image: "vgrad_med_lighter.png" COMP;
+   images.image: "vgrad_med_dark.png" COMP;
+   images.image: "bevel_out.png" COMP;
+   images.image: "shine.png" COMP;
+   images.image: "bevel_dark_out.png" COMP;
+   images.image: "sym_close_dark_normal.png" COMP;
+   images.image: "sym_close_dark_selected.png" COMP;
+   images.image: "sym_close_light_normal.png" COMP;
+   images.image: "sym_close_light_selected.png" COMP;
+   images.image: "sym_down_dark_normal.png" COMP;
+   images.image: "sym_down_dark_selected.png" COMP;
+   images.image: "sym_down_light_normal.png" COMP;
+   images.image: "sym_down_light_selected.png" COMP;
+   images.image: "sym_up_dark_normal.png" COMP;
+   images.image: "sym_up_dark_selected.png" COMP;
+   images.image: "sym_up_light_normal.png" COMP;
+   images.image: "sym_up_light_selected.png" COMP;
+   images.image: "glow_round_corners_small.png" COMP;
+   images.image: "knob_round_small_busy.png" COMP;
+   parts {
+      part { name: "shadow"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "win_shadow.png";
+            image.border: 14 14 14 14;
+            image.middle: 0;
+            rel1.offset: -7  -3;
+            rel1.to: "top";
+            rel2.offset: 6 11;
+            rel2.to: "bottom";
+            fill.smooth: 0;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "glow"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "win_glow.png";
+            image.border: 9 9 9 9;
+            image.middle: 0;
+            rel1.offset: -5  -5;
+            rel1.to: "top";
+            rel2.offset: 4 4;
+            rel2.to: "bottom";
+            fill.smooth: 0;
+            color: 255 255 255 0;
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            visible: 1;
+         }
+      }
+      part { name: "top";
+         description { state: "default" 0.0;
+            color_class: "border_top";
+            image.normal: "vgrad_med_lighter.png";
+            rel1.to_y: "title2";
+            rel1.offset: -1 -2;
+            rel2.relative: 1.0 0.0;
+            fill.smooth: 0;
+            TILED_HORIZ(120)
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "vgrad_med_dark.png";
+         }
+      }
+      part { name: "bevel"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "bevel_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            rel1.to: "top";
+            rel2.to: "top";
+            fill.smooth: 0;
+         }
+      }
+      part { name: "elm.text.title"; type: TEXT;
+         scale: 1;
+         effect: SHADOW BOTTOM;
+         description { state: "default" 0.0;
+            color_class: "border_title";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 -3;
+            rel1.to_x: "e.event.icon";
+            rel2.relative: 0.0 0.0;
+            rel2.offset: -2 -3;
+            rel2.to_x: "e.event.minimize";
+            align: 0.5 1.0;
+            color: 21 21 21 255;
+            color3: 255 255 255 25;
+            text { font: FNBD; size: 10;
+               text_class: "title_bar";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+            fixed: 0 1;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "title2"; type: TEXT;
+         scale: 1;
+         effect: SOFT_SHADOW BOTTOM;
+         description { state: "default" 0.0;
+            color_class: "border_title_active";
+            rel1.relative: 1.0 0.0;
+            rel1.offset: 1 2;
+            rel1.to_x: "e.event.icon";
+            rel2.relative: 0.0 0.0;
+            rel2.offset: -1 2;
+            rel2.to_x: "e.event.minimize";
+            align: 0.5 1.0;
+            color: 255 255 255 255;
+            color3: 0 0 0 18;
+            text { font: FNBD; size: 10;
+               text_source: "elm.text.title";
+               text_class: "title_bar";
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+            fixed: 0 1;
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "icon"; type: SPACER;
+         description { state: "default" 0.0;
+            rel1.to: "e.event.icon";
+            rel2.to: "e.event.icon";
+         }
+         description { state: "bounce1" 0.0;
+            inherit: "default" 0.0;
+            rel1.relative: 0.0 0.15;
+            rel2.relative: 1.0 1.15;
+         }
+         description { state: "bounce2" 0.0;
+            inherit: "default" 0.0;
+            rel1.relative: 0.0 -0.15;
+            rel2.relative: 1.0 0.85;
+         }
+      }
+      part { name: "e.swallow.icon"; type: SWALLOW;
+         description { state: "default" 0.0;
+            rel1.to: "icon";
+            rel1.relative: 0.15 0.15;
+            rel2.to: "icon";
+            rel2.relative: 0.85 0.85;
+            rel2.offset: 0 0;
+         }
+      }
+      part { name: "knob"; mouse_events: 0;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            image.normal: "knob_round_small_busy.png";
+            aspect: 1.0 1.0; aspect_preference: BOTH;
+            max: 20 20;
+            rel1.to: "e.event.icon";
+            rel2.to: "e.event.icon";
+            fixed: 1 1;
+         }
+      }
+      
+      part { name: "clip1"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "top";
+            rel2.to: "top";
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "clip2"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "top";
+            rel2.to: "top";
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "close1";
+         clip_to: "clip1";
+         description { state: "default" 0.0;
+            image.normal: "sym_close_dark_normal.png";
+            rel1.to: "e.event.close";
+            rel2.to: "e.event.close";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_close_dark_selected.png";
+         }
+      }
+      part { name: "max1";
+         clip_to: "clip1";
+         description { state: "default" 0.0;
+            image.normal: "sym_up_dark_normal.png";
+            rel1.to: "e.event.maximize";
+            rel2.to: "e.event.maximize";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_up_dark_selected.png";
+         }
+      }
+      part { name: "min1";
+         clip_to: "clip1";
+         description { state: "default" 0.0;
+            image.normal: "sym_down_dark_normal.png";
+            rel1.to: "e.event.minimize";
+            rel2.to: "e.event.minimize";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_down_dark_selected.png";
+         }
+      }
+      part { name: "close2";
+         clip_to: "clip2";
+         description { state: "default" 0.0;
+            image.normal: "sym_close_light_normal.png";
+            rel1.to: "e.event.close";
+            rel2.to: "e.event.close";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_close_light_selected.png";
+         }
+      }
+      part { name: "max2";
+         clip_to: "clip2";
+         description { state: "default" 0.0;
+            image.normal: "sym_up_light_normal.png";
+            rel1.to: "e.event.maximize";
+            rel2.to: "e.event.maximize";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_up_light_selected.png";
+         }
+      }
+      part { name: "min2";
+         clip_to: "clip2";
+         description { state: "default" 0.0;
+            image.normal: "sym_down_light_normal.png";
+            rel1.to: "e.event.minimize";
+            rel2.to: "e.event.minimize";
+            min: 15 15;
+            max: 15 15;
+            fixed: 1 1;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            image.normal: "sym_down_light_selected.png";
+         }
+      }
+      part { name: "e.event.icon"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 0.0 0.0;
+            rel1.to_y: "top";
+            rel2.relative: 0.0 0.0;
+            align: 0.0 0.5;
+            aspect: 1.0 1.0; aspect_preference: VERTICAL;
+            color: 0 0 0 0;
+         }
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "e.event.icon";
+         action: SIGNAL_EMIT "elm,action,menu" "elm";
+      }
+      part { name: "e.event.titlebar"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to_y: "top";
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "e.event.icon";
+            rel2.relative: 0.0 0.0;
+            rel2.to_x: "e.event.minimize";
+            color: 0 0 0 0;
+         }
+      }
+      program {
+         signal: "mouse,down,1"; source: "e.event.titlebar";
+         action: SIGNAL_EMIT "elm,action,move,start" "elm";
+      }
+      program {
+         signal: "mouse,up,1"; source: "e.event.titlebar";
+         action: SIGNAL_EMIT "elm,action,move,stop" "elm";
+      }
+      part { name: "e.event.close"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 0.0;
+            rel1.to_y: "top";
+            rel2.relative: 1.0 0.0;
+            align: 1.0 0.5;
+            aspect: 1.0 1.0; aspect_preference: VERTICAL;
+            color: 0 0 0 0;
+         }
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "e.event.close";
+         action: SIGNAL_EMIT "elm,action,close" "elm";
+      }
+      part { name: "e.event.maximize"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to_y: "top";
+            rel1.relative: -0.25 0.0;
+            rel1.offset: -1 0;
+            rel1.to_x: "e.event.close";
+            rel2.relative: -0.25 0.0;
+            rel2.to_x: "e.event.close";
+            align: 1.0 0.5;
+            aspect: 1.0 1.0; aspect_preference: VERTICAL;
+            color: 0 0 0 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "e.event.maximize2"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to: "e.event.maximize";
+            rel2.to: "e.event.maximize";
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "e.event.maximize";
+         action: SIGNAL_EMIT "elm,action,maximize" "elm";
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "e.event.maximize2";
+         action: SIGNAL_EMIT "elm,action,restore" "elm";
+      }
+      part { name: "e.event.minimize"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.to_y: "top";
+            rel1.relative: 0.0 0.0;
+            rel1.offset: -1 0;
+            rel1.to_x: "e.event.maximize";
+            rel2.relative: 0.0 0.0;
+            rel2.to_x: "e.event.maximize";
+            align: 1.0 0.5;
+            aspect: 1.0 1.0; aspect_preference: VERTICAL;
+            color: 0 0 0 0;
+         }
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "e.event.minimize";
+         action: SIGNAL_EMIT "elm,action,iconify" "elm";
+      }
+      part { name: "e.event.resize.tl"; type: RECT;
+         description { state: "default" 0.0;
+            rel2.relative: 0.0 0.0;
+            min: 32 4;
+            align: 0.0 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "e.event.resize.t"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 0.0;
+            rel1.to_x: "e.event.resize.tl";
+            rel2.relative: 0.0 0.0;
+            rel2.to_x: "e.event.resize.tr";
+            min: 0 4;
+            align: 0.5 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "e.event.resize.tr"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 0.0;
+            min: 32 4;
+            align: 1.0 0.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "bottom"; type: RECT;
+         description { state: "default" 0.0;
+            color_class: "border_bottom";
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 1.0 1.0;
+            rel2.offset: -1 4;
+            min: 0 5;
+            color: 64 64 64 255;
+            fixed: 0 1;
+         }
+         description { state: "shaded" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "bevel2";
+         description { state: "default" 0.0;
+            image.normal: "bevel_dark_out.png";
+            image.border: 1 1 1 1;
+            image.middle: 0;
+            rel1.to: "bottom";
+            rel2.to: "bottom";
+            fill.smooth: 0;
+         }
+         description { state: "shaded" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "e.event.resize.bl"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 0.0 1.0;
+            min: 32 5;
+            align: 0.0 1.0;
+            color: 0 0 0 0;
+            fixed: 1 1;
+         }
+         description { state: "shaded" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "e.event.resize.b"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 1.0;
+            rel1.to_x: "e.event.resize.tl";
+            rel2.relative: 0.0 1.0;
+            rel2.to_x: "e.event.resize.tr";
+            min: 0 5;
+            align: 0.5 1.0;
+            color: 0 0 0 0;
+            fixed: 0 1;
+         }
+         description { state: "shaded" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "e.event.resize.br"; type: RECT;
+         description { state: "default" 0.0;
+            rel1.relative: 1.0 1.0;
+            rel2.relative: 1.0 1.0;
+            min: 32 5;
+            align: 1.0 1.0;
+            color: 0 0 0 0;
+            fixed: 1 1;
+         }
+         description { state: "shaded" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+         description { state: "max" 0.0;
+            inherit: "default" 0.0;
+            min: 0 0;
+            visible: 0;
+         }
+      }
+      part { name: "shine"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "shine.png";
+            rel1.offset: 0 -2;
+            rel1.to: "top";
+            rel2.relative: 1.0 0.0;
+            rel2.offset: -1 2;
+            rel2.to: "top";
+            FIXED_SIZE(69, 5)
+         }
+      }
+      part { name: "focus"; type: RECT; repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "top";
+            rel2.to: "bottom";
+            color: 0 0 0 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      program {
+         signal: "mouse,down,1"; source: "focus";
+         action: SIGNAL_EMIT "elm,action,focus" "elm";
+      }
+      program {
+         signal: "elm,state,focus,on"; source: "elm";
+         action: STATE_SET "focused" 0.0;
+         transition: SINUSOIDAL 0.1;
+         target: "glow";
+         target: "focus";
+         after: "focus2";
+      }
+      program { name: "focus2";
+         action: STATE_SET "default" 0.0;
+         transition: SINUSOIDAL 0.4;
+         target: "glow";
+      }
+      program {
+         signal: "elm,state,focus,off"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: SINUSOIDAL 0.1;
+         target: "focus";
+         target: "glow";
+      }
+      program {
+         signal: "elm,state,focus,on"; source: "elm";
+         action: STATE_SET "focused" 0.0;
+         target: "top";
+         target: "elm.text.title";
+         target: "title2";
+         target: "clip1";
+         target: "clip2";
+      }
+      program {
+         signal: "elm,state,focus,off"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "top";
+         target: "elm.text.title";
+         target: "title2";
+         target: "clip1";
+         target: "clip2";
+      }
+      
+      program {
+         signal: "elm,state,maximized,on"; source: "elm";
+         action: STATE_SET "max" 0.0;
+         target: "e.event.maximize";
+         target: "e.event.maximize2";
+         target: "bottom";
+         target: "bevel2";
+         target: "e.event.resize.bl";
+         target: "e.event.resize.b";
+         target: "e.event.resize.br";
+      }
+      program {
+         signal: "elm,state,maximized,off"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "e.event.maximize";
+         target: "e.event.maximize2";
+         target: "bottom";
+         target: "bevel2";
+         target: "e.event.resize.bl";
+         target: "e.event.resize.b";
+         target: "e.event.resize.br";
+      }
+      program {
+         signal: "mouse,down,*"; source: "e.event.close";
+         action: STATE_SET "selected" 0.0;
+         target: "close1";
+         target: "close2";
+      }
+      program {
+         signal: "mouse,up,*"; source: "e.event.close";
+         action: STATE_SET "default" 0.0;
+         target: "close1";
+         target: "close2";
+      }
+      program {
+         signal: "mouse,down,*"; source: "e.event.maximize*";
+         action: STATE_SET "selected" 0.0;
+         target: "max1";
+         target: "max2";
+      }
+      program {
+         signal: "mouse,up,*"; source: "e.event.maximize*";
+         action: STATE_SET "default" 0.0;
+         target: "max1";
+         target: "max2";
+      }
+      program {
+         signal: "mouse,down,*"; source: "e.event.minimize";
+         action: STATE_SET "selected" 0.0;
+         target: "min1";
+         target: "min2";
+      }
+      program {
+         signal: "mouse,up,*"; source: "e.event.minimize";
+         action: STATE_SET "default" 0.0;
+         target: "min1";
+         target: "min2";
+      }
+   }
+}
+
+group { name: "elm/ews/decoration/borderless";
+   images.image: "win_shadow.png" COMP;
+   images.image: "win_glow.png" COMP;
+   parts {
+      part { name: "shadow"; mouse_events: 0;
+         description { state: "default" 0.0;
+            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;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "glow"; mouse_events: 0;
+         description { state: "default" 0.0;
+            image.normal: "win_glow.png";
+            image.border: 9 9 9 9;
+            image.middle: 0;
+            rel1.offset: -5  -5;
+            rel2.offset: 4 4;
+            fill.smooth: 0;
+            color: 255 255 255 0;
+            visible: 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+            visible: 1;
+         }
+      }
+      part { name: "focus"; type: RECT; repeat_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+         description { state: "focused" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      program {
+         signal: "mouse,down,1"; source: "focus";
+         action: SIGNAL_EMIT "elm,action,focus" "elm";
+      }
+      program {
+         signal: "elm,state,focus,on"; source: "elm";
+         action: STATE_SET "focused" 0.0;
+         transition: SINUSOIDAL 0.1;
+         target: "glow";
+         target: "focus";
+         after: "focus2";
+      }
+      program { name: "focus2";
+         action: STATE_SET "default" 0.0;
+         transition: SINUSOIDAL 0.4;
+         target: "glow";
+      }
+      program {
+         signal: "elm,state,focus,off"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         transition: SINUSOIDAL 0.1;
+         target: "focus";
+         target: "glow";
+      }
+   }
+}

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk

Reply via email to