JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
ScreenRouter.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <QObject>
7#include <QString>
8#include <QtQmlIntegration>
9
12
17
18namespace hmi {
19
41class ScreenRouter : public QObject {
42 Q_OBJECT
43 QML_ELEMENT
44 QML_SINGLETON
45
46 Q_PROPERTY(Screen currentScreen READ currentScreen NOTIFY changed)
48
53 Q_PROPERTY(bool developerBuild READ developerBuild CONSTANT)
54
55public:
66 Q_ENUM(Screen)
67
68
80 Q_ENUM(RpgScreen)
81
82 explicit ScreenRouter(QObject* parent = nullptr);
83
84 [[nodiscard]] Screen currentScreen() const noexcept;
85 [[nodiscard]] RpgScreen currentRpgScreen() const noexcept;
86
87 [[nodiscard]] static bool developerBuild() noexcept;
88
89 Q_INVOKABLE void openMenu();
90 Q_INVOKABLE void openGame();
91 Q_INVOKABLE void openOptions();
92 Q_INVOKABLE void closeOptions();
93 Q_INVOKABLE void openPause();
94 Q_INVOKABLE void resume();
95 Q_INVOKABLE void quitToMenu();
96 Q_INVOKABLE void openCredits();
97 Q_INVOKABLE void closeCredits();
98
101 Q_INVOKABLE void openRpgScreen(RpgScreen screen);
102 Q_INVOKABLE void closeRpgScreen();
103
106 Q_INVOKABLE void nextRpgScreen();
107 Q_INVOKABLE void previousRpgScreen();
108
109signals:
112 void changed();
113
114private:
116 bool apply(ScreenEvent event);
117
120};
121
122} // namespace hmi
Catalogue des écrans du RPG et ossature de leur contenu (LOT-68, EX-IHM-090, EX-IHM-091).
Machine à états des écrans de la fenêtre principale (LOT-59 TACHE-01, EX-GP-041).
RpgScreen
Lequel des neuf écrans du RPG est ouvert, quand currentScreen vaut RpgScreen.
Definition ScreenRouter.h:69
@ CombatHud
Definition ScreenRouter.h:77
@ Dialogue
Definition ScreenRouter.h:74
@ Inventory
Definition ScreenRouter.h:71
@ Merchant
Definition ScreenRouter.h:75
@ QuestJournal
Definition ScreenRouter.h:72
@ GuildBoard
Definition ScreenRouter.h:76
@ TeamSheet
Definition ScreenRouter.h:78
@ WorldMap
Definition ScreenRouter.h:73
@ CharacterSheet
Definition ScreenRouter.h:70
Q_INVOKABLE void openGame()
Definition ScreenRouter.cpp:95
Q_INVOKABLE void previousRpgScreen()
Definition ScreenRouter.cpp:138
ScreenState _state
Definition ScreenRouter.h:118
RpgScreenId _rpgScreen
Definition ScreenRouter.h:119
Q_INVOKABLE void openRpgScreen(RpgScreen screen)
Ouvre un écran du RPG.
Definition ScreenRouter.cpp:120
Q_INVOKABLE void closeRpgScreen()
Definition ScreenRouter.cpp:129
RpgScreen currentRpgScreen
Definition ScreenRouter.h:47
Q_INVOKABLE void openPause()
Definition ScreenRouter.cpp:104
Q_INVOKABLE void closeOptions()
Definition ScreenRouter.cpp:101
Q_INVOKABLE void openOptions()
Definition ScreenRouter.cpp:98
Q_INVOKABLE void openCredits()
Definition ScreenRouter.cpp:113
Screen
Écran affiché.
Definition ScreenRouter.h:58
@ Pause
Definition ScreenRouter.h:62
@ Game
Definition ScreenRouter.h:60
@ Credits
Definition ScreenRouter.h:63
@ Menu
Definition ScreenRouter.h:59
@ Options
Definition ScreenRouter.h:61
bool apply(ScreenEvent event)
Applique event si la table l'autorise.
Definition ScreenRouter.cpp:79
ScreenRouter(QObject *parent=nullptr)
Definition ScreenRouter.cpp:69
Q_INVOKABLE void resume()
Definition ScreenRouter.cpp:107
Q_INVOKABLE void quitToMenu()
Definition ScreenRouter.cpp:110
Q_INVOKABLE void openMenu()
Definition ScreenRouter.cpp:92
Q_INVOKABLE void nextRpgScreen()
Passe à l'écran suivant/précédent du RPG sans repasser par le menu (EX-IHM-090).
Definition ScreenRouter.cpp:133
void changed()
Émis quand l'écran courant change.
bool developerBuild
Vrai dans un binaire de developpement, faux dans un binaire livre.
Definition ScreenRouter.h:53
QML_SINGLETONScreen currentScreen
Definition ScreenRouter.h:46
Q_INVOKABLE void closeCredits()
Definition ScreenRouter.cpp:116
Definition AudioEngine.cpp:15
RpgScreenId
Les huit écrans du RPG.
Definition RpgScreens.h:35
@ CharacterSheet
Fiche de personnage (remplie par le LOT-38).
Definition RpgScreens.h:36
ScreenEvent
Événement pouvant déclencher une transition d'écran.
Definition ScreenFlow.h:39
État complet de la machine.
Definition ScreenFlow.h:81