linphone-desktop/linphone-app/ui/modules/Common/Misc/ForceScrollBar.qml

45 lines
1.3 KiB
QML

import QtQuick 2.7
import QtQuick.Controls 2.2
import Common.Styles 1.0
// =============================================================================
// A simple custom vertical scrollbar.
// =============================================================================
ScrollBar {
id: scrollBar
property int contentSizeTarget
property int sizeTarget
onContentSizeTargetChanged: Qt.callLater( scrollBar.updatePolicy)
onSizeTargetChanged: Qt.callLater( scrollBar.updatePolicy)
policy: ScrollBar.AlwaysOff
function updatePolicy(){
policy = contentSizeTarget > sizeTarget ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
}
function delayPolicy(){
Qt.callLater( scrollBar.updatePolicy)
}
Component.onCompleted: updatePolicy()
background: Rectangle {
anchors.fill: parent
color: ForceScrollBarStyle.background.colorModel.color
radius: ForceScrollBarStyle.background.radius
}
contentItem: Rectangle {
color: scrollBar.pressed
? ForceScrollBarStyle.color.pressed.color
: (scrollBar.hovered
? ForceScrollBarStyle.color.hovered.color
: ForceScrollBarStyle.color.normal.color
)
implicitHeight: ForceScrollBarStyle.contentItem.implicitHeight
implicitWidth: ForceScrollBarStyle.contentItem.implicitWidth
radius: ForceScrollBarStyle.contentItem.radius
}
hoverEnabled: true
}