C
Qt Quick Ultralite swipe_game Demo
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial import QtQuick 2.0 import StyleModule 1.0 /* This component controls the positioning and transitions of the configuration views */ Item { id: root function addHighscore() { highscoreView.addHighscore() } function setState(newState : string) { root.state = newState } signal startRequested() implicitWidth: Style.appSize implicitHeight: Style.appSize clip: true state: "Start" states: [ State { name: "Start" PropertyChanges { target: viewContainer; x: 0; y: 0 } }, State { name: "Config" PropertyChanges { target: viewContainer; x: 0; y: viewContainer.height } }, State { name: "Highscore" PropertyChanges { target: viewContainer; x: 0; y: -viewContainer.height } }, State { name: "Time" PropertyChanges { target: viewContainer; x: viewContainer.width; y: 0 } }, State { name: "Number" PropertyChanges { target: viewContainer; x: -viewContainer.width; y: 0 } } ] Item { id: viewContainer width: Style.appSize height: Style.appSize Behavior on x { NumberAnimation { duration: Globals.useViewAnimations ? Style.animationDuration : 0 } } Behavior on y { NumberAnimation { duration: Globals.useViewAnimations ? Style.animationDuration : 0 } } StartView { id: startView onSwipeDownTriggered: setState("Config") onSwipeUpTriggered: setState("Highscore") onSwipeLeftTriggered: setState("Number") onSwipeRightTriggered: setState("Time") onStartRequested: root.startRequested() } ConfigView { id: configView y: -height onSwipeTriggered: setState("Start") } HighscoreView { id: highscoreView y: height onSwipeTriggered: setState("Start") } TimeView { id: timeView x: -width onSwipeTriggered: setState("Start") } NumberView { id: numberView x: width onSwipeTriggered: setState("Start") } } }