JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
EditorWorkspace.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 <cstddef>
7
11
30
31namespace hmi {
32
39
41inline constexpr std::size_t EDITOR_WORKSPACE_COUNT = 3;
42
44using EditorWorkspaceMask = unsigned;
45
47[[nodiscard]] constexpr EditorWorkspaceMask workspaceBit(EditorWorkspace workspace) noexcept {
48 return 1u << static_cast<unsigned>(workspace);
49}
50
52[[nodiscard]] constexpr bool workspaceMaskContains(EditorWorkspaceMask mask,
53 EditorWorkspace workspace) noexcept {
54 return (mask & workspaceBit(workspace)) != 0u;
55}
56
60 bool levelToolBarVisible = false;
61 bool pixelToolBarVisible = false;
62 bool workshopMenuVisible = false;
63
64 [[nodiscard]] friend bool operator==(const WorkspaceDressing&,
65 const WorkspaceDressing&) noexcept = default;
66};
67
70[[nodiscard]] WorkspaceDressing dressingForWorkspace(EditorWorkspace workspace) noexcept;
71
86[[nodiscard]] EditorWorkspaceMask workspacesForPanel(PanelId panel) noexcept;
87
91[[nodiscard]] EditorWorkspace workspaceForTool(EditorTool tool) noexcept;
92
94[[nodiscard]] EditorWorkspace workspaceForPixelTool(PixelTool tool) noexcept;
95
96} // namespace hmi
Outil actif dans la grille de l'éditeur (LOT-15, EX-EDIT-014).
Correspondance outil actif → panneau à mettre en avant (LOT-57 TACHE-02, EX-IHM-061).
Outil actif du canevas pixel art (LOT-54 TACHE-03/TACHE-04).
Definition AudioEngine.cpp:15
EditorTool
Outil actif dans la grille de l'éditeur, changé via Tab ou la barre d'outils (hmi::EditorActions).
Definition EditorTool.h:35
EditorWorkspaceMask workspacesForPanel(PanelId panel) noexcept
Espaces dans lesquels panel est affiché.
Definition EditorWorkspace.cpp:28
constexpr bool workspaceMaskContains(EditorWorkspaceMask mask, EditorWorkspace workspace) noexcept
Definition EditorWorkspace.h:52
constexpr std::size_t EDITOR_WORKSPACE_COUNT
Nombre d'espaces, déclaré au plus près de l'énumération qu'il compte.
Definition EditorWorkspace.h:41
EditorWorkspace workspaceForTool(EditorTool) noexcept
Definition EditorWorkspace.cpp:52
constexpr EditorWorkspaceMask workspaceBit(EditorWorkspace workspace) noexcept
Definition EditorWorkspace.h:47
PixelTool
Outil actif du canevas pixel art — détermine ce que produisent les gestes de souris (hmi::PixelCanvas...
Definition PixelTool.h:22
PanelId
Panneau dockable de l'éditeur.
Definition PanelFocus.h:28
@ Planes
Definition PanelFocus.h:35
WorkspaceDressing dressingForWorkspace(EditorWorkspace workspace) noexcept
Definition EditorWorkspace.cpp:8
unsigned EditorWorkspaceMask
Ensemble d'espaces, un bit par valeur de hmi::EditorWorkspace.
Definition EditorWorkspace.h:44
EditorWorkspace workspaceForPixelTool(PixelTool) noexcept
Definition EditorWorkspace.cpp:60
EditorWorkspace
Espace de travail actif. Ils s'excluent : aucun état intermédiaire n'existe.
Definition EditorWorkspace.h:34
@ PixelArt
Atelier pixel art.
Definition EditorWorkspace.h:37
@ Level
Édition de niveau.
Definition EditorWorkspace.h:35
Ce qu'un espace affiche, hors panneaux (voir workspacesForPanel).
Definition EditorWorkspace.h:59
bool workshopMenuVisible
Definition EditorWorkspace.h:62
bool pixelToolBarVisible
Definition EditorWorkspace.h:61
bool levelToolBarVisible
Definition EditorWorkspace.h:60
friend bool operator==(const WorkspaceDressing &, const WorkspaceDressing &) noexcept=default