#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include #include #include #include namespace XCEngine::UI::Editor::App { enum class EditorWindowLifecycleState : std::uint8_t { PendingNativeCreate = 0, NativeAttached, Initializing, Running, Closing, Destroyed, }; inline std::string_view GetEditorWindowLifecycleStateName( EditorWindowLifecycleState state) { switch (state) { case EditorWindowLifecycleState::PendingNativeCreate: return "PendingNativeCreate"; case EditorWindowLifecycleState::NativeAttached: return "NativeAttached"; case EditorWindowLifecycleState::Initializing: return "Initializing"; case EditorWindowLifecycleState::Running: return "Running"; case EditorWindowLifecycleState::Closing: return "Closing"; case EditorWindowLifecycleState::Destroyed: return "Destroyed"; } return "Unknown"; } struct EditorWindowWindowState { HWND hwnd = nullptr; std::string windowId = {}; std::wstring title = {}; std::string titleText = {}; bool primary = false; EditorWindowLifecycleState lifecycle = EditorWindowLifecycleState::PendingNativeCreate; }; struct EditorWindowState { EditorWindowWindowState window = {}; }; } // namespace XCEngine::UI::Editor::App