feature: iconify/uniconify animations for windows
authorMike Blumenkrantz <zmike@samsung.com>
Fri, 20 Dec 2013 03:22:16 +0000 (22:22 -0500)
committerMike Blumenkrantz <zmike@samsung.com>
Wed, 15 Jan 2014 01:16:13 +0000 (20:16 -0500)
data/themes/edc/comp.edc
data/themes/edc/deskmirror.edc

index e3aeea0..93561c0 100644 (file)
@@ -289,6 +289,10 @@ group { name: "e/comp/frame/default";
             rel1.relative: 0.0  0.0;
             rel2.relative: 1.0  1.0;
          }
+         description { state: "iconic";
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 0.0 1.0;
+         }
       }
       part { name: "focus-clipper";
          type: RECT;
@@ -313,6 +317,10 @@ group { name: "e/comp/frame/default";
          }
       }
    }
+   script {
+      public iconifying;
+      public uniconifying;
+   }
    programs {
       program {
          name: "visible_on";
@@ -395,6 +403,48 @@ 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: DECELERATE 0.4 CURRENT;
+         target: "shower";
+         after: "iconify_defer";
+      }
+      program { name: "uniconify";
+         action: STATE_SET "visible" 0.0;
+         transition: DECELERATE 0.4 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"));
+         }
+      }
    }
 }
 
@@ -589,6 +639,14 @@ 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 7d164bd..5a81ed9 100644 (file)
@@ -31,11 +31,20 @@ group { name: "e/deskmirror/frame/default";
             rel2.to_y: "e.swallow.client";
          }
       }
+      part { name: "spacer"; type: SPACER;
+         description { state: "default";
+         }
+         description { state: "iconic";
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 0.0 1.0;
+         }
+      }
       part { name: "e.swallow.client"; type: SWALLOW;
          clip_to: "client_clip";
          description { state: "default" 0.0;
             rel1.to_y: "top";
             rel1.relative: 0 1;
+            rel2.to: "spacer";
          }
       }
       part { name: "top";
@@ -44,6 +53,7 @@ group { name: "e/deskmirror/frame/default";
             image.normal: "vgrad_med_lighter.png";
             fill.smooth: 0;
             TILED_HORIZ(120)
+            rel1.to: "spacer";
             rel2.to_y: "title2";
             rel2.offset: -1 -4;
             min: 0 1;
@@ -65,8 +75,10 @@ group { name: "e/deskmirror/frame/default";
          description { state: "default" 0.0;
             color_class: "border_title";
             rel1.offset: 1 3;
+            rel1.to: "spacer";
             rel2.relative: 1.0 0.0;
             rel2.offset: -2 3;
+            rel2.to: "spacer";
             align: 0.5 0.0;
             color: 21 21 21 255;
             color3: 255 255 255 25;
@@ -85,8 +97,10 @@ group { name: "e/deskmirror/frame/default";
          description { state: "default" 0.0;
             color_class: "border_title_active";
             rel1.offset: 1 2;
+            rel1.to: "spacer";
             rel2.relative: 1.0 0.0;
             rel2.offset: -1 2;
+            rel2.to: "spacer";
             align: 0.5 0.0;
             color: 255 255 255 255;
             color3: 0 0 0 18;
@@ -105,8 +119,10 @@ group { name: "e/deskmirror/frame/default";
          description { state: "default" 0.0;
             color_class: "border_bottom";
             rel1.to_y: "e.swallow.client";
+            rel1.to_x: "spacer";
             rel1.relative: 0.0 1.0;
             rel1.offset: 0 -3;
+            rel2.to: "spacer";
             min: 0 1;
             color: 64 64 64 255;
             fixed: 0 1;
@@ -326,6 +342,30 @@ group { name: "e/deskmirror/frame/default";
          target: "bottom";
          target: "bevel2";
       }
+      program { name: "iconify";
+         action: STATE_SET "iconic" 0.0;
+         transition: DECELERATE 0.4 CURRENT;
+         target: "spacer";
+      }
+      program { name: "uniconify";
+         action: STATE_SET "default" 0.0;
+         transition: DECELERATE 0.4 CURRENT;
+         target: "spacer";
+      }
+      program {
+         signal: "e,action,uniconify"; source: "e";
+         script {
+            stop_program(get_program_id("iconify"));
+            run_program(get_program_id("uniconify"));
+         }
+      }
+      program {
+         signal: "e,action,iconify"; source: "e";
+         script {
+            stop_program(get_program_id("uniconify"));
+            run_program(get_program_id("iconify"));
+         }
+      }
    }
 }