Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ScrollView.qml « Widgets « qml « resources - github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9e7531994c1a0b50fa8f0bd0cb13b9abd5903405 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (c) 2020 Ultimaker B.V.
// Toolbox is released under the terms of the LGPLv3 or higher.

import QtQuick 2.10
import QtQuick.Controls 2.3

import UM 1.1 as UM

ScrollView
{
    clip: true

    // Setting this property to false hides the scrollbar both when the scrollbar is not needed (child height < height)
    // and when the scrollbar is not actively being hovered or pressed
    property bool scrollAlwaysVisible: true

    ScrollBar.vertical: ScrollBar
    {
        hoverEnabled: true
        policy: parent.scrollAlwaysVisible ? ScrollBar.AlwaysOn : ScrollBar.AsNeeded
        anchors.top: parent.top
        anchors.right: parent.right
        anchors.bottom: parent.bottom

        contentItem: Rectangle
        {
            implicitWidth: UM.Theme.getSize("scrollbar").width
            opacity: (parent.active || parent.parent.scrollAlwaysVisible) ? 1.0 : 0.0
            radius: Math.round(width / 2)
            color:
            {
                if (parent.pressed)
                {
                    return UM.Theme.getColor("scrollbar_handle_down")
                }
                else if (parent.hovered)
                {
                    return UM.Theme.getColor("scrollbar_handle_hover")
                }
                return UM.Theme.getColor("scrollbar_handle")
            }
            Behavior on color { ColorAnimation { duration: 100; } }
            Behavior on opacity { NumberAnimation { duration: 100 } }
        }
    }
}