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

33 lines
931 B
C++

#pragma once
#include <memory>
#include <string_view>
namespace XCEngine::UI::Editor {
class UIEditorWorkspaceController;
} // namespace XCEngine::UI::Editor
namespace XCEngine::UI::Editor::App {
class EditorWindowContentController;
class EditorWindowSystem;
struct EditorUtilityWindowDescriptor;
class EditorWindowContentFactory {
public:
virtual ~EditorWindowContentFactory() = default;
virtual std::unique_ptr<EditorWindowContentController> CreateWorkspaceContentController(
std::string_view windowId,
UIEditorWorkspaceController workspaceController,
EditorWindowSystem& windowSystem) const = 0;
virtual std::unique_ptr<EditorWindowContentController> CreateUtilityContentController(
const EditorUtilityWindowDescriptor& descriptor) const = 0;
};
std::unique_ptr<EditorWindowContentFactory> CreateDefaultEditorWindowContentFactory();
} // namespace XCEngine::UI::Editor::App