36 lines
826 B
QML
36 lines
826 B
QML
import qs.components
|
|
import qs.components.effects
|
|
import qs.config
|
|
import QtQuick
|
|
|
|
StyledRect {
|
|
id: root
|
|
|
|
property color onColor: Colours.palette.m3onSurface
|
|
property alias disabled: stateLayer.disabled
|
|
property alias text: label.text
|
|
property alias enabled: stateLayer.enabled
|
|
|
|
implicitWidth: label.implicitWidth + Appearance.padding.normal * 2
|
|
implicitHeight: label.implicitHeight + Appearance.padding.normal * 2
|
|
radius: Appearance.rounding.normal
|
|
|
|
StateLayer {
|
|
id: stateLayer
|
|
color: parent.onColor
|
|
function onClicked(): void {
|
|
if (parent.enabled !== false) {
|
|
parent.clicked();
|
|
}
|
|
}
|
|
}
|
|
|
|
StyledText {
|
|
id: label
|
|
anchors.centerIn: parent
|
|
color: parent.onColor
|
|
}
|
|
|
|
signal clicked
|
|
}
|
|
|