4#include "imgui/imgui.h"
10 WindowDescriptor descriptor;
11 descriptor.
card_id = definition.id;
12 descriptor.display_name = definition.display_name;
13 descriptor.icon = definition.icon;
14 descriptor.category = definition.category;
15 descriptor.window_title = definition.window_title;
16 descriptor.shortcut_hint = definition.shortcut_hint;
17 descriptor.priority = definition.priority;
18 descriptor.scope = definition.scope;
19 descriptor.window_lifecycle = definition.window_lifecycle;
20 descriptor.context_scope = definition.context_scope;
21 descriptor.on_show = definition.on_show;
22 descriptor.on_hide = definition.on_hide;
23 descriptor.visibility_flag = definition.visibility_flag;
28 const WindowDefinition& definition) {
33 for (
const auto& legacy_id : definition.legacy_ids) {
38 if (definition.visible_by_default) {
53 size_t session_id,
const std::vector<WindowDefinition>& definitions) {
58 bool any_registered =
false;
59 for (
const auto& definition : definitions) {
60 any_registered =
RegisterPanel(session_id, definition) || any_registered;
62 return any_registered;
66 const std::vector<WindowDefinition>& definitions) {
74 const std::string& canonical_id) {
95 const std::string& window_id)
const {
101 const std::string& window_id)
const {
110 const std::string window_name =
112 if (window_name.empty()) {
116 ImGui::SetWindowFocus(window_name.c_str());
126 size_t session_id,
const std::string& window_id)
const {
bool OpenWindow(size_t session_id, const std::string &window_id)
static WindowDescriptor ToDescriptor(const WindowDefinition &definition)
std::string GetWorkspaceWindowName(size_t session_id, const std::string &window_id) const
bool IsWindowOpen(size_t session_id, const std::string &window_id) const
void RegisterPanelAlias(const std::string &legacy_id, const std::string &canonical_id)
std::string ResolveWindowId(const std::string &window_id) const
bool OpenAndFocusWindow(size_t session_id, const std::string &window_id) const
bool RegisterPanels(size_t session_id, const std::vector< WindowDefinition > &definitions)
WorkspaceWindowManager * window_manager_
bool ToggleWindow(size_t session_id, const std::string &window_id)
bool CloseWindow(size_t session_id, const std::string &window_id)
bool RegisterPanel(size_t session_id, const WindowDefinition &definition)
std::string GetWorkspaceWindowName(size_t session_id, const std::string &base_window_id) const
Resolve the exact ImGui window name for a panel by base ID.
size_t GetActiveSessionId() const
std::string ResolveWindowAlias(const std::string &window_id) const
bool CloseWindow(size_t session_id, const std::string &base_window_id)
void RegisterWindow(size_t session_id, const WindowDescriptor &descriptor)
bool IsWindowOpen(size_t session_id, const std::string &base_window_id) const
bool OpenWindow(size_t session_id, const std::string &base_window_id)
bool ToggleWindow(size_t session_id, const std::string &base_window_id)
void RegisterPanelAlias(const std::string &legacy_base_id, const std::string &canonical_base_id)
Register a legacy panel ID alias that resolves to a canonical ID.