12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // 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
- }
- }
- }
- }
|