41 lines
1.2 KiB
C
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
|