#pragma once #include "UtilityWindows/EditorUtilityWindowKind.h" #include "UtilityWindows/EditorUtilityWindowPanel.h" #include "Windowing/Host/EditorWindowTypes.h" #include #include #include namespace XCEngine::UI::Editor::App { enum class EditorUtilityWindowReusePolicy { SingleInstance = 0, }; struct EditorUtilityWindowDescriptor { EditorUtilityWindowKind kind = EditorUtilityWindowKind::None; std::string_view windowId = {}; const wchar_t* title = L""; EditorUtilityWindowReusePolicy reusePolicy = EditorUtilityWindowReusePolicy::SingleInstance; EditorWindowChromePolicy chromePolicy = {}; EditorWindowNativeStylePolicy nativeStylePolicy = {}; ::XCEngine::UI::UISize preferredOuterSize = {}; ::XCEngine::UI::UISize minimumOuterSize = {}; }; const EditorUtilityWindowDescriptor* ResolveEditorUtilityWindowDescriptor( EditorUtilityWindowKind kind); std::unique_ptr CreateEditorUtilityWindowPanel( EditorUtilityWindowKind kind); } // namespace XCEngine::UI::Editor::App