| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import QtQuick 2.15
- import QtQuick.Controls 2.15
- import StandardOfIron 1.0
- Button {
- id: control
- property string buttonStyle: "primary"
- property var styleConfig: {
- if (buttonStyle === "primary")
- return StyleGuide.button.primary;
- if (buttonStyle === "secondary")
- return StyleGuide.button.secondary;
- if (buttonStyle === "small")
- return StyleGuide.button.small;
- if (buttonStyle === "danger")
- return StyleGuide.button.danger;
- return StyleGuide.button.primary;
- }
- implicitHeight: styleConfig.height
- implicitWidth: styleConfig.minWidth
- hoverEnabled: true
- ToolTip.visible: control.ToolTip.text !== "" && hoverArea.containsMouse
- ToolTip.delay: 500
- MouseArea {
- id: hoverArea
- anchors.fill: parent
- hoverEnabled: true
- acceptedButtons: Qt.NoButton
- cursorShape: control.enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
- }
- contentItem: Text {
- text: control.text
- font.pointSize: control.enabled ? (hoverArea.containsMouse ? styleConfig.hoverFontSize : styleConfig.fontSize) : styleConfig.fontSize
- font.bold: true
- color: {
- if (!control.enabled)
- return styleConfig.disabledTextColor;
- if (buttonStyle === "danger" && hoverArea.containsMouse)
- return styleConfig.hoverTextColor || styleConfig.textColor;
- return styleConfig.textColor;
- }
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- Behavior on font.pointSize {
- NumberAnimation {
- duration: StyleGuide.animation.fast
- }
- }
- Behavior on color {
- ColorAnimation {
- duration: StyleGuide.animation.normal
- }
- }
- }
- background: Rectangle {
- implicitWidth: styleConfig.minWidth
- implicitHeight: styleConfig.height
- radius: styleConfig.radius
- color: {
- if (!control.enabled)
- return styleConfig.disabledBg;
- if (control.down)
- return styleConfig.pressBg;
- if (hoverArea.containsMouse)
- return styleConfig.hoverBg;
- return styleConfig.normalBg;
- }
- border.width: 1
- border.color: {
- if (!control.enabled)
- return styleConfig.disabledBorder;
- if (hoverArea.containsMouse)
- return styleConfig.hoverBorder;
- return styleConfig.normalBorder;
- }
- Behavior on color {
- ColorAnimation {
- duration: StyleGuide.animation.normal
- }
- }
- Behavior on border.color {
- ColorAnimation {
- duration: StyleGuide.animation.normal
- }
- }
- }
- }
|