#include "UtilityWindows/EditorUtilityWindowRegistry.h" #include "Features/ColorPicker/ColorPickerPanel.h" #include "Features/Inspector/AddComponentPanel.h" #ifndef NOMINMAX #define NOMINMAX #endif #include namespace XCEngine::UI::Editor::App { namespace { using ::XCEngine::UI::UISize; constexpr EditorWindowChromePolicy kUtilityWindowChromePolicy = { .allowDetachedTitleBarTabStrip = false, .showFrameStats = false, .showTopmostButton = true, .topmostByDefault = true, }; constexpr EditorWindowNativeStylePolicy kUtilityWindowNativeStylePolicy = { .extendedWindowStyle = WS_EX_TOOLWINDOW, .windowStyle = 0, .useHostWindowStyle = true, }; constexpr EditorUtilityWindowDescriptor kColorPickerUtilityWindowDescriptor = { .kind = EditorUtilityWindowKind::ColorPicker, .windowId = "utility.color-picker", .title = L"Color Picker", .chromePolicy = kUtilityWindowChromePolicy, .nativeStylePolicy = kUtilityWindowNativeStylePolicy, .preferredOuterSize = UISize(400.0f, 600.0f), .minimumOuterSize = UISize(360.0f, 560.0f), }; constexpr EditorUtilityWindowDescriptor kAddComponentUtilityWindowDescriptor = { .kind = EditorUtilityWindowKind::AddComponent, .windowId = "utility.add-component", .title = L"Add Component", .chromePolicy = kUtilityWindowChromePolicy, .nativeStylePolicy = kUtilityWindowNativeStylePolicy, .preferredOuterSize = UISize(352.0f, 500.0f), .minimumOuterSize = UISize(320.0f, 460.0f), }; } // namespace const EditorUtilityWindowDescriptor* ResolveEditorUtilityWindowDescriptor( EditorUtilityWindowKind kind) { switch (kind) { case EditorUtilityWindowKind::ColorPicker: return &kColorPickerUtilityWindowDescriptor; case EditorUtilityWindowKind::AddComponent: return &kAddComponentUtilityWindowDescriptor; case EditorUtilityWindowKind::None: default: return nullptr; } } std::unique_ptr CreateEditorUtilityWindowPanel( EditorUtilityWindowKind kind) { switch (kind) { case EditorUtilityWindowKind::ColorPicker: return std::make_unique(); case EditorUtilityWindowKind::AddComponent: return std::make_unique(); case EditorUtilityWindowKind::None: default: return nullptr; } } } // namespace XCEngine::UI::Editor::App