okra pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d5183d7ab78e3e36e90abe402804b58fab16d206

commit d5183d7ab78e3e36e90abe402804b58fab16d206
Author: Stephen okra Houston <smhousto...@gmail.com>
Date:   Fri Nov 18 14:14:27 2016 -0600

    Luncher:  Add the engage style that can be selected for luncher.
    
    Please make sure your e and efl are updated together while using this.  It 
is not perfect and fairly buggy currently so use at your own risk.
---
 data/elementary/themes/edc/luncher.edc | 236 ++++++++++++++++++++++++++++++++-
 1 file changed, 230 insertions(+), 6 deletions(-)

diff --git a/data/elementary/themes/edc/luncher.edc 
b/data/elementary/themes/edc/luncher.edc
index 6008e09..834023f 100644
--- a/data/elementary/themes/edc/luncher.edc
+++ b/data/elementary/themes/edc/luncher.edc
@@ -1,4 +1,7 @@
 group { name: "e/gadget/luncher/bar";
+   data {
+      item: styles "default engage";
+   }
    parts {
       part { name: "e.swallow.drop"; type: SWALLOW;
          description { state: "default" 0.0;
@@ -20,12 +23,208 @@ group { name: "e/gadget/luncher/bar";
 group { name: "e/gadget/luncher/icon";
    script {
       public urgent;
+      public style;
+      public message(Msg_Type:type, id, ...) {
+
+//Style Variable - Used to Identify Style - Name Must Match an Item in the 
Data List of e/gadget/luncher/bar
+//Style Setting Messages Will Always Have an ID of 1
+//Icon Messages Related To The Style Will Have an ID of 2.
+//Arguments are in the Following Order:
+//X Position of the Cursor
+//Y Position of the Cursor
+//X Position of Icon
+//Y Position of Icon
+//Width of icon
+//Height of icon
+//Location of the bar - 0 is left, 1 is top, 2 is right, 3 is bottom
+
+         if ((type == MSG_STRING) && (id == 1)) {
+            new s[32];
+
+            getsarg(2, s, sizeof(s));
+            set_str(style, s);
+         }
+         if ((type == MSG_INT_SET) && (id == 2)) {
+            new xpos = getarg(2);
+            new ypos = getarg(3);
+            new x = getarg(4);
+            new y = getarg(5);
+            new w = getarg(6);
+            new h = getarg(7);
+            new pos = getarg(8);
+            new s[32];
+
+            get_str(style, s, sizeof(s));
+
+            if (!strcmp(s, "default")) {
+               if ((pos == 0) || (pos == 2)) {
+                  if ((ypos >= y) && (ypos <= (y+h))) {
+                     set_state_anim(PART:"background", "default", 0.0, LINEAR, 
1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"background", "default", 0.0, LINEAR, 
1.0);
+                  }
+               }
+               else if ((pos == 1) || (pos == 3)) {
+                  if ((xpos >= x) && (xpos <= (x+w))) {
+                     set_state_anim(PART:"background", "visible", 0.0, LINEAR, 
1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"background", "default", 0.0, LINEAR, 
1.0);
+                  }
+               }
+            }
+            else if (!strcmp(s, "engage")) {
+               if (pos == 0) {
+                  if ((ypos >= y) && (ypos <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.5);
+                     set_state_val(PART:"sizer", STATE_REL2, 2.0, 1.5);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos-h) >= y) && ((ypos-h) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.3);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.6, 1.3);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos+h) >= y) && ((ypos+h) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.3);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.6, 1.3);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos-(h*2)) >= y) && ((ypos-(h*2)) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.2);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.4, 1.2);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos+(h*2)) >= y) && ((ypos+(h*2)) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.2);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.4, 1.2);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0);
+                  }
+               }
+               else if (pos == 1) {
+                  if ((xpos >= x) && (xpos <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.5, 0.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.5, 2.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos-w) >= x) && ((xpos-w) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.3, 0.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.6);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos+w) >= x) && ((xpos+w) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.3, 0.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.6);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos-(w*2)) >= x) && ((xpos-(w*2)) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.2, 0.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.4);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos+(w*2)) >= x) && ((xpos+(w*2)) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.2, 0.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.4);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0);
+                  }
+               }
+               else if (pos == 2) {
+                  if ((ypos >= y) && (ypos <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -1.0, -0.5);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.5);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos-h) >= y) && ((ypos-h) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.6, -0.3);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.3);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos+h) >= y) && ((ypos+h) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.6, -0.3);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.3);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos-(h*2)) >= y) && ((ypos-(h*2)) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.4, -0.2);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.2);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((ypos+(h*2)) >= y) && ((ypos+(h*2)) <= (y+h))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.4, -0.2);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.2);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0);
+                  }
+               }
+               else if (pos == 3) {    
+                  if ((xpos >= x) && (xpos <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.5, -1.0);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.5, 1.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos-w) >= x) && ((xpos-w) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.3, -0.6);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos+w) >= x) && ((xpos+w) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.3, -0.6);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos-(w*2)) >= x) && ((xpos-(w*2)) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.2, -0.4);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else if (((xpos+(w*2)) >= x) && ((xpos+(w*2)) <= (x+w))) {
+                     custom_state(PART:"sizer", "default", 0.0);
+                     set_state_val(PART:"sizer", STATE_REL1, -0.2, -0.4);
+                     set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.0);
+                     set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0);
+                  }
+                  else {
+                     set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0);
+                  }
+               }
+            }
+            emit("e,state,resized", "e");
+         }
+      }
    }
    parts {
       part { name: "item_clip"; type: RECT;
          description { state: "default" 0.0;
-            rel1.to: "e.swallow.icon";
-            rel2.to: "e.swallow.icon";
+            rel1.to: "sizer";
+            rel2.to: "sizer";
             rel1.offset: -100 -100;
             rel2.offset: 99 99;
             color: 255 255 255 255;
@@ -35,13 +234,24 @@ group { name: "e/gadget/luncher/icon";
             color: 255 255 255 64;
          }
       }
+      part { name: "sizer"; type: RECT;
+         clip_to: "item_clip";
+         mouse_events: 0;
+         description {
+            align: 0 0;
+            state: "default" 0.0;
+            rel1.relative: 0.0 0.0;
+            rel2.relative: 1.0 1.0;
+            color: 255 255 255 0;
+         }
+      }
       part { name: "background"; type: RECT;
          clip_to: "item_clip";
          mouse_events: 0;
          description { state: "default" 0.0;
             visible: 0;
-            rel1.offset: 0 0;
-            rel2.offset: -1 -1;
+            rel1.to: "sizer";
+            rel2.to: "sizer";
             color: 255 255 255 0;
          }
          description { state: "visible" 0.0;
@@ -52,9 +262,12 @@ group { name: "e/gadget/luncher/icon";
       }
       part { name: "indicator"; type: RECT;
          clip_to: "item_clip";
+         mouse_events: 0;
          description { state: "default" 0.0;
             visible: 0;
             align: 0.6 0.6;
+            rel1.to: "sizer";
+            rel2.to: "sizer";
             color: 255 255 255 0;
          }
          description { state: "on_left" 0.0;
@@ -97,10 +310,11 @@ group { name: "e/gadget/luncher/icon";
       part { name: "e.swallow.icon"; type: SWALLOW;
          clip_to: "item_clip";
          mouse_events: 1;
+         repeat_events: 1;
          description { state: "default" 0.0;
             align: 0.5 0.5;
-            rel1.offset: 0 0;
-            rel2.offset: -1 -1;
+            rel1.to: "sizer";
+            rel2.to: "sizer";
          }
          description { state: "on_left" 0.0;
             inherit: "default" 0.0;
@@ -138,6 +352,8 @@ group { name: "e/gadget/luncher/icon";
          clip_to: "item_clip";
          description { state: "default" 0.0;
             visible: 0;
+            rel1.to: "sizer";
+            rel2.to: "sizer";
             color: 255 255 255 0;
          }
          description { state: "visible" 0.0;
@@ -170,14 +386,22 @@ group { name: "e/gadget/luncher/icon";
       }
    }
    programs {
+      program { name: "set_default";
+         signal: "e,state,default"; source: "e";
+         action: STATE_SET "default" 0.0;
+         transition: LINEAR 0.2;
+         target: "sizer";
+      }
       program { name: "focused";
          signal: "e,state,focused"; source: "e";
          action: STATE_SET "visible" 0.0;
+         transition: LINEAR 0.5;
          target: background;
       }
       program { name: "unfocused";
          signal: "e,state,unfocused"; source: "e";
          action: STATE_SET "default" 0.0;
+         transition: LINEAR 0.5;
          target: background;
       }
       program { name: "starting";

-- 


Reply via email to