diff options
Diffstat (limited to 'src/quickcontrols/material/ToolButton.qml')
-rw-r--r-- | src/quickcontrols/material/ToolButton.qml | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/quickcontrols/material/ToolButton.qml b/src/quickcontrols/material/ToolButton.qml new file mode 100644 index 0000000000..ac397edeea --- /dev/null +++ b/src/quickcontrols/material/ToolButton.qml @@ -0,0 +1,53 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +import QtQuick +import QtQuick.Templates as T +import QtQuick.Controls.impl +import QtQuick.Controls.Material +import QtQuick.Controls.Material.impl + +T.ToolButton { + id: control + + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding) + + padding: 6 + spacing: 6 + + icon.width: 24 + icon.height: 24 + icon.color: !enabled ? Material.hintTextColor : checked || highlighted ? Material.accent : Material.foreground + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: !control.enabled ? control.Material.hintTextColor : + control.checked || control.highlighted ? control.Material.accent : control.Material.foreground + } + + background: Ripple { + implicitWidth: control.Material.touchTarget + implicitHeight: control.Material.touchTarget + + readonly property bool square: control.contentItem.width <= control.contentItem.height + + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + clip: !square + width: square ? parent.height / 2 : parent.width + height: square ? parent.height / 2 : parent.height + pressed: control.pressed + anchor: control + active: control.enabled && (control.down || control.visualFocus || control.hovered) + color: control.Material.rippleColor + } +} |