Base interface for all logical panel components. More...
#include <editor_panel.h>
Inherited by yaze::editor::AboutPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentChatPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentStatusPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::CustomPalettePanel, yaze::editor::CustomSpriteEditorPanel, yaze::editor::DebugWindowPanel, yaze::editor::DictionaryPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonMapsPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::GfxGroupsPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::InventoryMenuPanel, yaze::editor::ItemEditorPanel, yaze::editor::LinkSpritePanel, yaze::editor::ManifestEditorPanel, yaze::editor::MapPropertiesPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::MessageEditorPanel, yaze::editor::MessageListPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::NamingScreenPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleRamPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::OracleValidationPanel, yaze::editor::OverlayManagerPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::PaletteControlPanel, yaze::editor::PaletteControlsPanel, yaze::editor::PaletteGroupPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::ResourcePanel, yaze::editor::RoomTagEditorPanel, yaze::editor::ScratchSpacePanel, yaze::editor::SheetBrowserPanel, yaze::editor::SpriteEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::TitleScreenPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::VanillaSpriteEditorPanel, and yaze::editor::WaterFillPanel.
Public Member Functions | |
| virtual | ~EditorPanel ()=default |
| virtual std::string | GetId () const =0 |
| Unique identifier for this panel. | |
| virtual std::string | GetDisplayName () const =0 |
| Human-readable name shown in menus and title bars. | |
| virtual std::string | GetIcon () const =0 |
| Material Design icon for this panel. | |
| virtual std::string | GetEditorCategory () const =0 |
| Editor category this panel belongs to. | |
| virtual void | Draw (bool *p_open)=0 |
| Draw the panel content. | |
| virtual void | OnFirstDraw () |
| Called once before the first Draw() in a session. | |
| virtual bool | RequiresLazyInit () const |
| Whether this panel uses lazy initialization. | |
| void | InvalidateLazyInit () |
| Reset lazy init state so OnFirstDraw() runs again. | |
| virtual void | OnOpen () |
| Called when panel becomes visible. | |
| virtual void | OnClose () |
| Called when panel is hidden. | |
| virtual void | OnFocus () |
| Called when panel receives focus. | |
| virtual PanelCategory | GetPanelCategory () const |
| Get the lifecycle category for this panel. | |
| virtual PanelContextScope | GetContextScope () const |
| Optional context binding for this panel (room/selection/etc) | |
| virtual PanelScope | GetScope () const |
| Get the registration scope for this panel. | |
| virtual bool | IsEnabled () const |
| Check if this panel is currently enabled. | |
| virtual std::string | GetDisabledTooltip () const |
| Get tooltip text when panel is disabled. | |
| virtual std::string | GetShortcutHint () const |
| Get keyboard shortcut hint for display. | |
| virtual int | GetPriority () const |
| Get display priority for menu ordering. | |
| virtual float | GetPreferredWidth () const |
| Get preferred width for this panel (optional) | |
| virtual bool | IsVisibleByDefault () const |
| Whether this panel should be visible by default. | |
| virtual std::string | GetParentPanelId () const |
| Get parent panel ID for cascade behavior. | |
| virtual bool | CascadeCloseChildren () const |
| Whether closing this panel should close child panels. | |
| void | DrawWithLazyInit (bool *p_open) |
| Execute lazy initialization if needed, then call Draw() | |
Protected Member Functions | |
| void | InvalidateCache () |
| Invalidate all cached computations. | |
| template<typename T > | |
| T & | GetCached (const std::string &key, std::function< T()> compute) |
| Get or compute a cached value. | |
| bool | IsCacheValid () const |
| Check if cache has been invalidated. | |
| void | ClearCache () |
| Clear all cached values (more aggressive than InvalidateCache) | |
Private Attributes | |
| bool | lazy_init_done_ = false |
| bool | cache_valid_ = false |
| std::unordered_map< std::string, std::any > | cache_ |
Base interface for all logical panel components.
EditorPanel represents a logical UI component that draws content within a panel window. This is distinct from PanelWindow (the ImGui wrapper that draws the window chrome/title bar).
The separation allows:
Definition at line 90 of file editor_panel.h.
|
virtualdefault |
|
pure virtual |
Unique identifier for this panel.
IDs should be:
Implemented in yaze::editor::OracleRamPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::WaterFillPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::DebugWindowPanel, yaze::editor::GfxGroupsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::ScratchSpacePanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::VanillaSpriteEditorPanel, yaze::editor::CustomSpriteEditorPanel, yaze::editor::ResourcePanel, and yaze::editor::AboutPanel.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), and yaze::editor::PanelManager::RegisterPanelDescriptorForSession().
|
pure virtual |
Human-readable name shown in menus and title bars.
Implemented in yaze::editor::OracleRamPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::WaterFillPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::DebugWindowPanel, yaze::editor::GfxGroupsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::ScratchSpacePanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::VanillaSpriteEditorPanel, yaze::editor::CustomSpriteEditorPanel, yaze::editor::ResourcePanel, and yaze::editor::AboutPanel.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), and yaze::editor::PanelManager::DrawAllVisiblePanels().
|
pure virtual |
Material Design icon for this panel.
Implemented in yaze::editor::OracleRamPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::WaterFillPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::DebugWindowPanel, yaze::editor::GfxGroupsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::ScratchSpacePanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::OverworldMainPalettePanel, yaze::editor::OverworldAnimatedPalettePanel, yaze::editor::DungeonMainPalettePanel, yaze::editor::SpritePalettePanel, yaze::editor::SpritesAux1PalettePanel, yaze::editor::SpritesAux2PalettePanel, yaze::editor::SpritesAux3PalettePanel, yaze::editor::EquipmentPalettePanel, yaze::editor::VanillaSpriteEditorPanel, yaze::editor::CustomSpriteEditorPanel, and yaze::editor::AboutPanel.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), and yaze::editor::PanelManager::DrawAllVisiblePanels().
|
pure virtual |
Editor category this panel belongs to.
Implemented in yaze::editor::OracleRamPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::WaterFillPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::DebugWindowPanel, yaze::editor::GfxGroupsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::ScratchSpacePanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::VanillaSpriteEditorPanel, yaze::editor::CustomSpriteEditorPanel, and yaze::editor::AboutPanel.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), yaze::editor::PanelManager::DrawAllVisiblePanels(), and yaze::editor::ResourcePanel::GetId().
|
pure virtual |
Draw the panel content.
| p_open | Pointer to visibility flag (nullptr if not closable) |
Called by PanelManager when the panel is visible. Do NOT call ImGui::Begin/End - the PanelWindow wrapper handles that. Just draw your content directly.
Implemented in yaze::editor::AnnotationOverlayPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::OracleRamPanel, yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::CustomCollisionPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonSettingsPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::MinecartTrackEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::WaterFillPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::DebugWindowPanel, yaze::editor::GfxGroupsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::ScratchSpacePanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::UsageStatisticsPanel, yaze::editor::V3SettingsPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::VanillaSpriteEditorPanel, yaze::editor::CustomSpriteEditorPanel, and yaze::editor::AboutPanel.
Referenced by DrawWithLazyInit().
|
inlinevirtual |
Called once before the first Draw() in a session.
Use this for expensive one-time initialization that should be deferred until the panel is actually visible. This avoids loading resources for panels that may never be opened.
Definition at line 155 of file editor_panel.h.
Referenced by DrawWithLazyInit().
|
inlinevirtual |
Whether this panel uses lazy initialization.
Override to return true if your panel has expensive setup in OnFirstDraw(). When false (default), OnFirstDraw() is skipped for performance.
Definition at line 164 of file editor_panel.h.
Referenced by DrawWithLazyInit().
|
inline |
Reset lazy init state so OnFirstDraw() runs again.
Call this when panel state needs to be reinitialized (e.g., session switch). The next Draw() will trigger OnFirstDraw() again.
Definition at line 383 of file editor_panel.h.
References lazy_init_done_.
|
inlinevirtual |
Called when panel becomes visible.
Use this to initialize state, load resources, or start animations. Called after the panel is shown but before first Draw().
Reimplemented in yaze::editor::OracleRamPanel, and yaze::editor::ObjectEditorPanel.
Definition at line 180 of file editor_panel.h.
|
inlinevirtual |
Called when panel is hidden.
Use this to cleanup state, release resources, or save state. Called after the panel is hidden.
Reimplemented in yaze::editor::DungeonEmulatorPreviewPanel, and yaze::editor::ObjectEditorPanel.
Definition at line 188 of file editor_panel.h.
Referenced by yaze::editor::PanelManager::DrawAllVisiblePanels().
|
inlinevirtual |
Called when panel receives focus.
Use this to update state based on becoming the active panel.
Definition at line 195 of file editor_panel.h.
|
inlinevirtual |
Get the lifecycle category for this panel.
Default is EditorBound (hidden when switching editors).
Reimplemented in yaze::editor::OracleRamPanel, yaze::editor::AnnotationOverlayPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, and yaze::editor::ResourcePanel.
Definition at line 207 of file editor_panel.h.
References yaze::editor::EditorBound.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), and yaze::editor::PanelManager::DrawAllVisiblePanels().
|
inlinevirtual |
Optional context binding for this panel (room/selection/etc)
Definition at line 215 of file editor_panel.h.
References yaze::editor::kNone.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel().
|
inlinevirtual |
Get the registration scope for this panel.
Default is session-scoped.
Reimplemented in yaze::editor::AboutPanel.
Definition at line 225 of file editor_panel.h.
References yaze::editor::kSession.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel(), and yaze::editor::PanelManager::RegisterPanelDescriptorForSession().
|
inlinevirtual |
Check if this panel is currently enabled.
Disabled panels appear grayed out in menus. Override to implement conditional availability (e.g., requires ROM loaded).
Definition at line 234 of file editor_panel.h.
|
inlinevirtual |
Get tooltip text when panel is disabled.
Definition at line 240 of file editor_panel.h.
|
inlinevirtual |
Get keyboard shortcut hint for display.
Reimplemented in yaze::editor::AgentMesenDebugPanel, yaze::editor::OracleStateLibraryEditorPanel, and yaze::editor::OverworldCanvasPanel.
Definition at line 246 of file editor_panel.h.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel().
|
inlinevirtual |
Get display priority for menu ordering.
Reimplemented in yaze::editor::AgentConfigurationPanel, yaze::editor::AgentStatusPanel, yaze::editor::AgentPromptEditorPanel, yaze::editor::AgentBotProfilesPanel, yaze::editor::AgentChatHistoryPanel, yaze::editor::AgentMetricsDashboardPanel, yaze::editor::AgentBuilderPanel, yaze::editor::AgentMesenDebugPanel, yaze::editor::AgentKnowledgeBasePanel, yaze::editor::AgentChatPanel, yaze::editor::OracleStateLibraryEditorPanel, yaze::editor::FeatureFlagEditorEditorPanel, yaze::editor::ManifestEditorPanel, yaze::editor::SramViewerEditorPanel, yaze::editor::MesenScreenshotEditorPanel, yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::ChestEditorPanel, yaze::editor::DungeonEmulatorPreviewPanel, yaze::editor::DungeonEntranceListPanel, yaze::editor::DungeonEntrancesPanel, yaze::editor::DungeonMapPanel, yaze::editor::DungeonPaletteEditorPanel, yaze::editor::DungeonRoomGraphicsPanel, yaze::editor::DungeonRoomMatrixPanel, yaze::editor::DungeonRoomPanel, yaze::editor::DungeonRoomSelectorPanel, yaze::editor::DungeonWorkbenchPanel, yaze::editor::ItemEditorPanel, yaze::editor::ObjectEditorPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::OverlayManagerPanel, yaze::editor::RoomTagEditorPanel, yaze::editor::SpriteEditorPanel, yaze::editor::LinkSpritePanel, yaze::editor::PaletteControlsPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::DungeonMapsPanel, yaze::editor::InventoryMenuPanel, yaze::editor::OverworldMapScreenPanel, yaze::editor::TitleScreenPanel, yaze::editor::NamingScreenPanel, yaze::editor::PixelEditorPanel, yaze::editor::PolyhedralEditorPanel, yaze::editor::SheetBrowserPanel, yaze::editor::MessageListPanel, yaze::editor::MessageEditorPanel, yaze::editor::FontAtlasPanel, yaze::editor::DictionaryPanel, yaze::editor::MusicAssemblyPanel, yaze::editor::MusicAudioDebugPanel, yaze::editor::MusicHelpPanel, yaze::editor::MusicInstrumentEditorPanel, yaze::editor::MusicPianoRollPanel, yaze::editor::MusicPlaybackControlPanel, yaze::editor::MusicSampleEditorPanel, yaze::editor::MusicSongBrowserPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::Tile16EditorPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::PaletteGroupPanel, yaze::editor::OverworldMainPalettePanel, yaze::editor::OverworldAnimatedPalettePanel, yaze::editor::DungeonMainPalettePanel, yaze::editor::SpritePalettePanel, yaze::editor::SpritesAux1PalettePanel, yaze::editor::SpritesAux2PalettePanel, yaze::editor::SpritesAux3PalettePanel, yaze::editor::EquipmentPalettePanel, yaze::editor::VanillaSpriteEditorPanel, and yaze::editor::CustomSpriteEditorPanel.
Definition at line 252 of file editor_panel.h.
Referenced by yaze::editor::anonymous_namespace{panel_manager.cc}::BuildDescriptorFromPanel().
|
inlinevirtual |
Get preferred width for this panel (optional)
Override this to specify content-based sizing. For example, a tile selector with 8 tiles at 16px × 2.0 scale would return ~276px.
Reimplemented in yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblySymbolsPanel, yaze::editor::AssemblyBuildOutputPanel, yaze::editor::ObjectTileEditorPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::GraphicsPaletteControlsPanel, yaze::editor::GraphicsLinkSpritePanel, yaze::editor::GraphicsPolyhedralPanel, yaze::editor::GraphicsGfxGroupPanel, yaze::editor::GraphicsPrototypeViewerPanel, yaze::editor::GraphicsPalettesetPanel, yaze::editor::OracleMenuInspectorPanel, yaze::editor::OracleValidationPanel, yaze::editor::ProgressionDashboardPanel, yaze::editor::StoryEventGraphPanel, yaze::editor::AreaGraphicsPanel, yaze::editor::MapPropertiesPanel, yaze::editor::Tile16EditorPanel, yaze::editor::Tile16SelectorPanel, yaze::editor::Tile8SelectorPanel, yaze::editor::PaletteControlPanel, yaze::editor::QuickAccessPalettePanel, yaze::editor::CustomPalettePanel, yaze::editor::VanillaSpriteEditorPanel, and yaze::editor::CustomSpriteEditorPanel.
Definition at line 261 of file editor_panel.h.
Referenced by yaze::editor::PanelManager::DrawAllVisiblePanels().
|
inlinevirtual |
Whether this panel should be visible by default.
Override this to set panels as visible by default. Most panels default to hidden to reduce UI clutter.
Reimplemented in yaze::editor::AssemblyCodeEditorPanel, yaze::editor::AssemblyFileBrowserPanel, yaze::editor::AssemblyToolbarPanel, yaze::editor::GraphicsSheetBrowserPanel, yaze::editor::GraphicsPixelEditorPanel, yaze::editor::OverworldCanvasPanel, yaze::editor::Tile16SelectorPanel, and yaze::editor::VanillaSpriteEditorPanel.
Definition at line 270 of file editor_panel.h.
Referenced by yaze::editor::PanelManager::RegisterPanelDescriptorForSession().
|
inlinevirtual |
Get parent panel ID for cascade behavior.
If set, this panel may be automatically closed when parent closes (depending on parent's CascadeCloseChildren() setting).
Definition at line 283 of file editor_panel.h.
|
inlinevirtual |
Whether closing this panel should close child panels.
Only affects panels that have this panel as their parent.
Definition at line 291 of file editor_panel.h.
|
inline |
Execute lazy initialization if needed, then call Draw()
| p_open | Pointer to visibility flag |
Called by PanelManager. Handles OnFirstDraw() invocation automatically.
Definition at line 303 of file editor_panel.h.
References Draw(), lazy_init_done_, OnFirstDraw(), and RequiresLazyInit().
Referenced by yaze::editor::PanelManager::DrawAllVisiblePanels().

|
inlineprotected |
Invalidate all cached computations.
Call this when the underlying data changes and cached values are stale. Common triggers:
Definition at line 325 of file editor_panel.h.
References cache_valid_.
|
inlineprotected |
Get or compute a cached value.
| T | The type of the cached value |
| key | Unique identifier for this cached value |
| compute | Function to compute the value if not cached |
Example usage:
Definition at line 348 of file editor_panel.h.
References cache_, and cache_valid_.
|
inlineprotected |
Check if cache has been invalidated.
Definition at line 360 of file editor_panel.h.
References cache_valid_.
|
inlineprotected |
Clear all cached values (more aggressive than InvalidateCache)
Use this when you need to free memory, not just mark values as stale. InvalidateCache() just marks the cache as invalid but keeps values for potential debugging or lazy re-computation.
Definition at line 369 of file editor_panel.h.
References cache_, and cache_valid_.
|
private |
Definition at line 375 of file editor_panel.h.
Referenced by DrawWithLazyInit(), and InvalidateLazyInit().
|
private |
Definition at line 378 of file editor_panel.h.
Referenced by ClearCache(), GetCached(), InvalidateCache(), and IsCacheValid().
|
private |
Definition at line 379 of file editor_panel.h.
Referenced by ClearCache(), and GetCached().