Warning, /education/marble/examples/cpp/marble-game/CustomButton.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 Rectangle {
0012 signal buttonClick()
0013
0014 property int buttonWidth: 150
0015 property int buttonHeight: 75
0016 property string labelText: qsTr("Button")
0017 property color labelColor: "black"
0018 property color normalColor: "lightblue"
0019 property color onHoverColor: "crimson"
0020 property color borderColor: "transparent"
0021
0022 property real labelSize: buttonWidth/10
0023
0024 id: button
0025 width: buttonWidth
0026 height: buttonHeight
0027 border.width: 1
0028 border.color: borderColor
0029 radius: 6
0030 smooth: true
0031 scale: clickArea.pressed ? 1.1 : 1.0
0032 color: clickArea.pressed ? Qt.darker( normalColor, 1.5 ) : normalColor
0033
0034 Behavior on color { ColorAnimation{ duration: 50 } }
0035 Behavior on scale { NumberAnimation{ duration: 50 } }
0036
0037 Text {
0038 id: buttonLabel
0039
0040 text: labelText
0041 color: labelColor
0042 font.pixelSize: labelSize
0043 width: parent.width
0044 horizontalAlignment: Text.AlignHCenter
0045 anchors.verticalCenter: parent.verticalCenter
0046 wrapMode: Text.WordWrap
0047 }
0048
0049 MouseArea {
0050 id: clickArea
0051 anchors.fill: parent
0052 hoverEnabled: true
0053 onClicked: {
0054 buttonClick()
0055 }
0056 onEntered: {
0057 button.border.color = onHoverColor
0058 button.border.width = 2
0059 }
0060 onExited: {
0061 button.border.color = borderColor
0062 button.border.width = 1
0063 }
0064 }
0065 }