merge with master
[platform/core/uifw/efl-theme-tizen.git] / themes / widgets / toolbar.edc
index b154722..b190def 100644 (file)
@@ -1027,6 +1027,23 @@ group { name: "elm/toolbar/object/default";
 }
 
 group { name: "elm/toolbar/base/tabbar";
+   images {
+      image: "00_effect_tab_bounce_left.png" COMP;
+      image: "00_effect_tab_bounce_right.png" COMP;
+   }
+   script {
+      public left_timer, right_timer;
+      public l_timer(val) {
+         emit("do-hide-left-shadow", "");
+         set_int(left_timer, 0);
+         return 0;
+      }
+      public r_timer(val) {
+         emit("do-hide-right-shadow", "");
+         set_int(right_timer, 0);
+         return 0;
+      }
+   }
    parts {
       part { name: "base";
          type: RECT;
@@ -1089,13 +1106,120 @@ group { name: "elm/toolbar/base/tabbar";
             rel2.to: "clipper";
          }
       }
-      part { name: "event";
+      part { name: "left_shadow_clip";
          type: RECT;
-         mouse_events: 1;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+         description { state: "show" 0.0;
+         }
+      }
+      part { name: "right_shadow_clip";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+         description { state: "show" 0.0;
+         }
+      }
+      part { name: "shadow_left";
+         clip_to: "left_shadow_clip";
+         type: IMAGE;
+         scale: 1;
          repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 162 0;
+            fixed: 1 1;
+            align: 0.0 0.5;
+            color: 255 255 255 255;
+            rel1.relative: 0.0 0.0;
+            rel2.relative: 0.0 1.0;
+            image.normal: "00_effect_tab_bounce_left.png";
+         }
+      }
+      part { name: "shadow_right";
+         clip_to: "right_shadow_clip";
+         type: IMAGE;
          scale: 1;
+         repeat_events: 1;
          description { state: "default" 0.0;
-            color: 0 0 0 0;
+            min: 162 0;
+            fixed: 1 1;
+            align: 1.0 0.5;
+            color: 255 255 255 255;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 1.0;
+            image.normal: "00_effect_tab_bounce_right.png";
+         }
+      }
+   }
+   programs {
+      program { name: "load";
+         script {
+            set_int(left_timer, 0);
+            set_int(right_timer, 0);
+         }
+      }
+      program { name: "left_shadow_show";
+         signal: "do-show-left-shadow";
+         source: "";
+         action:  STATE_SET "show" 0.0;
+         transition: LINEAR 0.3;
+         target: "left_shadow_clip";
+      }
+      program { name: "left_shadow_hide";
+         signal: "do-hide-left-shadow";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.3;
+         target: "left_shadow_clip";
+      }
+      program { name: "right_shadow_show";
+         signal: "do-show-right-shadow";
+         source: "";
+         action:  STATE_SET "show" 0.0;
+         transition: LINEAR 0.3;
+         target: "right_shadow_clip";
+      }
+      program { name: "right_shadow_hide";
+         signal: "do-hide-right-shadow";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.3;
+         target: "right_shadow_clip";
+      }
+      program { name: "edge_left";
+         signal: "elm,edge,left";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(left_timer);
+            if (!v) {
+                emit("do-show-left-shadow", "");
+            }
+            if (v > 0) cancel_timer(v);
+            v = timer(0.5, "l_timer", 0);
+            set_int(left_timer, v);
+         }
+      }
+      program { name: "edge_right";
+         signal: "elm,edge,right";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(right_timer);
+            if (!v) {
+                emit("do-show-right-shadow", "");
+            }
+            if (v > 0) cancel_timer(v);
+            v = timer(0.5, "r_timer", 0);
+            set_int(right_timer, v);
          }
       }
    }
@@ -1271,7 +1395,6 @@ group { name: "elm/toolbar/more/tabbar";
 group { name: "elm/toolbar/item/tabbar";
    images {
       image: "00_tab_press.png" COMP;
-      image: "00_divider_line.png" COMP;
       image: "00_badge_bg.png" COMP;
    }
 
@@ -1287,16 +1410,12 @@ group { name: "elm/toolbar/item/tabbar";
          mouse_events: 0;
          description { state: "default" 0.0;
             min: 172 0;
-            color: 248 246 239 255;
+            visible: 0;
          }
          description { state: "icon_text" 0.0;
             inherit: "default" 0.0;
             min: 229 0;
          }
-         description { state: "moving" 0.0;
-            inherit: "default" 0.0;
-            visible: 0;
-         }
       }
       part { name: "bg_cover";
          type: IMAGE;
@@ -1879,7 +1998,7 @@ group { name: "elm/toolbar/item/tabbar";
          }
       }
       part { name: "divider";
-         type: IMAGE;
+         type: RECT;
          scale: 1;
          description { state: "default" 0.0;
             min: 4 26;
@@ -1893,19 +2012,49 @@ group { name: "elm/toolbar/item/tabbar";
                 relative: 1.0 0.5;
                 to_y: "elm.swallow.icon";
             }
-            image {
-                normal: "00_divider_line.png";
-                border: 0 0 2 2;
-            }
          }
          description { state: "hidden" 0.0;
             inherit: "default" 0.0;
             visible: 0;
          }
       }
+      part { name: "divider_left";
+         type: RECT;
+         clip_to: "divider";
+         description { state: "default" 0.0;
+            color: TABBAR_ITEM_DIVIDER_LEFT_COLOR_INC;
+            rel1 {
+                relative: 0.0 0.0;
+                to: "divider";
+            }
+            rel2 {
+                relative: 0.5 1.0;
+                to: "divider";
+            }
+         }
+      }
+      part { name: "divider_right";
+         type: RECT;
+         clip_to: "divider";
+         description { state: "default" 0.0;
+            color: TABBAR_ITEM_DIVIDER_RIGHT_COLOR_INC;
+            rel1 {
+                relative: 0.5 0.0;
+                to: "divider";
+            }
+            rel2 {
+                relative: 1.0 1.0;
+                to: "divider";
+            }
+         }
+      }
       part { name: "event";
          type: RECT;
          mouse_events: 1;
+         dragable {
+            x: 1 0 0;
+            y: 1 0 0;
+         }
          description { state: "default" 0.0;
             color: 0 0 0 0;
          }
@@ -1950,20 +2099,42 @@ group { name: "elm/toolbar/item/tabbar";
          signal:  "elm,state,moving";
          source:  "elm";
          action:  STATE_SET "moving" 0.0;
-         target:  "bg";
          target:  "bg_cover";
       }
-    program { name: "pressed";
+      program { name: "pressed";
          signal:  "mouse,down,1";
          source:  "event";
          action:  STATE_SET "pressed" 0.0;
          target:  "bg_cover";
       }
+      program {
+         name: "drag";
+         signal: "drag";
+         source: "event";
+         script {
+            new st[31];
+            new Float:vl;
+            new Float:dx, Float:dy;
+            get_state(PART:"bg_cover", st, 30, vl);
+            if (strcmp(st, "moving"))
+              {
+                get_drag(PART:"event", dx, dy);
+                if ((abs(dx)*abs(dx))+(abs(dy)*abs(dy)) > 400)
+                  {
+                    set_drag(PART:"event", 0.0, 0.0);
+                    set_state(PART:"bg_cover", "default", 0.0);
+                  }
+                set_drag(PART:"event", 0.0, 0.0);
+              }
+          }
+      }
       program { name: "unpressed";
          signal:  "mouse,up,1";
          source:  "event";
-         action:  STATE_SET "default" 0.0;
-         target:  "bg_cover";
+         script {
+            set_drag(PART:"event", 0.0, 0.0);
+            set_state(PART:"bg_cover", "default", 0.0);
+         }
       }
       program { name: "go";
          signal:  "mouse,clicked,1";