Warning, /education/gcompris/src/core/ControlButton.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - ControlButton.qml 0002 * 0003 * SPDX-FileCopyrightText: 2016 Holger Kaelberer <holger.k@elberer.de> 0004 * 0005 * Authors: 0006 * Holger Kaelberer <holger.k@elberer.de> 0007 * 0008 * SPDX-License-Identifier: GPL-3.0-or-later 0009 */ 0010 import QtQuick 2.12 0011 import GCompris 1.0 0012 0013 /** 0014 * A QML to use as button 0015 * 0016 * Currently used in land_safe and gravity activities 0017 */ 0018 0019 Image { 0020 id: root 0021 state: "notclicked" 0022 sourceSize.width: 54 * ApplicationInfo.ratio 0023 0024 signal clicked 0025 signal pressed 0026 signal released 0027 0028 /** How much the mousearea should exceed the visible item on each border */ 0029 property double exceed: 0 0030 0031 MouseArea { 0032 id: mouseArea 0033 anchors.left: parent.left 0034 anchors.leftMargin: -root.exceed 0035 anchors.top: parent.top 0036 anchors.topMargin: -root.exceed 0037 width: root.width + 2*root.exceed 0038 height: root.height + 2*root.exceed 0039 hoverEnabled: !ApplicationInfo.isMobile 0040 onClicked: root.clicked() 0041 onPressed: root.pressed() 0042 onReleased: root.released() 0043 } 0044 0045 states: [ 0046 State { 0047 name: "notclicked" 0048 PropertyChanges { 0049 target: root 0050 scale: 1.0 0051 } 0052 }, 0053 State { 0054 name: "clicked" 0055 when: mouseArea.pressed 0056 PropertyChanges { 0057 target: root 0058 scale: 0.9 0059 } 0060 }, 0061 State { 0062 name: "hover" 0063 when: mouseArea.containsMouse 0064 PropertyChanges { 0065 target: root 0066 scale: 1.1 0067 } 0068 } 0069 ] 0070 0071 Behavior on scale { NumberAnimation { duration: 70 } } 0072 }