mirror of https://github.com/Nheko-Reborn/nheko
parent
e3eb87cc21
commit
c5e8b2da15
@ -0,0 +1,77 @@ |
||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors |
||||
// |
||||
// SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
||||
import QtQuick 2.15 |
||||
import QtQuick.Controls 2.15 |
||||
import im.nheko 1.0 |
||||
|
||||
Slider { |
||||
id: slider |
||||
|
||||
property real sliderWidth |
||||
property real sliderHeight |
||||
property bool alwaysShowSlider: true |
||||
|
||||
anchors.bottomMargin: orientation == Qt.Vertical ? Nheko.paddingMedium : undefined |
||||
anchors.topMargin: orientation == Qt.Vertical ? Nheko.paddingMedium : undefined |
||||
anchors.leftMargin: orientation == Qt.Vertical ? undefined : Nheko.paddingMedium |
||||
anchors.rightMargin: orientation == Qt.Vertical ? undefined : Nheko.paddingMedium |
||||
|
||||
background: Rectangle { |
||||
x: slider.leftPadding + (slider.orientation == Qt.Vertical ? slider.availableWidth / 2 - width / 2 : 0) |
||||
y: slider.topPadding + (slider.orientation == Qt.Vertical ? 0 : slider.availableHeight / 2 - height / 2) |
||||
// implicitWidth: slider.orientation == Qt.Vertical ? 8 : 100 |
||||
// implicitHeight: slider.orientation == Qt.Vertical ? 100 : 8 |
||||
width: slider.orientation == Qt.Vertical ? sliderWidth : slider.availableWidth |
||||
height: slider.orientation == Qt.Vertical ? slider.availableHeight : sliderHeight |
||||
radius: 2 |
||||
color: { |
||||
if (slider.orientation == Qt.Vertical) { |
||||
return Nheko.colors.highlight; |
||||
} else { |
||||
var col = Nheko.colors.buttonText; |
||||
return Qt.rgba(col.r, col.g, col.b, 0.5); |
||||
} |
||||
} |
||||
border.color: { |
||||
var col = Nheko.colors.base; |
||||
return Qt.rgba(col.r, col.g, col.b, 0.5); |
||||
} |
||||
|
||||
Rectangle { |
||||
width: slider.orientation == Qt.Vertical ? parent.width : slider.visualPosition * parent.width |
||||
height: slider.orientation == Qt.Vertical ? slider.visualPosition * parent.height : parent.height |
||||
color: { |
||||
if (slider.orientation == Qt.Vertical) { |
||||
return Nheko.colors.buttonText; |
||||
} else { |
||||
return Nheko.colors.highlight; |
||||
} |
||||
} |
||||
radius: 2 |
||||
} |
||||
|
||||
} |
||||
|
||||
handle: Rectangle { |
||||
x: { |
||||
if (slider.orientation == Qt.Vertical) |
||||
return slider.leftPadding + slider.availableWidth / 2 - width / 2; |
||||
else |
||||
return slider.leftPadding + slider.visualPosition * (slider.availableWidth - width); |
||||
} |
||||
y: { |
||||
if (slider.orientation == Qt.Vertical) |
||||
return slider.topPadding + slider.visualPosition * (slider.availableHeight - height); |
||||
else |
||||
return slider.topPadding + slider.availableHeight / 2 - height / 2; |
||||
} |
||||
implicitWidth: 16 |
||||
implicitHeight: 16 |
||||
radius: slider.width / 2 |
||||
color: Nheko.colors.highlight |
||||
visible: alwaysShowSlider || slider.hovered || slider.pressed || Settings.mobileMode |
||||
} |
||||
|
||||
} |
@ -1,3 +1,4 @@ |
||||
module im.nheko.UI |
||||
NhekoSlider 1.0 NhekoSlider.qml |
||||
Ripple 1.0 Ripple.qml |
||||
Spinner 1.0 Spinner.qml |
Loading…
Reference in new issue