Files
XCEngine/editor/src/panels/HierarchyPanel.h

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;
};
}
}