#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include #include namespace XCEngine::UI::Editor::App { class EditorContext; } namespace XCEngine::UI::Editor::Host { class WindowMessageHost { public: virtual ~WindowMessageHost() = default; virtual App::EditorContext& GetEditorContext() = 0; virtual const App::EditorContext& GetEditorContext() const = 0; virtual bool IsGlobalTabDragActive() const = 0; virtual bool OwnsActiveGlobalTabDrag(std::string_view windowId) const = 0; virtual void EndGlobalTabDragSession() = 0; virtual void HandleDestroyedWindow(HWND hwnd) = 0; virtual bool HandleGlobalTabDragPointerMove(HWND hwnd) = 0; virtual bool HandleGlobalTabDragPointerButtonUp(HWND hwnd) = 0; }; } // namespace XCEngine::UI::Editor::Host