/* 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: "webkit/widget/slider/vertical"; min: 11 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 */ max: 11 999999; images { image: "widget/slider/slider_v.png" COMP; image: "widget/slider/slider_knob_v.png" COMP; image: "widget/slider/slider_knob_press_v.png" COMP; image: "widget/slider/slider_fill_v.png" COMP; } script { public isEnabled; public isPressed; public isChecked; public isFocused; public isHovered; public show() { if (get_int(isEnabled) == 1) { set_state(PART:"img.knob", "default", 0.0); if (get_int(isFocused) == 1) { set_state(PART:"img.knob", "pressed", 0.0); if (get_int(isPressed) == 1) set_state(PART:"img.knob", "pressed", 0.0); } else if (get_int(isHovered) == 1) { set_state(PART:"img.knob", "pressed", 0.0); if (get_int(isPressed) == 1) set_state(PART:"img.knob", "pressed", 0.0); } } else set_state(PART:"img.knob", "default", 0.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"); } } 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: 11 29; max: 11 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.slider"; type: IMAGE; mouse_events: 0; clip_to: "rect.clipper"; description { state: "default" 0.0; min: 5 29; max: 5 999999; rel1.to: "rect.base"; rel2.to: "rect.base"; image { normal: "widget/slider/slider_v.png"; border: 0 0 5 5; } } } part { name: "img.slider_fill"; type: IMAGE; mouse_events: 0; clip_to: "rect.clipper"; description { state: "default" 0.0; min: 5 29; max: 5 999999; rel1.to: "img.knob"; rel2.to: "rect.base"; align: 0.5 0.5; image { normal: "widget/slider/slider_fill_v.png"; border: 0 0 5 5; } } } part { name: "img.knob"; type: IMAGE; mouse_events: 1; clip_to: "rect.clipper"; dragable { x: 0 0 0; y: 1 1 1; confine: "rect.base"; } description { state: "default" 0.0; min: 11 29; align: 0.5 0.5; image { normal: "widget/slider/slider_knob_v.png"; border: 0 0 6 6; } } description { state: "pressed" 0.0; inherit: "default" 0.0; image.normal: "widget/slider/slider_knob_press_v.png"; } } } 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(); } } program { name: "enabled"; signal: "enabled"; script { set_int(isEnabled, 1); show(); } } program { name: "pressed"; signal: "pressed"; script { set_int(isPressed, 1); show(); } } program { name: "checked"; signal: "checked"; script { set_int(isChecked, 1); show(); } } program { name: "focused"; signal: "focused"; script { set_int(isFocused, 1); show(); } } program { name: "hovered"; signal: "hovered"; script { set_int(isHovered, 1); show(); } } program { name: "reset"; signal: "reset"; script { set_int(isEnabled, 0); set_int(isPressed, 0); set_int(isChecked, 0); set_int(isFocused, 0); set_int(isHovered, 0); show(); } } } } group { name: "webkit/widget/slider/horizontal"; min: 0 11; /* if > 0, this is the minimum size that will be allocated. * If wants to draw on top, just overflow usign edje's rel1/rel2 */ max: 999999 11; images { image: "widget/slider/slider_h.png" COMP; image: "widget/slider/slider_knob_h.png" COMP; image: "widget/slider/slider_knob_press_h.png" COMP; image: "widget/slider/slider_fill_h.png" COMP; } script { public isEnabled; public isPressed; public isChecked; public isFocused; public isHovered; public show() { if (get_int(isEnabled) == 1) { set_state(PART:"img.knob", "default", 0.0); if (get_int(isFocused) == 1) { set_state(PART:"img.knob", "pressed", 0.0); if (get_int(isPressed) == 1) set_state(PART:"img.knob", "pressed", 0.0); } else if (get_int(isHovered) == 1) { set_state(PART:"img.knob", "pressed", 0.0); if (get_int(isPressed) == 1) set_state(PART:"img.knob", "pressed", 0.0); } } else set_state(PART:"img.knob", "default", 0.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"); } } 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: 29 11; max: 999999 11; 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.slider"; type: IMAGE; mouse_events: 0; clip_to: "rect.clipper"; description { state: "default" 0.0; min: 29 5; max: 999999 5; rel1.to: "rect.base"; rel2.to: "rect.base"; align: 0.5 0.5; image { normal: "widget/slider/slider_h.png"; border: 5 5 0 0; } } } part { name: "img.slider_fill"; type: IMAGE; mouse_events: 0; clip_to: "rect.clipper"; description { state: "default" 0.0; min: 29 5; max: 999999 5; rel1.to: "rect.base"; rel2.to: "img.knob"; align: 0.5 0.5; image { normal: "widget/slider/slider_fill_h.png"; border: 5 5 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: 29 11; align: 0.5 0.5; image { normal: "widget/slider/slider_knob_h.png"; border: 6 6 0 0; } } description { state: "pressed" 0.0; inherit: "default" 0.0; image.normal: "widget/slider/slider_knob_press_h.png"; } } } 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(); } } program { name: "enabled"; signal: "enabled"; script { set_int(isEnabled, 1); show(); } } program { name: "pressed"; signal: "pressed"; script { set_int(isPressed, 1); show(); } } program { name: "checked"; signal: "checked"; script { set_int(isChecked, 1); show(); } } program { name: "focused"; signal: "focused"; script { set_int(isFocused, 1); show(); } } program { name: "hovered"; signal: "hovered"; script { set_int(isHovered, 1); show(); } } program { name: "reset"; signal: "reset"; script { set_int(isEnabled, 0); set_int(isPressed, 0); set_int(isChecked, 0); set_int(isFocused, 0); set_int(isHovered, 0); show(); } } } }