Warning, /education/gcompris/src/activities/left_right_click/Left_right_click.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - Left_right_click.qml 0002 * 0003 * SPDX-FileCopyrightText: 2022 Samarth Raj <mailforsamarth@gmail.com> 0004 * SPDX-FileCopyrightText: 2022 Timothée Giet <animtim@gmail.com> 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 import QtQuick 2.12 0008 import QtQml.Models 2.12 0009 import QtQuick.Controls 2.12 0010 0011 import GCompris 1.0 0012 import "../../core" 0013 import "left_right_click.js" as Activity 0014 import "qrc:/gcompris/src/core/core.js" as Core 0015 0016 ActivityBase { 0017 id: activity 0018 0019 onStart: focus = true 0020 onStop: {} 0021 0022 pageComponent: Image { 0023 id: background 0024 anchors.fill: parent 0025 source: "qrc:/gcompris/src/activities/canal_lock/resource/sky.svg" 0026 sourceSize.height: height 0027 sourceSize.width: width 0028 signal start 0029 signal stop 0030 0031 Component.onCompleted: { 0032 activity.start.connect(start) 0033 activity.stop.connect(stop) 0034 } 0035 0036 // Add here the QML items you need to access in javascript 0037 QtObject { 0038 id: items 0039 property Item main: activity.main 0040 property alias background: background 0041 property int currentLevel: activity.currentLevel 0042 property alias bonus: bonus 0043 property GCSfx audioEffects: activity.audioEffects 0044 property alias animalListModel: animalListModel 0045 property alias animalCardsArea: animalCardsArea 0046 property double animalWidth: animalCardsArea.animalCardSize 0047 property double animalHeight: animalCardsArea.animalCardSize 0048 property alias leftArea: leftAreaTarget 0049 property alias rightArea: rightAreaTarget 0050 property alias displayMouse: displayMouse 0051 property alias leftClickDisplayMouse: leftClickDisplayMouse 0052 property alias rightClickDisplayMouse: rightClickDisplayMouse 0053 property alias cross: cross 0054 property int animalCount 0055 } 0056 0057 onStart: { Activity.start(items) } 0058 onStop: { Activity.stop() } 0059 0060 Image { 0061 id: hillArea 0062 source: "qrc:/gcompris/src/activities/left_right_click/resource/hill.svg" 0063 width: background.width 0064 height: background.height - leftAreaTarget.height * 0.5 0065 anchors.bottom: background.bottom 0066 sourceSize.width: width 0067 sourceSize.height: height 0068 } 0069 0070 Item { 0071 id: layoutArea 0072 anchors.top: parent.top 0073 anchors.bottom: bar.top 0074 anchors.bottomMargin: bar.height * 0.2 0075 anchors.left: parent.left 0076 anchors.right: parent.right 0077 } 0078 0079 Image { 0080 id: leftAreaTarget 0081 parent: layoutArea 0082 width: layoutArea.width * 0.3 0083 height: layoutArea.height * 0.5 0084 sourceSize.height: Math.min(width, height) 0085 anchors.left: layoutArea.left 0086 fillMode: Image.PreserveAspectFit 0087 source: "qrc:/gcompris/src/activities/left_right_click/resource/pond.svg" 0088 } 0089 0090 Image { 0091 id: rightAreaTarget 0092 parent: layoutArea 0093 width: leftAreaTarget.width 0094 height: leftAreaTarget.height 0095 sourceSize.height: leftAreaTarget.sourceSize.height 0096 anchors.right: layoutArea.right 0097 fillMode: Image.PreserveAspectFit 0098 source: "qrc:/gcompris/src/activities/left_right_click/resource/tree.svg" 0099 } 0100 0101 ListModel { 0102 id: animalListModel 0103 } 0104 0105 Item { 0106 id: animalCardsArea 0107 parent: layoutArea 0108 width: layoutArea.width 0109 height: leftAreaTarget.height 0110 anchors.top: leftAreaTarget.bottom 0111 property double animalCardSize: Core.fitItems(animalCardsArea.width,animalCardsArea.height,items.animalCount) 0112 0113 GridView { 0114 id: container 0115 height: parent.height 0116 width: parent.width 0117 anchors.centerIn: parent 0118 interactive: false 0119 cellHeight: animalCardsArea.animalCardSize 0120 cellWidth: animalCardsArea.animalCardSize 0121 model: animalListModel 0122 delegate: Animal { 0123 height: items.animalHeight 0124 width: items.animalWidth 0125 } 0126 } 0127 } 0128 0129 Item { 0130 id: mouseDisplayContainer 0131 parent: layoutArea 0132 anchors.top: layoutArea.top 0133 anchors.bottom: animalCardsArea.top 0134 anchors.left: leftAreaTarget.right 0135 anchors.right: rightAreaTarget.left 0136 0137 Image { 0138 id: displayMouse 0139 source: "qrc:/gcompris/src/activities/left_right_click/resource/mouse.svg" 0140 width: Math.min(parent.width, parent.height) 0141 height: width 0142 sourceSize.width: width 0143 anchors.centerIn: parent 0144 fillMode: Image.PreserveAspectFit 0145 0146 MouseButton { 0147 id: leftClickDisplayMouse 0148 } 0149 0150 MouseButton { 0151 id: rightClickDisplayMouse 0152 isRightButton: true 0153 } 0154 0155 Image { 0156 id: cross 0157 height: parent.width * 0.5 0158 width: height 0159 sourceSize.height: height 0160 anchors.horizontalCenter: parent.horizontalCenter 0161 anchors.bottom: parent.bottom 0162 source: "qrc:/gcompris/src/core/resource/cancel.svg" 0163 visible: false // only visible when a wrong click is pressed 0164 } 0165 } 0166 } 0167 0168 // for left click of the mouse 0169 signal leftClickTrigger 0170 onLeftClickTrigger: { 0171 leftClickDisplayMouse.clickTrigger() 0172 } 0173 0174 // for the right click of the mouse 0175 signal rightClickTrigger 0176 onRightClickTrigger: { 0177 rightClickDisplayMouse.clickTrigger() 0178 } 0179 0180 //for the cross to hide 0181 signal wrongClick 0182 onWrongClick: { 0183 cross.visible = true 0184 hideCross.running = true 0185 Activity.playWrongClickSound() 0186 } 0187 0188 PropertyAnimation { 0189 id: hideCross 0190 target: cross 0191 property: "visible" 0192 to: false 0193 duration: 500 0194 } 0195 0196 DialogHelp { 0197 id: dialogHelp 0198 onClose: home() 0199 } 0200 0201 Bar { 0202 id: bar 0203 level: items.currentLevel + 1 0204 content: BarEnumContent { value: help | home | level | reload } 0205 onHelpClicked: { 0206 displayDialog(dialogHelp) 0207 } 0208 onPreviousLevelClicked: Activity.previousLevel() 0209 onNextLevelClicked: Activity.nextLevel() 0210 onHomeClicked: activity.home() 0211 onReloadClicked: { 0212 Activity.start(items) 0213 } 0214 } 0215 0216 Bonus { 0217 id: bonus 0218 Component.onCompleted: win.connect(Activity.nextLevel) 0219 } 0220 } 0221 }