#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include "Platform/Win32/EditorUtilityWindowKind.h" #include #include #include namespace XCEngine::UI::Editor::App { struct EditorWindowPanelTransferRequest { std::string nodeId = {}; std::string panelId = {}; POINT screenPoint = {}; bool IsValid() const { return !nodeId.empty() && !panelId.empty(); } }; struct EditorWindowOpenUtilityWindowRequest { EditorUtilityWindowKind kind = EditorUtilityWindowKind::None; POINT screenPoint = {}; bool useCursorPlacement = false; bool IsValid() const { return kind != EditorUtilityWindowKind::None; } }; struct EditorWindowFrameTransferRequests { std::optional beginGlobalTabDrag = {}; std::optional detachPanel = {}; std::optional openUtilityWindow = {}; bool HasPendingRequests() const { return beginGlobalTabDrag.has_value() || detachPanel.has_value() || openUtilityWindow.has_value(); } }; } // namespace XCEngine::UI::Editor::App