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

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] = "";
};
}
}