JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
ScreenFlow.h File Reference

Machine à états des écrans de la fenêtre principale (LOT-59 TACHE-01, EX-GP-041). More...

#include <optional>

Go to the source code of this file.

Classes

struct  hmi::ScreenDressing
 Habillage de fenêtre associé à un écran : ce que chaque showXxx() répétait à la main (bascule du QStackedWidget, docks, barre de menu, barres d'outils, navigation manette). More...
struct  hmi::ScreenState
 État complet de la machine. More...

Namespaces

namespace  hmi

Enumerations

enum class  hmi::ScreenId {
  hmi::Menu , hmi::Editor , hmi::Game , hmi::Options ,
  hmi::Pause , hmi::Credits , hmi::RpgScreen
}
 Écran actuellement affiché par la fenêtre principale. More...
enum class  hmi::ScreenEvent {
  hmi::OpenMenu , hmi::OpenEditor , hmi::OpenGame , hmi::OpenOptions ,
  hmi::CloseOptions , hmi::OpenPause , hmi::ResumePause , hmi::QuitPauseToMenu ,
  hmi::OpenCredits , hmi::CloseCredits , hmi::OpenRpgScreen , hmi::CloseRpgScreen
}
 Événement pouvant déclencher une transition d'écran. More...

Functions

ScreenDressing hmi::dressingFor (ScreenId screen) noexcept
std::optional< ScreenStatehmi::resolveTransition (const ScreenState &current, ScreenEvent event) noexcept
 Résout une transition d'écran à partir de l'état courant et d'un événement.

Detailed Description

Machine à états des écrans de la fenêtre principale (LOT-59 TACHE-01, EX-GP-041).

Logique pure (aucune dépendance Qt), testable hors instance d'application (EX-NFR-010) — même patron que HMI/Editor/PanelFocus.h/HMI/Interface/ActionCatalog.h. MainWindow ne fait que suivre cette table : les showXxx() deviennent des consommatrices de dressingFor(), et toute navigation passe par resolveTransition() plutôt que d'appeler une autre méthode directement – une transition non déclarée ici est refusée, jamais silencieusement acceptée.