2026-04-25 19:25:49 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
2026-04-27 19:16:08 +08:00
|
|
|
#include "UtilityWindows/EditorUtilityWindowRuntime.h"
|
2026-04-27 23:45:24 +08:00
|
|
|
#include "Windowing/EditorWorkspaceShellRuntime.h"
|
2026-04-27 13:40:26 +08:00
|
|
|
|
2026-04-25 19:25:49 +08:00
|
|
|
#include <memory>
|
2026-04-26 00:49:45 +08:00
|
|
|
#include <string_view>
|
2026-04-25 19:25:49 +08:00
|
|
|
|
|
|
|
|
namespace XCEngine::UI::Editor {
|
|
|
|
|
|
2026-04-26 12:23:16 +08:00
|
|
|
class EditorWindowSystem;
|
2026-04-26 13:44:19 +08:00
|
|
|
struct UIEditorWindowWorkspaceState;
|
2026-04-25 19:25:49 +08:00
|
|
|
|
|
|
|
|
} // namespace XCEngine::UI::Editor
|
|
|
|
|
|
|
|
|
|
namespace XCEngine::UI::Editor::App {
|
|
|
|
|
|
|
|
|
|
class EditorWindowContentController;
|
|
|
|
|
struct EditorUtilityWindowDescriptor;
|
|
|
|
|
|
|
|
|
|
class EditorWindowContentFactory {
|
|
|
|
|
public:
|
|
|
|
|
virtual ~EditorWindowContentFactory() = default;
|
|
|
|
|
|
|
|
|
|
virtual std::unique_ptr<EditorWindowContentController> CreateWorkspaceContentController(
|
2026-04-26 13:44:19 +08:00
|
|
|
const UIEditorWindowWorkspaceState& windowState) const = 0;
|
2026-04-25 19:25:49 +08:00
|
|
|
virtual std::unique_ptr<EditorWindowContentController> CreateUtilityContentController(
|
|
|
|
|
const EditorUtilityWindowDescriptor& descriptor) const = 0;
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-26 13:44:19 +08:00
|
|
|
std::unique_ptr<EditorWindowContentFactory> CreateDefaultEditorWindowContentFactory(
|
2026-04-27 13:40:26 +08:00
|
|
|
EditorWindowSystem& windowSystem,
|
2026-04-27 23:45:24 +08:00
|
|
|
EditorWorkspaceShellRuntimeFactory workspaceShellRuntimeFactory,
|
2026-04-27 15:37:39 +08:00
|
|
|
EditorUtilityWindowPanelFactory utilityPanelFactory);
|
2026-04-25 19:25:49 +08:00
|
|
|
|
|
|
|
|
} // namespace XCEngine::UI::Editor::App
|