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

0001 /* GCompris - Hexagon.qml
0002  *
0003  * SPDX-FileCopyrightText: 2014 Bruno Coudoin <bruno.coudoin@gcompris.net>
0004  *
0005  * Authors:
0006  *   Christof Petig and Ingo Konrad (GTK+ version)
0007  *   Bruno Coudoin <bruno.coudoin@gcompris.net> (Qt Quick port)
0008  *
0009  *   SPDX-License-Identifier: GPL-3.0-or-later
0010  */
0011 
0012 import QtQuick 2.12
0013 import GCompris 1.0
0014 
0015 import "../../core"
0016 import "hexagon.js" as Activity
0017 
0018 ActivityBase {
0019     id: activity
0020 
0021     onStart: focus = true
0022 
0023     pageComponent: Image {
0024         id: background
0025         source: "qrc:/gcompris/src/activities/menu/resource/background.svg"
0026         sourceSize.width: width
0027         sourceSize.height: height
0028         fillMode: Image.PreserveAspectCrop
0029         signal start
0030         signal stop
0031         focus: true
0032 
0033         Component.onCompleted: {
0034             activity.start.connect(start)
0035             activity.stop.connect(stop)
0036         }
0037         QtObject {
0038             id: items
0039             property alias background: background
0040             property int currentLevel: activity.currentLevel
0041             property alias bonus: bonus
0042             property alias hexagonModel: hexagonModel
0043         }
0044 
0045         onStart: Activity.start(main, items)
0046         onStop: Activity.stop()
0047 
0048         function checkTouchPoint(touchPoints) {
0049             for(var i in touchPoints) {
0050                 var touch = touchPoints[i]
0051                 var block = rootItem.childAt(touch.x, touch.y)
0052                 if(block)
0053                     block.touched()
0054             }
0055         }
0056 
0057         MultiPointTouchArea {
0058             anchors.fill: parent
0059             onPressed: checkTouchPoint(touchPoints)
0060         }
0061 
0062         Item {
0063             id: rootItem
0064             anchors.fill: parent
0065         }
0066 
0067         ListModel {
0068             id: hexagonModel
0069         }
0070 
0071         Repeater {
0072             model: hexagonModel
0073             parent: rootItem
0074 
0075             HexagonItem {
0076                 audioEffects: activity.audioEffects
0077                 ix: m_ix
0078                 iy: m_iy
0079                 nbx: m_nbx
0080                 nby: m_nby
0081                 hasStrawberry: m_hasStrawberry
0082                 color: "#0099FF"
0083             }
0084         }
0085 
0086         DialogHelp {
0087             id: dialogHelpLeftRight
0088             onClose: home()
0089         }
0090 
0091         Bar {
0092             id: bar
0093             level: items.currentLevel + 1
0094             content: BarEnumContent { value: help | home | level }
0095             onHelpClicked: {
0096                 displayDialog(dialogHelpLeftRight)
0097             }
0098             onPreviousLevelClicked: Activity.previousLevel()
0099             onNextLevelClicked: Activity.nextLevel()
0100             onHomeClicked: home()
0101         }
0102 
0103         Bonus {
0104             id: bonus
0105             interval: 2000
0106             Component.onCompleted: win.connect(Activity.nextLevel)
0107         }
0108     }
0109 
0110 }