diff -r 000000000000 -r 4f2f89ce4247 WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc --- /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(); + } + } + } +}