1/**************************************************************************** 2** 3** Copyright (C) 2017 The Qt Company Ltd. 4** Contact: http://www.qt.io/licensing/ 5** 6** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. 7** 8** $QT_BEGIN_LICENSE:LGPL3$ 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 3 as published by the Free Software 20** Foundation and appearing in the file LICENSE.LGPLv3 included in the 21** packaging of this file. Please review the following information to 22** ensure the GNU Lesser General Public License version 3 requirements 23** will be met: https://www.gnu.org/licenses/lgpl.html. 24** 25** GNU General Public License Usage 26** Alternatively, this file may be used under the terms of the GNU 27** General Public License version 2.0 or later as published by the Free 28** Software Foundation and appearing in the file LICENSE.GPL included in 29** the packaging of this file. Please review the following information to 30** ensure the GNU General Public License version 2.0 requirements will be 31** met: http://www.gnu.org/licenses/gpl-2.0.html. 32** 33** $QT_END_LICENSE$ 34** 35****************************************************************************/ 36 37import QtQuick 2.12 38import QtQuick.Controls 2.12 39import QtQuick.Controls.impl 2.12 40import QtQuick.Controls.Fusion 2.12 41import QtQuick.Controls.Fusion.impl 2.12 42 43Rectangle { 44 id: groove 45 46 property Item control 47 property real offset 48 property real progress 49 property real visualProgress 50 51 x: control.horizontal ? 0 : (control.availableWidth - width) / 2 52 y: control.horizontal ? (control.availableHeight - height) / 2 : 0 53 54 implicitWidth: control.horizontal ? 160 : 5 55 implicitHeight: control.horizontal ? 5 : 160 56 width: control.horizontal ? control.availableWidth : implicitWidth 57 height: control.horizontal ? implicitHeight : control.availableHeight 58 59 radius: 2 60 border.color: Fusion.outline(control.palette) 61 scale: control.horizontal && control.mirrored ? -1 : 1 62 63 gradient: Gradient { 64 GradientStop { 65 position: 0 66 color: Qt.darker(Fusion.grooveColor(groove.control.palette), 1.1) 67 } 68 GradientStop { 69 position: 1 70 color: Qt.lighter(Fusion.grooveColor(groove.control.palette), 1.1) 71 } 72 } 73 74 Rectangle { 75 x: groove.control.horizontal ? groove.offset * parent.width : 0 76 y: groove.control.horizontal ? 0 : groove.visualProgress * parent.height 77 width: groove.control.horizontal ? groove.progress * parent.width - groove.offset * parent.width : 5 78 height: groove.control.horizontal ? 5 : groove.progress * parent.height - groove.offset * parent.height 79 80 radius: 2 81 border.color: Qt.darker(Fusion.highlightedOutline(groove.control.palette), 1.1) 82 83 gradient: Gradient { 84 GradientStop { 85 position: 0 86 color: Fusion.highlight(groove.control.palette) 87 } 88 GradientStop { 89 position: 1 90 color: Qt.lighter(Fusion.highlight(groove.control.palette), 1.2) 91 } 92 } 93 } 94} 95