#include <object_editor_content.h>


Public Member Functions | |
| ObjectEditorContent (std::shared_ptr< zelda3::DungeonObjectEditor > object_editor=nullptr) | |
| std::string | GetId () const override |
| Unique identifier for this panel. | |
| std::string | GetDisplayName () const override |
| Human-readable name shown in menus and title bars. | |
| std::string | GetIcon () const override |
| Material Design icon for this panel. | |
| std::string | GetEditorCategory () const override |
| Editor category this panel belongs to. | |
| int | GetPriority () const override |
| Get display priority for menu ordering. | |
| float | GetPreferredWidth () const override |
| Get preferred width for this panel (optional) | |
| void | Draw (bool *p_open) override |
| Draw the panel content. | |
| void | SetCurrentRoom (int room_id) |
| void | SetCanvasViewerProvider (std::function< DungeonCanvasViewer *()> provider) |
| void | SetCanvasViewer (DungeonCanvasViewer *viewer) |
| void | SetJumpToReciprocalDoorCallback (std::function< void(int neighbor_room_id, size_t reciprocal_door_index)> callback) |
| void | CycleObjectSelection (int direction) |
| void | SelectAllObjects () |
| void | DeleteSelectedObjects () |
| void | CopySelectedObjects () |
| void | PasteObjects () |
Public Member Functions inherited from yaze::editor::WindowContent | |
| virtual | ~WindowContent ()=default |
| 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 WindowLifecycle | GetWindowLifecycle () const |
| Get the lifecycle category for this window. | |
| virtual WindowContextScope | GetContextScope () const |
| Optional context binding for this window (room/selection/etc) | |
| virtual WindowScope | GetScope () const |
| Get the registration scope for this window. | |
| 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 std::string | GetWorkflowGroup () const |
| Optional workflow group for hack-centric actions. | |
| virtual std::string | GetWorkflowLabel () const |
| Optional workflow label for menus/command palette. | |
| virtual std::string | GetWorkflowDescription () const |
| Optional workflow description for menus/command palette. | |
| virtual int | GetWorkflowPriority () const |
| Optional workflow ordering priority (lower sorts first). | |
| virtual float | GetPreferredHeight () const |
| Get preferred height for this panel (optional) | |
| virtual bool | PreferAutoHideTabBar () const |
| Whether the dock node hosting this panel should auto-hide its tab bar. | |
| 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() | |
Private Member Functions | |
| void | SetupSelectionCallbacks () |
| void | OnSelectionChanged () |
| DungeonCanvasViewer * | ResolveCanvasViewer () |
| void | RefreshSelectionSnapshot () |
| void | DrawEmptyState () |
| void | DrawSelectionSummary () |
| void | DrawSelectionActions () |
| void | DrawSelectedObjectInfo () |
| void | DrawSelectedDoorInfo () |
| void | DrawSelectedSpriteInfo () |
| void | DrawSelectedItemInfo () |
| void | DrawKeyboardShortcutHelp () |
| void | HandleKeyboardShortcuts () |
| void | DeselectAllObjects () |
| void | DuplicateSelectedObjects () |
| void | DeleteSelectedEntity () |
| void | DeleteCurrentSelection () |
| void | DeleteAllSelectedTypeInRoom () |
| void | DuplicateSelectedSprite () |
| void | NudgeCurrentSelection (int dx, int dy) |
| void | ScrollToObject (size_t index) |
Private Attributes | |
| DungeonCanvasViewer * | canvas_viewer_ = nullptr |
| std::function< DungeonCanvasViewer *()> | canvas_viewer_provider_ |
| int | current_room_id_ = 0 |
| std::shared_ptr< zelda3::DungeonObjectEditor > | object_editor_ |
| size_t | cached_selection_count_ = 0 |
| bool | selection_callbacks_setup_ = false |
| bool | show_shortcut_help_ = false |
| DungeonSelectionSnapshot | selection_snapshot_ |
| std::function< void(int, size_t)> | on_jump_to_reciprocal_door_ |
Additional Inherited Members | |
Protected Member Functions inherited from yaze::editor::WindowContent | |
| 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) | |
Definition at line 22 of file object_editor_content.h.
|
explicit |
Definition at line 226 of file object_editor_content.cc.
|
inlineoverridevirtual |
Unique identifier for this panel.
IDs should be:
Implements yaze::editor::WindowContent.
Definition at line 27 of file object_editor_content.h.
|
inlineoverridevirtual |
Human-readable name shown in menus and title bars.
Implements yaze::editor::WindowContent.
Definition at line 28 of file object_editor_content.h.
|
inlineoverridevirtual |
Material Design icon for this panel.
Implements yaze::editor::WindowContent.
Definition at line 29 of file object_editor_content.h.
References ICON_MD_TUNE.
|
inlineoverridevirtual |
Editor category this panel belongs to.
Implements yaze::editor::WindowContent.
Definition at line 30 of file object_editor_content.h.
|
inlineoverridevirtual |
Get display priority for menu ordering.
Reimplemented from yaze::editor::WindowContent.
Definition at line 31 of file object_editor_content.h.
|
inlineoverridevirtual |
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 from yaze::editor::WindowContent.
Definition at line 32 of file object_editor_content.h.
|
overridevirtual |
Draw the panel content.
| p_open | Pointer to visibility flag (nullptr if not closable) |
Called by WorkspaceWindowManager when the panel is visible. Do NOT call ImGui::Begin/End - the PanelWindow wrapper handles that. Just draw your content directly.
Implements yaze::editor::WindowContent.
Definition at line 297 of file object_editor_content.cc.
References yaze::editor::Door, DrawEmptyState(), DrawKeyboardShortcutHelp(), DrawSelectedDoorInfo(), DrawSelectedItemInfo(), DrawSelectedObjectInfo(), DrawSelectedSpriteInfo(), DrawSelectionActions(), DrawSelectionSummary(), yaze::editor::EntityMulti, yaze::editor::GetDungeonSelectionSummaryText(), yaze::editor::AgentUI::GetTheme(), HandleKeyboardShortcuts(), yaze::editor::DungeonSelectionSnapshot::HasObjectSelection(), ICON_MD_HELP_OUTLINE, ICON_MD_TUNE, yaze::editor::Item, yaze::editor::DungeonSelectionSnapshot::kind, yaze::editor::Mixed, object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), RefreshSelectionSnapshot(), ResolveCanvasViewer(), selection_snapshot_, show_shortcut_help_, yaze::editor::Sprite, and yaze::editor::SyncObjectEditorSelectionToCanvas().
|
inline |
Definition at line 36 of file object_editor_content.h.
References current_room_id_.
|
inline |
Definition at line 37 of file object_editor_content.h.
References canvas_viewer_provider_.
| void yaze::editor::ObjectEditorContent::SetCanvasViewer | ( | DungeonCanvasViewer * | viewer | ) |
Definition at line 230 of file object_editor_content.cc.
References canvas_viewer_, selection_callbacks_setup_, and SetupSelectionCallbacks().
Referenced by yaze::editor::DungeonEditorV2::~DungeonEditorV2().

|
inline |
Definition at line 41 of file object_editor_content.h.
References on_jump_to_reciprocal_door_.
| void yaze::editor::ObjectEditorContent::CycleObjectSelection | ( | int | direction | ) |
Definition at line 1010 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), and ScrollToObject().
Referenced by HandleKeyboardShortcuts().

| void yaze::editor::ObjectEditorContent::SelectAllObjects | ( | ) |
Definition at line 859 of file object_editor_content.cc.
References object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), and yaze::editor::DungeonObjectInteraction::SetSelectedObjects().
Referenced by HandleKeyboardShortcuts().

| void yaze::editor::ObjectEditorContent::DeleteSelectedObjects | ( | ) |
Definition at line 884 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::HandleDeleteSelected(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().

| void yaze::editor::ObjectEditorContent::CopySelectedObjects | ( | ) |
Definition at line 984 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::HandleCopySelected(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().

| void yaze::editor::ObjectEditorContent::PasteObjects | ( | ) |
Definition at line 992 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::HandlePasteObjects(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().

|
private |
Definition at line 238 of file object_editor_content.cc.
References canvas_viewer_, yaze::editor::DungeonCanvasViewer::object_interaction(), OnSelectionChanged(), selection_callbacks_setup_, and yaze::editor::DungeonObjectInteraction::SetSelectionChangeCallback().
Referenced by ResolveCanvasViewer(), and SetCanvasViewer().

|
private |
Definition at line 263 of file object_editor_content.cc.
References cached_selection_count_, yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), RefreshSelectionSnapshot(), ResolveCanvasViewer(), and selection_snapshot_.
Referenced by SetupSelectionCallbacks().

|
private |
Definition at line 251 of file object_editor_content.cc.
References canvas_viewer_, canvas_viewer_provider_, selection_callbacks_setup_, and SetupSelectionCallbacks().
Referenced by CopySelectedObjects(), CycleObjectSelection(), DeleteAllSelectedTypeInRoom(), DeleteCurrentSelection(), DeleteSelectedEntity(), DeleteSelectedObjects(), DeselectAllObjects(), Draw(), DrawSelectedDoorInfo(), DrawSelectedItemInfo(), DrawSelectedObjectInfo(), DrawSelectedSpriteInfo(), DrawSelectionActions(), DrawSelectionSummary(), DuplicateSelectedObjects(), DuplicateSelectedSprite(), NudgeCurrentSelection(), OnSelectionChanged(), PasteObjects(), RefreshSelectionSnapshot(), ScrollToObject(), and SelectAllObjects().

|
private |
Definition at line 284 of file object_editor_content.cc.
References yaze::editor::BuildDungeonSelectionSnapshot(), cached_selection_count_, yaze::editor::DungeonSelectionSnapshot::count, yaze::editor::DungeonCanvasViewer::current_room_id(), yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), yaze::editor::DungeonCanvasViewer::rooms(), and selection_snapshot_.
Referenced by Draw(), and OnSelectionChanged().
|
private |
Definition at line 732 of file object_editor_content.cc.
References yaze::editor::AgentUI::GetTheme(), ICON_MD_MOUSE, and ICON_MD_OPEN_WITH.
Referenced by Draw().

|
private |
Definition at line 343 of file object_editor_content.cc.
References yaze::editor::DungeonSelectionSnapshot::count, yaze::editor::Door, yaze::editor::EntityMulti, yaze::editor::GetDungeonSelectionSummaryText(), yaze::editor::AgentUI::GetTheme(), ICON_MD_CHECK_CIRCLE, ICON_MD_DOOR_FRONT, ICON_MD_INVENTORY, ICON_MD_PERSON, ICON_MD_SELECT_ALL, ICON_MD_TUNE, yaze::editor::Item, yaze::editor::DungeonSelectionSnapshot::kind, yaze::editor::Mixed, yaze::editor::None, yaze::editor::ObjectMulti, yaze::editor::ObjectSingle, ResolveCanvasViewer(), selection_snapshot_, and yaze::editor::Sprite.
Referenced by Draw().

|
private |
Definition at line 387 of file object_editor_content.cc.
References CopySelectedObjects(), DeleteAllSelectedTypeInRoom(), DeleteCurrentSelection(), DeselectAllObjects(), DuplicateSelectedObjects(), DuplicateSelectedSprite(), yaze::editor::EntityMulti, yaze::editor::DungeonSelectionSnapshot::HasObjectSelection(), yaze::editor::DungeonSelectionSnapshot::HasSelection(), ICON_MD_CLEAR, ICON_MD_CONTENT_COPY, ICON_MD_CONTENT_PASTE, ICON_MD_DELETE, ICON_MD_FILTER_NONE, yaze::editor::DungeonSelectionSnapshot::item_count, yaze::editor::DungeonSelectionSnapshot::kind, yaze::editor::Mixed, yaze::editor::DungeonSelectionSnapshot::object_count, PasteObjects(), ResolveCanvasViewer(), selection_snapshot_, yaze::editor::Sprite, and yaze::editor::DungeonSelectionSnapshot::sprite_count.
Referenced by Draw().
|
private |
Definition at line 433 of file object_editor_content.cc.
References yaze::zelda3::EffectiveBgLayerLabel(), yaze::zelda3::GetObjectLayerSemantics(), yaze::zelda3::GetObjectName(), yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), yaze::editor::AgentUI::GetTheme(), yaze::editor::DungeonCanvasViewer::HasRooms(), object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), and yaze::zelda3::UsesRoomObjectStream().
Referenced by Draw().
|
private |
Definition at line 481 of file object_editor_content.cc.
References yaze::editor::DungeonCanvasViewer::current_room_id(), yaze::editor::Door, yaze::editor::InteractionCoordinator::door_handler(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::zelda3::GetDoorDirectionName(), yaze::zelda3::GetDoorTypeName(), yaze::editor::DungeonObjectInteraction::GetSelectedEntity(), yaze::editor::AgentUI::GetTheme(), yaze::editor::DungeonCanvasViewer::HasRooms(), ICON_MD_ARROW_FORWARD, yaze::editor::DoorInteractionHandler::MutateDoorType(), yaze::editor::NeighborRoomId(), yaze::editor::DungeonCanvasViewer::object_interaction(), on_jump_to_reciprocal_door_, yaze::editor::OppositeDir(), ResolveCanvasViewer(), yaze::editor::DungeonCanvasViewer::rooms(), and yaze::editor::DungeonRoomStore::size().
Referenced by Draw().
|
private |
Definition at line 579 of file object_editor_content.cc.
References yaze::editor::DungeonCanvasViewer::current_room_id(), yaze::editor::DungeonObjectInteraction::GetSelectedEntity(), yaze::editor::AgentUI::GetTheme(), yaze::editor::DungeonCanvasViewer::HasRooms(), ICON_MD_KEY, ICON_MD_STAR, ICON_MD_VPN_KEY, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), yaze::zelda3::ResolveSpriteName(), yaze::editor::DungeonCanvasViewer::rooms(), yaze::zelda3::Sprite::set_key_drop(), yaze::zelda3::Sprite::set_layer(), yaze::zelda3::Sprite::set_subtype(), yaze::editor::DungeonRoomStore::size(), and yaze::editor::Sprite.
Referenced by Draw().
|
private |
Definition at line 665 of file object_editor_content.cc.
References yaze::editor::DungeonCanvasViewer::current_room_id(), yaze::editor::DungeonObjectInteraction::GetSelectedEntity(), yaze::editor::AgentUI::GetTheme(), yaze::editor::DungeonCanvasViewer::HasRooms(), yaze::editor::Item, yaze::zelda3::PotItem::item, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), yaze::editor::DungeonCanvasViewer::rooms(), and yaze::editor::DungeonRoomStore::size().
Referenced by Draw().
|
private |
Definition at line 745 of file object_editor_content.cc.
References yaze::editor::AgentUI::GetTheme(), ICON_MD_EDIT, ICON_MD_KEYBOARD, ICON_MD_OPEN_WITH, and show_shortcut_help_.
Referenced by Draw().

|
private |
Definition at line 785 of file object_editor_content.cc.
References CopySelectedObjects(), CycleObjectSelection(), DeleteCurrentSelection(), DeselectAllObjects(), DuplicateSelectedObjects(), DuplicateSelectedSprite(), yaze::editor::DungeonSelectionSnapshot::HasObjectSelection(), yaze::editor::DungeonSelectionSnapshot::HasSelection(), yaze::editor::DungeonSelectionSnapshot::kind, NudgeCurrentSelection(), object_editor_, PasteObjects(), SelectAllObjects(), selection_snapshot_, show_shortcut_help_, and yaze::editor::Sprite.
Referenced by Draw().
|
private |
Definition at line 875 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::ClearEntitySelection(), yaze::editor::DungeonObjectInteraction::ClearSelection(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().

|
private |
Definition at line 893 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), object_editor_, yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().

|
private |
Definition at line 915 of file object_editor_content.cc.
References yaze::editor::InteractionCoordinator::DeleteSelectedEntity(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().

|
private |
Definition at line 923 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::HandleDeleteSelected(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().

|
private |
Definition at line 931 of file object_editor_content.cc.
References yaze::editor::DoorInteractionHandler::DeleteAll(), yaze::editor::Door, yaze::editor::InteractionCoordinator::door_handler(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::editor::DungeonCanvasViewer::HasRooms(), yaze::editor::Item, yaze::editor::DungeonSelectionSnapshot::kind, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), selection_snapshot_, and yaze::editor::Sprite.
Referenced by DrawSelectionActions().
|
private |
Definition at line 953 of file object_editor_content.cc.
References yaze::editor::DungeonCanvasViewer::current_room_id(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::editor::SpriteInteractionHandler::GetSelectedIndex(), yaze::editor::DungeonCanvasViewer::HasRooms(), yaze::editor::kSprites, yaze::editor::DungeonCanvasViewer::object_interaction(), ResolveCanvasViewer(), yaze::editor::DungeonCanvasViewer::rooms(), yaze::editor::DungeonRoomStore::size(), and yaze::editor::InteractionCoordinator::sprite_handler().
Referenced by DrawSelectionActions(), and HandleKeyboardShortcuts().
|
private |
Definition at line 1001 of file object_editor_content.cc.
References yaze::editor::DungeonObjectInteraction::NudgeSelected(), yaze::editor::DungeonCanvasViewer::object_interaction(), and ResolveCanvasViewer().
Referenced by HandleKeyboardShortcuts().

|
private |
Definition at line 1031 of file object_editor_content.cc.
References object_editor_, ResolveCanvasViewer(), and yaze::editor::DungeonCanvasViewer::ScrollToTile().
Referenced by CycleObjectSelection().

|
private |
Definition at line 78 of file object_editor_content.h.
Referenced by ResolveCanvasViewer(), SetCanvasViewer(), and SetupSelectionCallbacks().
|
private |
Definition at line 79 of file object_editor_content.h.
Referenced by ResolveCanvasViewer(), and SetCanvasViewerProvider().
|
private |
Definition at line 80 of file object_editor_content.h.
Referenced by SetCurrentRoom().
|
private |
Definition at line 81 of file object_editor_content.h.
Referenced by CycleObjectSelection(), Draw(), DrawSelectedObjectInfo(), DuplicateSelectedObjects(), HandleKeyboardShortcuts(), OnSelectionChanged(), ScrollToObject(), and SelectAllObjects().
|
private |
Definition at line 83 of file object_editor_content.h.
Referenced by OnSelectionChanged(), and RefreshSelectionSnapshot().
|
private |
Definition at line 84 of file object_editor_content.h.
Referenced by ResolveCanvasViewer(), SetCanvasViewer(), and SetupSelectionCallbacks().
|
private |
Definition at line 85 of file object_editor_content.h.
Referenced by Draw(), DrawKeyboardShortcutHelp(), and HandleKeyboardShortcuts().
|
private |
Definition at line 86 of file object_editor_content.h.
Referenced by DeleteAllSelectedTypeInRoom(), Draw(), DrawSelectionActions(), DrawSelectionSummary(), HandleKeyboardShortcuts(), OnSelectionChanged(), and RefreshSelectionSnapshot().
|
private |
Definition at line 87 of file object_editor_content.h.
Referenced by DrawSelectedDoorInfo(), and SetJumpToReciprocalDoorCallback().