import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Controls.impl // Needed for features like the Control.blend() function
import DesignSystem

Button {
    id: control
    font.family: Fonts.dotrice
    font.bold: true

    implicitWidth: control.text !== "" ? Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) : Math.min(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding)
    implicitHeight: Math.min(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding)

    required property string source
    property bool useOriginalColor: false
    // Shows the highlight background even when not pressed
    property bool showBackground: false

    icon.source: control.source
    icon.width: 20
    icon.height: 20
    icon.color: useOriginalColor ? "transparent" : Theme.foreground

    background: Rectangle {
        // NOTE: copied from ~/Qt/6.8.3/macos/qml/QtQuick/Controls/Basic/Button.qml
        implicitWidth: 100
        implicitHeight: 40
        visible: !control.flat || control.down || control.checked || control.highlighted
        color: control.down || control.showBackground ? Theme.highlight : "transparent"
        border.width: 0
        // custom
        radius: Theme.radius
    }
}
