status-desktop/ui/app/AppLayouts/Profile/controls/BloomSelectorButton.qml

68 lines
1.5 KiB
QML

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import utils 1.0
import shared 1.0
import shared.panels 1.0
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
Rectangle {
id: root
property var buttonGroup
property string btnText: qsTr("TODO")
property bool checkedByDefault: false
signal checked()
signal toggled(bool checked)
function toggle() {
radioBtn.toggle()
}
border.color: mouseArea.containsMouse || radioBtn.checked ? Theme.palette.primaryColor1 : Theme.palette.border
border.width: 1
color: Theme.palette.transparent
implicitWidth: 130
implicitHeight: 120
radius: Theme.radius
StatusRadioButton {
id: radioBtn
ButtonGroup.group: buttonGroup
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 14
checked: root.checkedByDefault
onCheckedChanged: {
if (checked) {
root.checked()
}
}
}
StyledText {
id: txt
text: btnText
font.pixelSize: 15
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: radioBtn.bottom
anchors.topMargin: 6
}
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
if (radioBtn.checked)
return
radioBtn.toggle()
root.toggled(radioBtn.checked)
}
}
}