41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "Panel.h"
|
|
#include "UI/PopupState.h"
|
|
#include "UI/SearchText.h"
|
|
#include "UI/TreeView.h"
|
|
#include <XCEngine/Components/GameObject.h>
|
|
#include "Core/ISceneManager.h"
|
|
#include <string>
|
|
|
|
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);
|
|
bool RenderEntity(::XCEngine::Components::GameObject* gameObject, const UI::SearchQuery& searchQuery = UI::SearchQuery());
|
|
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;
|
|
char m_searchBuffer[256] = "";
|
|
};
|
|
|
|
}
|
|
}
|