X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fisdiwindow.h;h=825961ebaf533118367f4ac8ee66016c23d8c087;hb=4c0329c5c2690bde28212c89029015a5da4c7e34;hp=8cd4343666db997ef1f1118a73fa637873029454;hpb=1cac301bb12de664bd7e7ec59b78e7dfaf04f6d1;p=evaf diff --git a/src/plugins/SdiWindow/isdiwindow.h b/src/plugins/SdiWindow/isdiwindow.h index 8cd4343..825961e 100644 --- a/src/plugins/SdiWindow/isdiwindow.h +++ b/src/plugins/SdiWindow/isdiwindow.h @@ -3,7 +3,7 @@ * @brief eVaf SDI window interface * @author Enar Vaikene * - * Copyright (c) 2011 Enar Vaikene + * Copyright (c) 2011-2019 Enar Vaikene * * This file is part of the eVaf C++ cross-platform application development framework. * @@ -22,33 +22,27 @@ #include "libsdiwindow.h" -#include #include +#include class QWidget; class QLayout; namespace eVaf { + +namespace Gui { + class Panel; +} // namespace eVaf::Gui + namespace SdiWindow { /** - * Main window interface for eVaf applications implementing the Single Document Interface. + * Single Document Interface window manager for eVaf applications. * - * The iSdiWindow interface provides access to the SDI main window. The SDI main window is - * an empty window that the application can fill with widgets. + * The iSdiWindow interface implements an SDI window manager. */ -class SDIWINDOW_EXPORT iSdiWindow : public QObject +struct SDIWINDOW_EXPORT iSdiWindow { - Q_OBJECT - -public: - - /// Interface constructor - iSdiWindow() : QObject() {} - - /// Empty virtual destructor - virtual ~iSdiWindow() {} - /** * Returns the iSdiWindow interface instance * @return The iSdiWindow interface or zero if not available @@ -60,24 +54,44 @@ public: static iSdiWindow * instance(); /** - * Adds the widget to the end of the main window layout - * @param widget The widget + * Empty virtual destructor + */ + virtual ~iSdiWindow() {} + + /** + * Adds a panel to the SDI window manager + * @param name Name of the panel + * @param panel The panel + * + * This function adds a panel to the SDI window manager. The ownership of the panel + * is transferred to the window manager and it is the responsibility of the window + * manager to delete it. + */ + virtual void addPanel(QString const & name, Gui::Panel * panel) = 0; + + /** + * Returns a panel by the name + * @param name Name of the panel + * @return Pointer to the panel or 0 if failed * - * This function adds the widget to the end of the main window layout. + * This function returns a panel identified by the name. */ - virtual void addWidget(QWidget * widget) = 0; + virtual Gui::Panel * panel(QString const & name) const = 0; /** - * Adds the layout to the end of the main window layout - * @param layout The layout + * Shows a panel + * @param name Name of the panel + * @return True if succeeded; false if not * - * This function adds the new layout to the end of the main window layout. + * This function shows the panel. */ - virtual void addLayout(QLayout * layout) = 0; + virtual bool showPanel(QString const & name) = 0; }; } // namespace eVaf::SdiWindow } // namespace eVaf +Q_DECLARE_INTERFACE(eVaf::SdiWindow::iSdiWindow, "eVaf.SdiWindow.iSdiWindow/1.1") + #endif // isdiwindow.h