--- /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();
+ }
+ }
+ }
+}