Ian Paschal 3c3343a407 Use bool for expanded or collapsed state
Contributes to CL-1148
2018-11-22 13:11:59 +01:00

82 lines
2.0 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
// TODO: Theme & documentation!
// 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 var borderWidth: 1
property color borderColor: "#EAEAEC"
property color headerBackgroundColor: "white"
property color headerHoverColor: "#f5f5f5"
property color drawerBackgroundColor: "white"
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: headerMouseArea.containsMouse ? headerHoverColor : headerBackgroundColor
height: childrenRect.height
width: parent.width
Behavior on color
{
ColorAnimation
{
duration: 100
}
}
}
MouseArea
{
id: headerMouseArea
anchors.fill: header
onClicked: base.expanded = !base.expanded
hoverEnabled: true
}
Rectangle
{
id: drawer
anchors
{
top: header.bottom
topMargin: -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
}
}
}
}