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

0001 /* GCompris - ItemToEnumerate.qml
0002 *
0003 * SPDX-FileCopyrightText: 2014 Thib ROMAIN <thibrom@gmail.com>
0004 *
0005 * Authors:
0006 *   Bruno Coudoin <bruno.coudoin@gcompris.net> (GTK+ version)
0007 *   Thib ROMAIN <thibrom@gmail.com> (Qt Quick port)
0008 *
0009 *   SPDX-License-Identifier: GPL-3.0-or-later
0010 */
0011 import QtQuick 2.12
0012 import GCompris 1.0
0013 import "enumerate.js" as Activity
0014 
0015 Image {
0016     sourceSize.width: Math.min(90 * ApplicationInfo.ratio, main.width / 5)
0017     fillMode: Image.PreserveAspectFit
0018     z: 0
0019     // Let the items comes from random side of the screen
0020     x: Math.random() > 0.5 ? -width : main.width
0021     y: Math.random() > 0.5 ? -height : main.height
0022 
0023     property real xRatio
0024     property real yRatio
0025     property Item main
0026 
0027     Component.onCompleted: {        
0028         xRatio = Activity.getRandomInt(10, main.width - 220 * ApplicationInfo.ratio) /
0029                 (main.width  - 220 * ApplicationInfo.ratio)
0030         yRatio = Activity.getRandomInt(10, main.height - 180 * ApplicationInfo.ratio) /
0031                 (main.height - 180 * ApplicationInfo.ratio)
0032         positionMe()
0033     }
0034 
0035     function positionMe() {
0036         x = (main.width - 220 * ApplicationInfo.ratio) * xRatio
0037         y = (main.height- 180 * ApplicationInfo.ratio) * yRatio
0038     }
0039 
0040     Drag.active: dragArea.drag.active
0041     Drag.hotSpot.x: width / 2
0042     Drag.hotSpot.y: height / 2
0043 
0044     MouseArea {
0045         id: dragArea
0046         anchors.fill: parent
0047         drag.target: parent
0048         onPressed: {
0049             parent.z = ++Activity.globalZ
0050         }
0051         onReleased: parent.Drag.drop()
0052     }
0053 
0054     Behavior on x {
0055         PropertyAnimation {
0056             duration: 2000
0057             easing.type: Easing.InOutQuad
0058         }
0059     }
0060     Behavior on y {
0061         PropertyAnimation {
0062             duration: 2000
0063             easing.type: Easing.InOutQuad
0064         }
0065     }
0066 }