WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc
changeset 0 4f2f89ce4247
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc	Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,317 @@
+/*
+    Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia
+    Copyright (C) 2009,2010 ProFUSION embedded systems
+    Copyright (C) 2009,2010 Samsung Electronics
+
+    This file is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+group {
+    name: "scrollbar.vertical";
+
+    min: 10 0; /* if > 0, this is the minimum size that will be allocated.
+                * If wants to draw on top, just overflow usign edje's rel1/rel2
+                */
+
+    images {
+        image: "widget/scrollbar/scrollbar_v.png" COMP;
+        image: "widget/scrollbar/scrollbar_knob_v.png" COMP;
+    }
+
+    script {
+        public hide_timer;
+
+        public hide_timer_cb(val) {
+            run_program(PROGRAM:"hide");
+            return 0;
+        }
+
+        public hide_timer_stop() {
+            new id = get_int(hide_timer);
+            if (id <= 0)
+                return;
+
+            cancel_timer(id);
+            set_int(hide_timer, 0);
+        }
+
+        public hide_timer_start() {
+            set_int(hide_timer, timer(1.0, "hide_timer_cb", 0));
+        }
+
+        public message(Msg_Type:type, id, ...) {
+            if ((id == 0) && (type == MSG_FLOAT_SET)) {
+                new Float:vy, Float:sy;
+
+                vy = getfarg(2);
+                sy = getfarg(3);
+
+                if (vy >= 0.0) {
+                    set_drag_size(PART:"img.knob", 1.0, sy);
+                    set_drag(PART:"img.knob", 0.0, vy);
+                    run_program(PROGRAM:"show");
+                } else
+                    run_program(PROGRAM:"hide");
+
+                hide_timer_stop();
+                hide_timer_start();
+            }
+        }
+
+        public update_drag_pos() {
+            new Float:x, Float:y;
+            get_drag(PART:"img.knob", x, y);
+            send_message(MSG_FLOAT, 1, y);
+        }
+    }
+
+    parts {
+         part {
+            name: "rect.base";
+            type: RECT;
+            description {
+               min: 10 0;
+               max: 10 999999;
+               state: "default" 0.0;
+               color: 255 255 255 0;
+            }
+         }
+         part {
+            name: "rect.clipper";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description {
+               state: "hidden" 0.0;
+               color: 255 255 255 128;
+            }
+         }
+
+         part {
+            name: "img.scrollbar";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+               state: "default" 0.0;
+               image {
+                  normal: "widget/scrollbar/scrollbar_v.png";
+                  border: 0 0 6 6;
+               }
+           }
+         }
+
+         part {
+            name: "img.knob";
+            type: IMAGE;
+            mouse_events: 1;
+            clip_to: "rect.clipper";
+            dragable {
+                x: 0 0 0;
+                y: 1 1 0;
+                confine: "rect.base";
+            }
+            description {
+               state: "default" 0.0;
+               min: 10 10;
+               max: 10 999999;
+               image {
+                  normal: "widget/scrollbar/scrollbar_knob_v.png";
+                  border: 0 0 6 6;
+               }
+            }
+         }
+    }
+    programs {
+        program {
+           name: "load";
+           signal: "load";
+           action: STATE_SET "hidden" 0.0;
+           target: "rect.clipper";
+        }
+        program {
+           name: "hide";
+           action: STATE_SET "hidden" 0.0;
+           transition: ACCELERATE 0.5;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "show";
+           action: STATE_SET "default" 0.0;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "dragged";
+           signal: "drag";
+           source: "img.knob";
+           script {
+              update_drag_pos();
+           }
+        }
+    }
+}
+
+group {
+    name: "scrollbar.horizontal";
+
+    min: 0 10; /* if > 0, this is the minimum size that will be allocated.
+                * If wants to draw on top, just overflow usign edje's rel1/rel2
+                */
+
+    images {
+        image: "widget/scrollbar/scrollbar_h.png" COMP;
+        image: "widget/scrollbar/scrollbar_knob_h.png" COMP;
+    }
+
+    script {
+        public hide_timer;
+
+        public hide_timer_cb(val) {
+            run_program(PROGRAM:"hide");
+            return 0;
+        }
+
+        public hide_timer_stop() {
+            new id = get_int(hide_timer);
+            if (id <= 0)
+                return;
+
+            cancel_timer(id);
+            set_int(hide_timer, 0);
+        }
+
+        public hide_timer_start() {
+            set_int(hide_timer, timer(1.0, "hide_timer_cb", 0));
+        }
+
+        public message(Msg_Type:type, id, ...) {
+            if ((id == 0) && (type == MSG_FLOAT_SET)) {
+                new Float:vx, Float:sx;
+
+                vx = getfarg(2);
+                sx = getfarg(3);
+
+                if (vx >= 0.0) {
+                    set_drag_size(PART:"img.knob", sx, 1.0);
+                    set_drag(PART:"img.knob", vx, 0.0);
+                    run_program(PROGRAM:"show");
+                } else
+                    run_program(PROGRAM:"hide");
+
+                hide_timer_stop();
+                hide_timer_start();
+            }
+        }
+
+        public update_drag_pos() {
+            new Float:x, Float:y;
+            get_drag(PART:"img.knob", x, y);
+            send_message(MSG_FLOAT, 1, x);
+        }
+    }
+
+    parts {
+         part {
+            name: "rect.base";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               min: 0 10;
+               max: 999999 10;
+               color: 255 255 255 0;
+            }
+         }
+         part {
+            name: "rect.clipper";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description {
+               state: "hidden" 0.0;
+               color: 255 255 255 128;
+            }
+         }
+
+         part {
+            name: "img.scrollbar";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+               state: "default" 0.0;
+               image {
+                  normal: "widget/scrollbar/scrollbar_h.png";
+                  border: 6 6 0 0;
+               }
+           }
+         }
+
+         part {
+            name: "img.knob";
+            type: IMAGE;
+            mouse_events: 1;
+            clip_to: "rect.clipper";
+            dragable {
+                x: 1 1 0;
+                y: 0 0 0;
+                confine: "rect.base";
+            }
+            description {
+               state: "default" 0.0;
+               min: 10 10;
+               image {
+                  normal: "widget/scrollbar/scrollbar_knob_h.png";
+                  border: 6 6 0 0;
+               }
+            }
+         }
+    }
+    programs {
+        program {
+           name: "load";
+           signal: "load";
+           action: STATE_SET "hidden" 0.0;
+           target: "rect.clipper";
+        }
+        program {
+           name: "hide";
+           action: STATE_SET "hidden" 0.0;
+           transition: ACCELERATE 0.5;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "show";
+           action: STATE_SET "default" 0.0;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "dragged";
+           signal: "drag";
+           source: "img.knob";
+           script {
+              update_drag_pos();
+           }
+        }
+    }
+}