RibbonScrollIndicator: Added.

This commit is contained in:
Mentalflow 2024-03-28 09:04:22 +08:00
parent 0f8ab3b5a4
commit b718d18b5e
Signed by: Mentalflow
GPG Key ID: 5AE68D4401A2EE71
2 changed files with 66 additions and 1 deletions

View File

@ -43,7 +43,7 @@ set(
qml/RibbonPaperView.qml qml/RibbonPushButton.qml qml/RibbonRectangle.qml qml/RibbonPaperView.qml qml/RibbonPushButton.qml qml/RibbonRectangle.qml
qml/RibbonText.qml qml/RibbonTextBoxMenu.qml qml/RibbonPopup.qml qml/RibbonText.qml qml/RibbonTextBoxMenu.qml qml/RibbonPopup.qml
qml/RibbonPopupDialog.qml qml/RibbonLineEdit.qml qml/RibbonTextEdit.qml qml/RibbonPopupDialog.qml qml/RibbonLineEdit.qml qml/RibbonTextEdit.qml
qml/RibbonComboBox.qml qml/RibbonSpinBox.qml qml/RibbonComboBox.qml qml/RibbonSpinBox.qml qml/RibbonScrollIndicator.qml
) )
foreach(qmlfile ${qml_files}) foreach(qmlfile ${qml_files})

View File

@ -0,0 +1,65 @@
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Templates as T
import RibbonUI
T.ScrollIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: (control.background.implicitWidth - control.contentItem.implicitWidth)/2
contentItem: Rectangle {
implicitWidth: 8
implicitHeight: 8
color: RibbonTheme.dark_mode ? '#999999' : '#707070'
visible: control.size < 1.0
opacity: 0.0
radius: implicitWidth / 2
states: State {
name: "active"
when: control.active
PropertyChanges { control.contentItem.opacity: 0.75 }
}
transitions: [
Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 450 }
NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
}
}
]
}
background: Rectangle{
implicitWidth: 18
implicitHeight: 18
color: RibbonTheme.dark_mode ? '#141414' : '#F5F5F5'
opacity: 0.0
radius: implicitWidth / 2
states: State {
name: "active"
when: control.active
PropertyChanges { control.background.opacity: 0.75 }
}
transitions: [
Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 450 }
NumberAnimation { target: control.background; duration: 200; property: "opacity"; to: 0.0 }
}
}
]
}
}