/* This file is part of KDDockWidgets. SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company Author: Sérgio Martins SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only Contact KDAB at for commercial licensing options. */ #ifndef KDDOCKWIDGETS_ViewFactory_QTQUICK_H #define KDDOCKWIDGETS_ViewFactory_QTQUICK_H #include "ViewFactory.h" // clazy:excludeall=ctor-missing-parent-argument /** * @file * @brief A factory class for allowing the user to customize some internal widgets. * * @author Sérgio Martins \ */ QT_BEGIN_NAMESPACE class QAbstractButton; QT_END_NAMESPACE namespace Layouting { class Widget; } namespace KDDockWidgets { class DropIndicatorOverlay; namespace Controllers { class MDILayoutWidget; class DropArea; class Separator; class TabBar; class SideBar; class FloatingWindow; class MainWindow; } /** * @brief The default ViewFactory for QtQuick frontend. */ class DOCKS_EXPORT ViewFactory_qtquick : public ViewFactory { Q_OBJECT public: ViewFactory_qtquick() = default; ~ViewFactory_qtquick() override; View *createDockWidget(const QString &uniqueName, Controllers::DockWidget::Options options = {}, Controllers::DockWidget::LayoutSaverOptions layoutSaverOptions = {}, Qt::WindowFlags windowFlags = {}) const override; View *createFrame(Controllers::Frame *, View *parent) const override; View *createTitleBar(Controllers::TitleBar *, Controllers::Frame *) const override; View *createTitleBar(Controllers::TitleBar *, Controllers::FloatingWindow *) const override; View *createTabWidget(Controllers::Stack *, Controllers::Frame *parent) const override; View *createTabBar(Controllers::TabBar *tabBar, View *parent) const override; View *createSeparator(Controllers::Separator *, View *parent = nullptr) const override; View *createFloatingWindow(Controllers::FloatingWindow *, Controllers::MainWindow *parent = nullptr, Qt::WindowFlags windowFlags = {}) const override; View *createRubberBand(View *parent) const override; View *createSideBar(Controllers::SideBar *, Controllers::MainWindow *parent) const override; View *createDropArea(Controllers::DropArea *, View *parent) const override; View *createMDILayout(Controllers::MDILayout *, View *parent) const override; Q_INVOKABLE virtual QUrl titleBarFilename() const; virtual QUrl dockwidgetFilename() const; virtual QUrl frameFilename() const; virtual QUrl floatingWindowFilename() const; QIcon iconForButtonType(TitleBarButtonType type, qreal dpr) const override; View *createClassicDropIndicatorOverlayView(Controllers::ClassicIndicators *controller, View *parent = nullptr) const override; Views::ClassicIndicatorWindow *createClassicIndicatorWindow(Controllers::ClassicIndicators *) const override; View *createSegmentedDropIndicatorOverlayView(Controllers::SegmentedIndicators *controller, View *parent = nullptr) const override; private: Q_DISABLE_COPY(ViewFactory_qtquick) }; } #endif