#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #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 EditorWindowOpenDetachedPanelRequest { std::string panelId = {}; POINT screenPoint = {}; LONG preferredWidth = 0; LONG preferredHeight = 0; bool IsValid() const { return !panelId.empty(); } }; struct EditorWindowFrameTransferRequests { std::optional beginGlobalTabDrag = {}; std::optional detachPanel = {}; std::optional openDetachedPanel = {}; bool HasPendingRequests() const { return beginGlobalTabDrag.has_value() || detachPanel.has_value() || openDetachedPanel.has_value(); } }; } // namespace XCEngine::UI::Editor::App