4#include "imgui/imgui.h"
33 for (
const auto& legacy_id : definition.
legacy_ids) {
53 size_t session_id,
const std::vector<PanelDefinition>& 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<PanelDefinition>& definitions) {
74 const std::string& canonical_id) {
94 const std::string& panel_id)
const {
99 const std::string& panel_id)
const {
108 const std::string window_name =
110 if (window_name.empty()) {
114 ImGui::SetWindowFocus(window_name.c_str());
124 const std::string& panel_id)
const {
bool ShowPanel(size_t session_id, const std::string &panel_id)
static PanelDescriptor ToDescriptor(const PanelDefinition &definition)
bool IsPanelVisible(size_t session_id, const std::string &panel_id) const
bool OpenAndFocus(size_t session_id, const std::string &panel_id) const
std::string ResolvePanelId(const std::string &panel_id) const
std::string GetPanelWindowName(size_t session_id, const std::string &panel_id) const
PanelManager * panel_manager_
bool RegisterPanel(size_t session_id, const PanelDefinition &definition)
bool RegisterPanels(size_t session_id, const std::vector< PanelDefinition > &definitions)
bool TogglePanel(size_t session_id, const std::string &panel_id)
void RegisterPanelAlias(const std::string &legacy_id, const std::string &canonical_id)
bool HidePanel(size_t session_id, const std::string &panel_id)
bool TogglePanel(size_t session_id, const std::string &base_card_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.
bool ShowPanel(size_t session_id, const std::string &base_card_id)
void RegisterPanel(size_t session_id, const PanelDescriptor &base_info)
bool IsPanelVisible(size_t session_id, const std::string &base_card_id) const
std::string GetPanelWindowName(size_t session_id, const std::string &base_card_id) const
Resolve the exact ImGui window name for a panel by base ID.
bool HidePanel(size_t session_id, const std::string &base_card_id)
size_t GetActiveSessionId() const
std::string ResolvePanelAlias(const std::string &panel_id) const
Resolve a panel ID through the alias table.
Declarative registration contract for editor panels.
std::string shortcut_hint
std::vector< std::string > legacy_ids
PanelContextScope context_scope
std::function< void()> on_hide
PanelCategory panel_category
std::function< void()> on_show
Metadata for an editor panel (formerly PanelInfo)
std::function< void()> on_show
PanelCategory panel_category
PanelContextScope context_scope
std::string shortcut_hint
std::function< void()> on_hide