1
0
Fork 0
flightgear/src/GUI/qml/RadioButton.qml
2018-07-02 16:45:17 +01:00

72 lines
1.5 KiB
QML

import QtQuick 2.4
import FlightGear 1.0
import "."
Item {
id: root
property bool selected
property RadioButtonGroup group // nil by default
signal clicked()
implicitHeight: outerRing.height + Style.margin
implicitWidth: outerRing.width + Style.margin
function select()
{
if (root.group) {
root.group.selected = root;
}
}
Binding {
when: root.group != null
target: root
property: "selected"
value: (root.group.selected === root)
}
Rectangle {
id: innerRing
anchors.centerIn: parent
width: radius * 2
height: radius * 2
radius: Style.roundRadius
color: Style.themeColor
visible: selected || mouse.containsMouse
}
Rectangle {
id: outerRing
anchors.centerIn: parent
border.color: Style.themeColor
border.width: 2
color: "transparent"
radius: Style.roundRadius + 4
width: radius * 2
height: radius * 2
}
Rectangle {
id: pressRing
opacity: 0.3
width: outerRing.width * 2
height: outerRing.height * 2
visible: mouse.pressed
radius: width / 2
color: "#7f7f7f"
anchors.centerIn: parent
}
MouseArea {
id: mouse
anchors.fill: parent
hoverEnabled: true
onClicked: {
root.select();
root.clicked()
}
}
}