Warning, /education/gcompris/src/activities/piano_composition/SwitchableOptions.qml is written in an unsupported language. File is not indexed.

0001 /* GCompris - SwitchableOptions.qml
0002 *
0003 * SPDX-FileCopyrightText: 2018 Aman Kumar Gupta <gupta2140@gmail.com>
0004 *
0005 * Authors:
0006 *   Beth Hadley <bethmhadley@gmail.com> (GTK+ version)
0007 *   Johnny Jazeix <jazeix@gmail.com> (Qt Quick port)
0008 *   Aman Kumar Gupta <gupta2140@gmail.com> (Qt Quick port)
0009 *   Timothée Giet <animtim@gmail.com> (refactoring)
0010 *
0011 *   SPDX-License-Identifier: GPL-3.0-or-later
0012 */
0013 import QtQuick 2.12
0014 import GCompris 1.0
0015 
0016 import "../../core"
0017 
0018 Image {
0019     id: switchableOptions
0020 
0021     property int currentIndex: 0
0022     property int nbOptions: 1
0023     
0024     signal clicked
0025 
0026     sourceSize.width: optionsRow.iconsWidth
0027 
0028     MouseArea {
0029         id: mouseArea
0030         anchors.fill: parent
0031         hoverEnabled: true
0032         onClicked: {
0033             parent.currentIndex = (parent.currentIndex + 1) % nbOptions
0034             //clickAnimation.start()
0035             parent.clicked()
0036         }
0037     }
0038     
0039     states: [
0040         State {
0041             name: "notclicked"
0042             PropertyChanges {
0043                 target: switchableOptions
0044                 scale: 1.0
0045             }
0046         },
0047         State {
0048             name: "clicked"
0049             when: mouseArea.pressed
0050             PropertyChanges {
0051                 target: switchableOptions
0052                 scale: 0.9
0053             }
0054         },
0055         State {
0056             name: "hover"
0057             when: mouseArea.containsMouse
0058             PropertyChanges {
0059                 target: switchableOptions
0060                 scale: 1.1
0061             }
0062         }
0063     ]
0064     
0065     Behavior on scale { NumberAnimation { duration: 70 } }
0066     Behavior on opacity { PropertyAnimation { duration: 200 } }
0067 }