X-Git-Url: https://vaikene.ee/gitweb/pswgen09.html?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=a73f2eec3d85a9b52dc09ed063c87664e3f5fedf;hb=ad70660919cd7b0e821e35548b6d1f5efa181c4c;hp=d886cca5d842914472e0e92b939abb7e7e04e78c;hpb=06f9c5336ba8a2200b68f636520707693eb5ada7;p=evaf
diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h
index d886cca..a73f2ee 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;
+
};
/**
@@ -113,7 +106,7 @@ public:
private:
/// iSdiWindow interface implementation
- SdiWindowImpl * mWindow;
+ MainWindow * mWindow;
};
} // namespace eVaf::SdiWindow::Internal