#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include "Composition/EditorShellRuntime.h" #include #include #include #include #include #include #include #include #include #include #include #include namespace XCEngine::UI::Editor::App { struct EditorWindowWindowState { HWND hwnd = nullptr; std::string windowId = {}; std::wstring title = {}; std::string titleText = {}; bool primary = false; }; struct EditorWindowRenderState { Host::NativeRenderer renderer = {}; Host::D3D12WindowRenderer windowRenderer = {}; Host::D3D12WindowRenderLoop windowRenderLoop = {}; Host::AutoScreenshotController autoScreenshot = {}; ::XCEngine::UI::UITextureHandle titleBarLogoIcon = {}; bool ready = false; }; struct EditorWindowInputState { Host::InputModifierTracker modifierTracker = {}; std::vector<::XCEngine::UI::UIInputEvent> pendingEvents = {}; bool trackingMouseLeave = false; }; struct EditorWindowCompositionState { UIEditorWorkspaceController workspaceController = {}; EditorShellRuntime shellRuntime = {}; }; struct EditorWindowChromeRuntimeState { Host::BorderlessWindowChromeState chromeState = {}; Host::HostRuntimeState runtime = {}; }; struct EditorWindowPanelTransferState { bool pending = false; std::string nodeId = {}; std::string panelId = {}; POINT screenPoint = {}; }; } // namespace XCEngine::UI::Editor::App