Files
XCEngine/editor/app/Windowing/Content/EditorWindowContentFactory.h

37 lines
1.1 KiB
C
Raw Normal View History

2026-04-25 19:25:49 +08:00
#pragma once
#include "Core/UtilityWindows/EditorUtilityWindowRuntime.h"
2026-04-27 13:40:26 +08:00
#include "Core/WorkspacePanels/EditorWorkspacePanelRuntime.h"
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 {
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,
EditorWorkspacePanelRuntimeSetFactory workspacePanelFactory,
EditorUtilityWindowPanelFactory utilityPanelFactory);
2026-04-25 19:25:49 +08:00
} // namespace XCEngine::UI::Editor::App