Files
XCEngine/new_editor/app/Panels/ProductHierarchyPanel.h

42 lines
1.3 KiB
C++

#pragma once
#include <XCEditor/Collections/UIEditorTreeViewInteraction.h>
#include <XCEditor/Shell/UIEditorPanelContentHost.h>
#include <XCEngine/UI/DrawData.h>
#include <XCEngine/UI/Widgets/UIExpansionModel.h>
#include <XCEngine/UI/Widgets/UISelectionModel.h>
#include <vector>
namespace XCEngine::UI::Editor::App {
class ProductBuiltInIcons;
class ProductHierarchyPanel {
public:
void Initialize();
void SetBuiltInIcons(const ProductBuiltInIcons* icons);
void Update(
const UIEditorPanelContentHostFrame& contentHostFrame,
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents,
bool allowInteraction,
bool panelActive);
void Append(::XCEngine::UI::UIDrawList& drawList) const;
private:
const UIEditorPanelContentHostPanelState* FindMountedHierarchyPanel(
const UIEditorPanelContentHostFrame& contentHostFrame) const;
void RebuildItems();
const ProductBuiltInIcons* m_icons = nullptr;
std::vector<Widgets::UIEditorTreeViewItem> m_treeItems = {};
::XCEngine::UI::Widgets::UISelectionModel m_selection = {};
::XCEngine::UI::Widgets::UIExpansionModel m_expansion = {};
UIEditorTreeViewInteractionState m_treeInteractionState = {};
UIEditorTreeViewInteractionFrame m_treeFrame = {};
bool m_visible = false;
};
} // namespace XCEngine::UI::Editor::App