remove e comp iconify theme hacks, add basic iconify effect
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 29 Jan 2014 18:30:05 +0000 (13:30 -0500)
committerMike Blumenkrantz <zmike@samsung.com>
Wed, 29 Jan 2014 18:36:52 +0000 (13:36 -0500)
data/themes/edc/comp.edc
data/themes/edc/comp_effects.edc

index f9bbcad..752cdc0 100644 (file)
@@ -247,34 +247,7 @@ group { name: "e/comp/screen/overlay/noeffects";
 
 group { name: "e/comp/frame/default";
    images.image: "win_glow.png" COMP;
-   script {
-      public iconifying;
-      public uniconifying;
-
-      public message(Msg_Type:type, id, ...) {
-         // relative to obj x/y/w/h for src/dst of iconify
-         if ((type == MSG_INT_SET) && (id == 10)) {
-            new x, y, w, h;
-            x = getarg(2);
-            y = getarg(3);
-            w = getarg(4);
-            h = getarg(5);
-            custom_state(PART:"iconify-src", "default", 0.0);
-            set_state_val(PART:"iconify-src", STATE_REL1, 0.0, 0.0);
-            set_state_val(PART:"iconify-src", STATE_REL2, 0.0, 0.0);
-            set_state_val(PART:"iconify-src", STATE_REL1_OFFSET, x, y);
-            set_state_val(PART:"iconify-src", STATE_REL2_OFFSET, x + w - 1, y + h - 1);
-            set_state(PART:"iconify-src", "custom", 0.0);
-         }
-      }
-   }
    parts {
-      part { name: "iconify-src"; type: SPACER;
-         description { state: "default" 0.0;
-            rel2.relative: 0.0 0.0;
-            rel2.offset: 0 0;
-         }
-      }
       part { name: "clipper"; type: RECT;
          description { state: "default" 0.0;
             rel1.relative: -1.0  -1.0;
@@ -320,10 +293,6 @@ group { name: "e/comp/frame/default";
             rel1.relative: 0.0  0.0;
             rel2.relative: 1.0  1.0;
          }
-         description { state: "iconic";
-            rel1.to: "iconify-src";
-            rel2.to: "iconify-src";
-         }
       }
       part { name: "focus-clipper";
          type: RECT;
@@ -430,48 +399,6 @@ group { name: "e/comp/frame/default";
          transition: SINUSOIDAL 0.6 CURRENT;
          target: "glow";
       }
-      program { name: "iconify_defer";
-         action: SIGNAL_EMIT "e,action,iconify,done" "e";
-      }
-      program { name: "uniconify_defer";
-         action: SIGNAL_EMIT "e,action,uniconify,done" "e";
-      }
-      program { name: "iconify";
-         action: STATE_SET "iconic" 0.0;
-         transition: ACCELERATE_FACTOR 0.4 2 CURRENT;
-         target: "shower";
-         after: "iconify_defer";
-      }
-      program { name: "uniconify";
-         action: STATE_SET "visible" 0.0;
-         transition: DECELERATE_FACTOR 0.2 2 CURRENT;
-         target: "shower";
-         after: "uniconify_defer";
-      }
-      program {
-         signal: "e,action,uniconify"; source: "e";
-         script {
-            if (iconifying==1) {
-               stop_program(get_program_id("iconify"));
-               iconifying=0;
-               run_program(get_program_id("iconify_defer"));
-            }
-            uniconifying=1;
-            run_program(get_program_id("uniconify"));
-         }
-      }
-      program {
-         signal: "e,action,iconify"; source: "e";
-         script {
-            if (uniconifying==1) {
-               stop_program(get_program_id("uniconify"));
-               uniconifying=0;
-               run_program(get_program_id("uniconify_defer"));
-            }
-            iconifying=1;
-            run_program(get_program_id("iconify"));
-         }
-      }
    }
 }
 
@@ -525,12 +452,6 @@ group { name: "e/comp/frame/rotate/fast";
       program { name: "focus_off3";
          transition: LINEAR 0;
       }
-      program { name: "iconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
-      program { name: "uniconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
    }
 }
 
@@ -568,12 +489,6 @@ group { name: "e/comp/frame/flip/fast";
       program { name: "focus_off3";
          transition: LINEAR 0;
       }
-      program { name: "iconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
-      program { name: "uniconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
    }
 }
 
@@ -647,12 +562,6 @@ group { name: "e/comp/frame/default/fast";
          name: "focus_off";
          transition: SINUSOIDAL 0;
       }
-      program { name: "iconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
-      program { name: "uniconify";
-         transition: DECELERATE 0.15 CURRENT;
-      }
    }
 }
 
@@ -713,14 +622,6 @@ group { name: "e/comp/frame/none";
          signal: "e,state,hidden"; source: "e";
          action: SIGNAL_EMIT "e,action,hide,done" "e";
       }
-      program {
-         signal: "e,action,iconify"; source: "e";
-         action: SIGNAL_EMIT "e,action,iconify,done" "e";
-      }
-      program {
-         signal: "e,action,uniconify"; source: "e";
-         action: SIGNAL_EMIT "e,action,uniconify,done" "e";
-      }
    }
 }
 
index 9d7aaf8..d937df9 100644 (file)
@@ -420,6 +420,84 @@ group { name: "e/comp/effects/auto/grow";
    }
 }
 
+group { name: "e/comp/effects/iconify/default";
+   alias: "e/comp/effects/iconify/ibar";
+   alias: "e/comp/effects/iconify/ibox";
+   alias: "e/comp/effects/iconify/tasks";
+   inherit: "e/comp/effects/auto/pane";
+   data.item: "noclip" "1";
+   script {
+      public message(Msg_Type:type, id, ...) {
+         if ((type == MSG_INT_SET) && (id == 0)) {
+            /* set state */
+            new st;
+
+            st = getarg(2);
+
+            if (st == 1)
+              set_state(PART:"mover", "custom", 0.0);
+            else
+              set_state(PART:"mover", "default", 0.0);
+         } else if ((type == MSG_INT_SET) && (id == 1)) {
+            // border geom[4] / destination[4]
+            new x, y, w, h;
+            new dx, dy, dw, dh;
+            x = getarg(2);
+            y = getarg(3);
+            w = getarg(4);
+            h = getarg(5);
+            dx = getarg(6);
+            dy = getarg(7);
+            dw = getarg(8);
+            dh = getarg(9);
+            x = x + (w / 2);
+            y = y + (h / 2);
+            dx = dx - x;
+            dy = dy - y;
+            custom_state(PART:"mover", "default", 0.0);
+            set_state_val(PART:"mover", STATE_REL1, 1.0, 1.0);
+            set_state_val(PART:"mover", STATE_REL2, 0.0, 0.0);
+            set_state_val(PART:"mover", STATE_REL1_OFFSET, dx, dy);
+            set_state_val(PART:"mover", STATE_REL2_OFFSET, dx + dw - 1, dy + dh - 1);
+         }
+      }
+   }
+   programs {
+      program {
+         name: "show"; //iconify
+         signal: "e,action,go";
+         source: "e";
+         filter: "mover" "default";
+         action: STATE_SET "custom" 0.0;
+         transition: DECELERATE COMP_EFFECT_DURATION CURRENT;
+         target: "mover";
+         after: "done";
+      }
+      program {
+         name: "hide"; //iconify
+         signal: "e,action,go";
+         source: "e";
+         filter: "mover" "custom";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE COMP_EFFECT_DURATION CURRENT;
+         target: "mover";
+         after: "done";
+      }
+      program {
+         name: "stop";
+         signal: "e,action,stop";
+         source: "e";
+         action: ACTION_STOP;
+         target: "show";
+         target: "hide";
+      }
+      program {
+         name: "done";
+         action: SIGNAL_EMIT "e,action,done" "e";
+      }
+   }
+}
+
 #if 0 //this is weirdly broken with proxy visibility somehow...
 group { name: "e/comp/effects/auto/rotate";
    inherit: "e/comp/effects/auto/pane";