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.0 35 36Rectangle { 37 id: root 38 color: "transparent" 39 radius: 5 40 property alias value: grip.value 41 property color gripColor: "transparent" 42 property real gripSize: 20 43 property real gripTolerance: 3.0 44 property real increment: 0.1 45 property bool enabled: true 46 property string imageSource: "qrc:/images/Triangle_Top.png" 47 48 Rectangle { 49 id: grip 50 property real value: 0.5 51 x: (value * parent.width) - width/2 52 anchors.verticalCenter: parent.verticalCenter 53 width: root.gripTolerance * root.gripSize 54 height: width 55 radius: width/2 56 color: "transparent" 57 58 Image { 59 id: sliderhandleimage 60 source: imageSource 61 anchors.centerIn: parent 62 } 63 64 MouseArea { 65 id: mouseArea 66 enabled: root.enabled 67 anchors.fill: parent 68 drag { 69 target: grip 70 axis: Drag.XAxis 71 minimumX: -parent.width/2 72 maximumX: root.width - parent.width/2 73 } 74 onPositionChanged: { 75 if (drag.active) 76 updatePosition() 77 } 78 onReleased: { 79 updatePosition() 80 } 81 function updatePosition() { 82 value = (grip.x + grip.width/2) / grip.parent.width 83 } 84 } 85 } 86} 87