#ifndef VIEW_FACTORY_H #define VIEW_FACTORY_H #include #include "component/view/CompositeView.h" class BookmarkView; class CodeView; class DialogView; class ErrorView; class GraphView; class MainView; class LogView; class RefreshView; class ScreenSearchView; class SearchView; class StatusBarView; class StatusView; class StorageAccess; class TabbedView; class TooltipView; class UndoRedoView; class ViewLayout; class ViewFactory { public: ViewFactory(); virtual ~ViewFactory(); virtual std::shared_ptr createMainView() const = 0; virtual std::shared_ptr createCompositeView( ViewLayout* viewLayout, CompositeView::CompositeDirection direction, const std::string& name) const = 0; virtual std::shared_ptr createTabbedView(ViewLayout* viewLayout, const std::string& name) const = 0; virtual std::shared_ptr createBookmarkView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createCodeView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createErrorView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createGraphView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createLogView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createRefreshView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createScreenSearchView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createSearchView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createStatusBarView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createStatusView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createTooltipView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createUndoRedoView(ViewLayout* viewLayout) const = 0; virtual std::shared_ptr createDialogView(ViewLayout* viewLayout, StorageAccess* storageAccess) const = 0; }; #endif // VIEW_FACTORY_H