Warning, /education/marble/examples/cpp/marble-game/CustomRadioButton.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Abhinav Gangwar <abhgang@gmail.com>
0004 //
0005
0006
0007 import QtQuick 2.0
0008 import QtQuick.Controls 1.2
0009 import QtQuick.Controls.Styles 1.2
0010
0011 RadioButton {
0012 id: radioButton
0013
0014 signal radioButtonClick()
0015
0016 property int radioButtonWidth: 150
0017 property int radioButtonHeight: 75
0018
0019 property real labelSize: radioButtonWidth/8
0020
0021 property color labelColor: "black"
0022
0023 property color borderColor: "transparent"
0024 property color onHoverColor: "crimson"
0025 property color normalColor: "lightblue"
0026
0027 property string labelText: qsTr("Radio Button")
0028 property alias buttonGroup: radioButton.exclusiveGroup
0029
0030 ExclusiveGroup { id: group }
0031
0032 text: labelText
0033 exclusiveGroup: group
0034 style: RadioButtonStyle {
0035 indicator: Rectangle {
0036 implicitWidth: 16
0037 implicitHeight: 16
0038 radius: 9
0039 border.color: ( control.activeFocus || control.checked ) ? "green" : "darkblue"
0040 border.width: 1
0041 Rectangle {
0042 anchors.fill: parent
0043 visible: control.checked
0044 color: "green"
0045 radius: 9
0046 anchors.margins: 4
0047 }
0048 }
0049 background: Rectangle {
0050 id: backgroundView
0051 implicitWidth: radioButtonWidth
0052 implicitHeight: radioButtonHeight
0053 border.width: control.hovered ? 2 : 1
0054 border.color: control.hovered ? radioButton.onHoverColor : radioButton.borderColor
0055 color: control.pressed ? Qt.darker( radioButton.normalColor, 1.5 ) : radioButton.normalColor
0056 Behavior on color { ColorAnimation{ duration: 50 } }
0057 radius: 6
0058 scale: control.pressed ? 1.1 : 1.0
0059 Behavior on scale { NumberAnimation{ duration: 50 } }
0060 }
0061 label: Text {
0062 font.pixelSize: labelSize
0063 color: labelColor
0064 text: labelText
0065 wrapMode: Text.WordWrap
0066 }
0067 }
0068
0069 onClicked: {
0070 radioButtonClick()
0071 }
0072 }