]> vaikene.ee Git - evaf/blobdiff - src/plugins/SdiWindow/sdiwindow.h
In the process of creating a more generic document interface manager (or window manag...
[evaf] / src / plugins / SdiWindow / sdiwindow.h
index f88425554319b872fc52fdb9e38ccae724f21497..757ed28cfeaa51f452954cc7ee0c62992aa3a71d 100644 (file)
 #include "isdiwindow.h"
 
 #include <Plugins/iPlugin>
-#include <Gui/Window>
+#include <Gui/Panel>
 
 #include <QObject>
 #include <QString>
 #include <QWidget>
 #include <QList>
+#include <QVector>
+#include <QHash>
 #include <QWeakPointer>
 
 class QVBoxLayout;
@@ -57,7 +59,21 @@ public:
 
     virtual bool isReady() { return mReady; }
 
-    virtual void addWindow(Gui::Window * window);
+    virtual void addPanel(QString const & name, Gui::Panel * panel);
+
+    virtual Gui::Panel * panel(QString const & name) const;
+
+    virtual bool showPanel(QString const & name);
+
+    virtual void changeEvent(QEvent * e);
+
+    virtual void closeEvent(QCloseEvent * e);
+
+
+protected: // Methods
+
+    /// Garbage collector timer
+    virtual void timerEvent(QTimerEvent * e);
 
 
 private: // Methods
@@ -77,8 +93,29 @@ private: // Members
     /// The layout of the main window
     QVBoxLayout * mLayout;
 
-    /// eVaf GUI window implementing the main window
-    QWeakPointer<Gui::Window> mWindow;
+    /// Name of the main panel that becomes part of this window
+    QString mMainPanelName;
+
+    /// List of GUI::Panel objects added to the manager
+    QList<QWeakPointer<Gui::Panel> > mPanels;
+
+    /// List of minimized GUI::Panel objects
+    QVector<QWeakPointer<Gui::Panel> > mMinimizedPanels;
+
+    /// Hash with panel names
+    QHash<QString, QWeakPointer<Gui::Panel> > mPanelNames;
+
+    /// Current main panel added to this window
+    QWeakPointer<Gui::Panel> mMainPanel;
+
+    /// Garbage collector timer ID
+    int mTimerId;
+
+
+private: // Methods
+
+    /// Gets the main panel name from module attributes
+    QString getMainPanelName(QString const & args) const;
 
 };