Warning, /maui/mauikit/src/style.5/ScrollBar.qml is written in an unsupported language. File is not indexed.
0001 /**************************************************************************** 0002 ** 0003 ** Copyright (C) 2017 The Qt Company Ltd. 0004 ** Contact: http://www.qt.io/licensing/ 0005 ** 0006 ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. 0007 ** 0008 ** $QT_BEGIN_LICENSE:LGPL3$ 0009 ** Commercial License Usage 0010 ** Licensees holding valid commercial Qt licenses may use this file in 0011 ** accordance with the commercial license agreement provided with the 0012 ** Software or, alternatively, in accordance with the terms contained in 0013 ** a written agreement between you and The Qt Company. For licensing terms 0014 ** and conditions see http://www.qt.io/terms-conditions. For further 0015 ** information use the contact form at http://www.qt.io/contact-us. 0016 ** 0017 ** GNU Lesser General Public License Usage 0018 ** Alternatively, this file may be used under the terms of the GNU Lesser 0019 ** General Public License version 3 as published by the Free Software 0020 ** Foundation and appearing in the file LICENSE.LGPLv3 included in the 0021 ** packaging of this file. Please review the following information to 0022 ** ensure the GNU Lesser General Public License version 3 requirements 0023 ** will be met: https://www.gnu.org/licenses/lgpl.html. 0024 ** 0025 ** GNU General Public License Usage 0026 ** Alternatively, this file may be used under the terms of the GNU 0027 ** General Public License version 2.0 or later as published by the Free 0028 ** Software Foundation and appearing in the file LICENSE.GPL included in 0029 ** the packaging of this file. Please review the following information to 0030 ** ensure the GNU General Public License version 2.0 requirements will be 0031 ** met: http://www.gnu.org/licenses/gpl-2.0.html. 0032 ** 0033 ** $QT_END_LICENSE$ 0034 ** 0035 ****************************************************************************/ 0036 0037 import QtQuick 2.15 0038 import QtQuick.Templates 2.15 as T 0039 import org.mauikit.controls 1.3 as Maui 0040 0041 T.ScrollBar 0042 { 0043 id: control 0044 0045 implicitWidth: implicitContentWidth + rightPadding + leftPadding 0046 implicitHeight: implicitContentHeight + topPadding + bottomPadding 0047 0048 padding: control.interactive ? 1 : 2 0049 visible: control.policy !== T.ScrollBar.AlwaysOff 0050 0051 minimumSize: orientation == Qt.Horizontal ? height / width : width / height 0052 0053 interactive: !Maui.Handy.isMobile 0054 contentItem: Rectangle 0055 { 0056 implicitWidth: Maui.Style.scrollBarPolicy === Maui.Style.AutoHide ? (_timer.hovered ? 6 : 2 ) : (control.interactive ? 6 : 4 ) 0057 implicitHeight: Maui.Style.scrollBarPolicy === Maui.Style.AutoHide ? (_timer.hovered ? 6 : 2 ) : (control.interactive ? 6 : 4 ) 0058 0059 radius: Maui.Style.radiusV 0060 0061 color: control.pressed ? Maui.Theme.highlightColor : 0062 control.interactive && control.hovered ? Maui.Theme.highlightColor : (Maui.ColorUtils.linearInterpolation(Maui.Theme.alternateBackgroundColor, Maui.Theme.textColor, 0.2)) 0063 opacity: 0.0 0064 0065 Behavior on color 0066 { 0067 Maui.ColorTransition{} 0068 } 0069 } 0070 0071 background: Rectangle 0072 { 0073 radius: Maui.Style.radiusV 0074 0075 color: Maui.Theme.alternateBackgroundColor 0076 opacity: 0.0 0077 visible: Maui.Style.scrollBarPolicy === Maui.Style.AutoHide ? false : control.interactive && control.pressed && control.active 0078 } 0079 0080 states: State { 0081 name: "active" 0082 when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0) 0083 } 0084 0085 transitions: [ 0086 Transition { 0087 to: "active" 0088 NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 } 0089 }, 0090 Transition { 0091 from: "active" 0092 SequentialAnimation { 0093 PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 } 0094 PauseAnimation { duration: 2450 } 0095 NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 } 0096 } 0097 } 0098 ] 0099 0100 readonly property bool isActive : control.hovered || control.pressed || control.active 0101 0102 onIsActiveChanged: 0103 { 0104 if(!control.isActive) 0105 _timer.start() 0106 else 0107 { 0108 _timer.hovered = true 0109 } 0110 } 0111 0112 Timer 0113 { 0114 id: _timer 0115 interval: 2800 0116 repeat: false 0117 0118 property bool hovered: false 0119 onTriggered: 0120 { 0121 if(control.hovered || control.pressed || control.active) 0122 return; 0123 0124 _timer.hovered = false 0125 } 0126 } 0127 }