Files
XCEngine/editor/src/panels/HierarchyPanel.h
ssdfasd 135fe9145b refactor(editor): 重构 Editor 使用 Engine 的 Component/Scene 系统
- Editor CMakeLists.txt 链接 XCEngine 库
- 删除 editor/src/Core/GameObject.h (简化版)
- SelectionManager 使用 Engine::Components::GameObject*
- SceneManager 使用 Engine::Scene
- HierarchyPanel 使用 Engine GameObject API
- InspectorPanel 使用 Engine TransformComponent

注意: Engine RHI Shader 接口有编译错误需要修复
2026-03-24 18:38:01 +08:00

35 lines
1002 B
C++

#pragma once
#include "Panel.h"
#include <XCEngine/Components/GameObject.h>
namespace UI {
class HierarchyPanel : public Panel {
public:
HierarchyPanel();
~HierarchyPanel();
void Render() override;
private:
void RenderSearchBar();
void RenderEntity(XCEngine::Components::GameObject* entity, const std::string& filter);
void RenderContextMenu(XCEngine::Components::GameObject* entity);
void RenderCreateMenu(XCEngine::Components::GameObject* parent);
void HandleDragDrop(XCEngine::Components::GameObject* entity);
void HandleKeyboardShortcuts();
bool PassesFilter(XCEngine::Components::GameObject* entity, const std::string& filter);
uint64_t m_selectionHandlerId = 0;
char m_searchBuffer[256] = "";
bool m_renaming = false;
XCEngine::Components::GameObject* m_renamingEntity = nullptr;
char m_renameBuffer[256] = "";
bool m_renameJustStarted = false;
XCEngine::Components::GameObject* m_dragSource = nullptr;
};
}