38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "Panel.h"
|
|
#include "UI/PopupState.h"
|
|
#include "UI/TreeView.h"
|
|
#include <XCEngine/Components/GameObject.h>
|
|
#include "Core/ISceneManager.h"
|
|
|
|
namespace XCEngine {
|
|
namespace Editor {
|
|
|
|
class HierarchyPanel : public Panel {
|
|
public:
|
|
HierarchyPanel();
|
|
|
|
void OnAttach() override;
|
|
void OnDetach() override;
|
|
void Render() override;
|
|
|
|
private:
|
|
void OnSelectionChanged(const struct SelectionChangedEvent& event);
|
|
void OnRenameRequested(const struct EntityRenameRequestedEvent& event);
|
|
void RenderEntity(::XCEngine::Components::GameObject* gameObject);
|
|
void BeginRename(::XCEngine::Components::GameObject* gameObject);
|
|
void CommitRename();
|
|
void CancelRename();
|
|
|
|
UI::InlineTextEditState<uint64_t, 256> m_renameState;
|
|
UI::TreeViewState m_treeState;
|
|
UI::DeferredPopupState m_backgroundContextMenu;
|
|
UI::TargetedPopupState<::XCEngine::Components::GameObject*> m_itemContextMenu;
|
|
uint64_t m_selectionHandlerId = 0;
|
|
uint64_t m_renameRequestHandlerId = 0;
|
|
};
|
|
|
|
}
|
|
}
|