1/**************************************************************************** 2** 3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). 4** Contact: http://www.qt-project.org/legal 5** 6** This file is part of the QtQuick module of the Qt Toolkit. 7** 8** $QT_BEGIN_LICENSE:LGPL$ 9** Commercial License Usage 10** Licensees holding valid commercial Qt licenses may use this file in 11** accordance with the commercial license agreement provided with the 12** Software or, alternatively, in accordance with the terms contained in 13** a written agreement between you and Digia. For licensing terms and 14** conditions see http://qt.digia.com/licensing. For further information 15** use the contact form at http://qt.digia.com/contact-us. 16** 17** GNU Lesser General Public License Usage 18** Alternatively, this file may be used under the terms of the GNU Lesser 19** General Public License version 2.1 as published by the Free Software 20** Foundation and appearing in the file LICENSE.LGPL included in the 21** packaging of this file. Please review the following information to 22** ensure the GNU Lesser General Public License version 2.1 requirements 23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 24** 25** In addition, as a special exception, Digia gives you certain additional 26** rights. These rights are described in the Digia Qt LGPL Exception 27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 28** 29** GNU General Public License Usage 30** Alternatively, this file may be used under the terms of the GNU 31** General Public License version 3.0 as published by the Free Software 32** Foundation and appearing in the file LICENSE.GPL included in the 33** packaging of this file. Please review the following information to 34** ensure the GNU General Public License version 3.0 requirements will be 35** met: http://www.gnu.org/copyleft/gpl.html. 36** 37** 38** $QT_END_LICENSE$ 39** 40****************************************************************************/ 41 42import QtQuick 2.0 43 44Item { 45 id:slider 46 property real min:0 47 property real max:1 48 property real value: min + (max - min) * (bar.x / (foo.width - bar.width)) 49 property real init:min+(max-min)/2 50 property string name:"Slider" 51 52 Component.onCompleted: setValue(init) 53 function setValue(v) { 54 if (min < max) 55 bar.x = v/(max - min) * (foo.width - bar.width); 56 } 57 Rectangle { 58 id:sliderName 59 anchors.left:parent.left 60 height: childrenRect.height 61 width:childrenRect.width 62 anchors.verticalCenter:parent.verticalCenter 63 Text { 64 text:slider.name 65 font.pointSize:12 66 } 67 } 68 Item { 69 id: foo 70 height: 6 71 width: parent.width - 4 - sliderName.width 72 anchors.verticalCenter:parent.verticalCenter 73 anchors.left:sliderName.right 74 anchors.leftMargin:5 75 Rectangle { 76 height: parent.height 77 anchors.left: parent.left 78 anchors.right: bar.horizontalCenter 79 color: "blue" 80 radius: 3 81 } 82 Rectangle { 83 height: parent.height 84 anchors.left: bar.horizontalCenter 85 anchors.right: parent.right 86 color: "gray" 87 radius: 3 88 } 89 Rectangle { 90 anchors.fill: parent 91 color: "transparent" 92 radius: 3 93 border.width: 2 94 border.color: "black" 95 } 96 97 Rectangle { 98 id: bar 99 y: -7 100 width: 20 101 height: 20 102 radius: 15 103 color: "white" 104 border.width: 2 105 border.color: "black" 106 MouseArea { 107 anchors.fill: parent 108 drag.target: parent 109 drag.axis: Drag.XAxis 110 drag.minimumX: 0 111 drag.maximumX: foo.width - parent.width 112 } 113 } 114 } 115} 116