1/**************************************************************************** 2** 3** Copyright (C) 2015 The Qt Company Ltd. 4** Contact: http://www.qt.io/licensing/ 5** 6** This file is part of the Qt Mobility Components. 7** 8** $QT_BEGIN_LICENSE:LGPL21$ 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 The Qt Company. For licensing terms 14** and conditions see http://www.qt.io/terms-conditions. For further 15** information use the contact form at http://www.qt.io/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 or version 3 as published by the Free 20** Software Foundation and appearing in the file LICENSE.LGPLv21 and 21** LICENSE.LGPLv3 included in the packaging of this file. Please review the 22** following information to ensure the GNU Lesser General Public License 23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and 24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 25** 26** As a special exception, The Qt Company gives you certain additional 27** rights. These rights are described in The Qt Company LGPL Exception 28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 29** 30** $QT_END_LICENSE$ 31** 32****************************************************************************/ 33 34import QtQuick 2.1 35 36Rectangle { 37 id: root 38 color: "transparent" 39 radius: 5 40 property alias value: grip.value 41 property color fillColor: "#14aaff" 42 property real gripSize: 40 43 property real gripTolerance: 3.0 44 property real increment: 0.1 45 property bool enabled: true 46 47 Rectangle { 48 id: slider 49 anchors { 50 left: parent.left 51 right: parent.right 52 verticalCenter: parent.verticalCenter 53 } 54 height: 10 55 color: "transparent" 56 57 BorderImage { 58 id: sliderbarimage 59 source: "qrc:/images/Slider_bar.png" 60 anchors { fill: parent; margins: 1 } 61 border.right: 5 62 border.left: 5 63 } 64 Rectangle { 65 height: parent.height -2 66 anchors.left: parent.left 67 anchors.right: grip.horizontalCenter 68 color: root.fillColor 69 radius: 3 70 border.width: 1 71 border.color: Qt.darker(color, 1.3) 72 opacity: 0.8 73 } 74 Rectangle { 75 id: grip 76 property real value: 0.5 77 x: (value * parent.width) - width/2 78 anchors.verticalCenter: parent.verticalCenter 79 width: root.gripTolerance * root.gripSize 80 height: width 81 radius: width/2 82 color: "transparent" 83 84 Image { 85 id: sliderhandleimage 86 source: "qrc:/images/Slider_handle.png" 87 anchors.centerIn: parent 88 } 89 90 MouseArea { 91 id: mouseArea 92 enabled: root.enabled 93 anchors.fill: parent 94 drag { 95 target: grip 96 axis: Drag.XAxis 97 minimumX: -parent.width/2 98 maximumX: root.width - parent.width/2 99 } 100 onPositionChanged: { 101 if (drag.active) 102 updatePosition() 103 } 104 onReleased: { 105 updatePosition() 106 } 107 function updatePosition() { 108 value = (grip.x + grip.width/2) / slider.width 109 } 110 } 111 } 112 113 } 114} 115