1#ifndef YAZE_APP_GUI_EDITOR_CARD_MANAGER_H
2#define YAZE_APP_GUI_EDITOR_CARD_MANAGER_H
7#include <unordered_map>
10#include "imgui/imgui.h"
82 bool ShowCard(
const std::string& card_id);
83 bool HideCard(
const std::string& card_id);
117 void SavePreset(
const std::string& name,
const std::string& description =
"");
120 std::vector<WorkspacePreset>
GetPresets()
const;
137 std::unordered_map<std::string, CardInfo>
cards_;
138 std::unordered_map<std::string, WorkspacePreset>
presets_;
178 other.card_id_.clear();
181 if (
this != &other) {
182 card_id_ = std::move(other.card_id_);
183 other.card_id_.clear();
RAII helper for auto-registering cards.
CardRegistration(const std::string &card_id)
CardRegistration(CardRegistration &&other) noexcept
CardRegistration & operator=(CardRegistration &&other) noexcept
CardRegistration(const CardRegistration &)=delete
CardRegistration()=default
CardRegistration & operator=(const CardRegistration &)=delete
Central registry and manager for all editor cards.
void DrawInlineCardToggles(const std::string &category)
bool ShowCard(const std::string &card_id)
void ShowAllCardsInCategory(const std::string &category)
void DrawViewMenuSection(const std::string &category)
bool LoadPreset(const std::string &name)
void HideAllCardsInCategory(const std::string &category)
std::vector< CardInfo > GetCardsInCategory(const std::string &category) const
void UnregisterCard(const std::string &card_id)
bool ToggleCard(const std::string &card_id)
bool IsCardVisible(const std::string &card_id) const
void RegisterCard(const CardInfo &info)
std::vector< WorkspacePreset > GetPresets() const
bool HideCard(const std::string &card_id)
std::unordered_map< std::string, WorkspacePreset > presets_
std::vector< std::string > GetAllCategories() const
void DrawCardBrowser(bool *p_open)
EditorCardManager()=default
void DrawCompactCardControl(const std::string &category)
static EditorCardManager & Get()
EditorCardManager & operator=(const EditorCardManager &)=delete
size_t GetVisibleCardCount() const
~EditorCardManager()=default
void ShowOnlyCard(const std::string &card_id)
size_t GetCardCount() const
EditorCardManager(const EditorCardManager &)=delete
std::unordered_map< std::string, CardInfo > cards_
const CardInfo * GetCardInfo(const std::string &card_id) const
void SavePreset(const std::string &name, const std::string &description="")
void LoadPresetsFromFile()
void DrawCardBrowserTable(const char *search_filter, const std::string &category_filter)
void DeletePreset(const std::string &name)
Draggable, dockable card for editor sub-windows.
CardRegistration RegisterCard(const CardInfo &info)
Main namespace for the application.
Metadata for an editor card.
std::function< void()> on_show
std::string shortcut_hint
EditorCard * card_instance
std::function< void()> on_hide
std::vector< std::string > visible_cards