X-Git-Url: https://vaikene.ee/gitweb/highlight.css?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=f0cfe6fc52aae2e5f96c7d6487acb2483388d5db;hb=d50faf159f17a66fb89ea3e7878b6f56e34b9e72;hp=d886cca5d842914472e0e92b939abb7e7e04e78c;hpb=06f9c5336ba8a2200b68f636520707693eb5ada7;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h index d886cca..f0cfe6f 100644 --- a/src/plugins/SdiWindow/sdiwindow.h +++ b/src/plugins/SdiWindow/sdiwindow.h @@ -27,17 +27,22 @@ #include #include #include +#include +#include + +class QVBoxLayout; namespace eVaf { namespace SdiWindow { namespace Internal { /** - * Main window widget + * Main window widget implementing the iSdiWindow interface */ -class MainWindow : public QWidget +class MainWindow : public QWidget, public iSdiWindow { Q_OBJECT + Q_INTERFACES(eVaf::SdiWindow::iSdiWindow) public: @@ -45,9 +50,15 @@ public: virtual ~MainWindow(); - bool init(); + virtual bool init(QString const & args); + + virtual void done(); + + virtual bool isReady() { return mReady; } + + virtual void addWidget(QWidget * widget); - void done(); + virtual void addLayout(QLayout * layout); private: // Methods @@ -57,28 +68,6 @@ private: // Methods void saveSettings(); void restoreSettings(); -}; - -/** - * iSdiWindow interface implementation - */ -class SdiWindowImpl : public iSdiWindow -{ - Q_OBJECT - -public: - - SdiWindowImpl(); - - virtual ~SdiWindowImpl(); - - bool init(const QString & args); - - void done(); - - bool isReady() const { return mReady; } - - virtual QWidget * widget() const { return wWindow; } private: // Members @@ -86,8 +75,12 @@ private: // Members /// Ready flag bool mReady; - /// The main window widget - MainWindow * wWindow; + /// The layout of the window + QVBoxLayout * mLayout; + + /// Widgets and layouts added to the main window + QList > mItemsAdded; + }; /** @@ -96,6 +89,7 @@ private: // Members class SdiWindowPlugin : public Plugins::iPlugin { Q_OBJECT + Q_INTERFACES(eVaf::Plugins::iPlugin) public: @@ -113,7 +107,7 @@ public: private: /// iSdiWindow interface implementation - SdiWindowImpl * mWindow; + MainWindow * mWindow; }; } // namespace eVaf::SdiWindow::Internal