Files
XCEngine/new_editor/include/XCEditor/Panels/UIEditorHostedPanelDispatch.h

41 lines
1.2 KiB
C++

#pragma once
#include <XCEditor/Panels/UIEditorPanelContentHost.h>
#include <XCEditor/Panels/UIEditorPanelHostLifecycle.h>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::UI::Editor {
struct UIEditorHostedPanelDispatchEntry {
std::string panelId = {};
UIEditorPanelPresentationKind presentationKind =
UIEditorPanelPresentationKind::Placeholder;
bool mounted = false;
::XCEngine::UI::UIRect bounds = {};
bool allowInteraction = false;
bool attached = false;
bool visible = false;
bool active = false;
bool focused = false;
bool focusGained = false;
bool focusLost = false;
};
struct UIEditorHostedPanelDispatchFrame {
std::vector<UIEditorHostedPanelDispatchEntry> entries = {};
};
const UIEditorHostedPanelDispatchEntry* FindUIEditorHostedPanelDispatchEntry(
const UIEditorHostedPanelDispatchFrame& frame,
std::string_view panelId);
UIEditorHostedPanelDispatchFrame BuildUIEditorHostedPanelDispatchFrame(
const UIEditorPanelContentHostFrame& contentHostFrame,
const UIEditorPanelHostLifecycleFrame& lifecycleFrame,
bool allowInteraction);
} // namespace XCEngine::UI::Editor