mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-01 08:14:22 +08:00
82 lines
2.0 KiB
QML
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
|
|
}
|
|
}
|
|
}
|
|
} |