Ian Paschal 2e5eb61144 Add theme colors
Contributes to CL-1212
2019-01-21 13:07:16 +01:00

88 lines
2.2 KiB
QML

// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2
import QtQuick.Controls 2.0
import UM 1.3 as UM
import Cura 1.0 as Cura
/**
* The expandable component has 3 major sub components:
* - The headerItem Always visible and should hold some info about what happens if the component is expanded
* - The popupItem The content that needs to be shown if the component is expanded.
*/
Item
{
id: base
property bool expanded: false
property bool enabled: true
property var borderWidth: UM.Theme.getSize("default_lining")
property color borderColor: UM.Theme.getColor("wide_lining")
property color headerBackgroundColor: UM.Theme.getColor("main_background")
property color headerHoverColor: UM.Theme.getColor("action_button_hovered")
property color drawerBackgroundColor: UM.Theme.getColor("main_background")
property alias headerItem: header.children
property alias drawerItem: drawer.children
width: parent.width
height: childrenRect.height
Rectangle
{
id: header
border
{
color: borderColor
width: borderWidth
}
color: base.enabled && headerMouseArea.containsMouse ? headerHoverColor : headerBackgroundColor
height: childrenRect.height
width: parent.width
Behavior on color
{
ColorAnimation
{
duration: 100
}
}
}
MouseArea
{
id: headerMouseArea
anchors.fill: header
onClicked:
{
if (!base.enabled) return
base.expanded = !base.expanded
}
hoverEnabled: base.enabled
}
Rectangle
{
id: drawer
anchors
{
top: header.bottom
topMargin: UM.Theme.getSize("default_lining") * -1
}
border
{
color: borderColor
width: borderWidth
}
clip: true
color: headerBackgroundColor
height: base.expanded ? childrenRect.height : 0
width: parent.width
Behavior on height
{
NumberAnimation
{
duration: 100
}
}
}
}