X-Git-Url: https://vaikene.ee/gitweb/highlight.css?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=4c46eea83617e083813905eae322f5e80cbcbe63;hb=a81a943bee20df3c7eb34bafb3e3fe878facfe4e;hp=a73f2eec3d85a9b52dc09ed063c87664e3f5fedf;hpb=ad70660919cd7b0e821e35548b6d1f5efa181c4c;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h index a73f2ee..4c46eea 100644 --- a/src/plugins/SdiWindow/sdiwindow.h +++ b/src/plugins/SdiWindow/sdiwindow.h @@ -23,12 +23,14 @@ #include "isdiwindow.h" #include +#include #include #include #include #include -#include +#include +#include class QVBoxLayout; @@ -56,9 +58,18 @@ public: virtual bool isReady() { return mReady; } - virtual void addWidget(QWidget * widget); + virtual void addPanel(QString const & name, Gui::Panel * panel); - virtual void addLayout(QLayout * layout); + 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 private: // Methods @@ -75,11 +86,36 @@ private: // Members /// Ready flag bool mReady; - /// The layout of the window + /// The layout of the main window QVBoxLayout * mLayout; - /// Widgets and layouts added to the main window - QList > mItemsAdded; + /// Name of the main panel that becomes part of this window + QString mMainPanelName; + + /// List of GUI::Panel objects added to the manager + QList mPanels; + + /// List of minimized GUI::Panel objects + QVector mMinimizedPanels; + + /// Hash with panel names + QHash mPanelNames; + + /// Current main panel added to this window + Gui::Panel * mMainPanel; + + +private: // Methods + + /// Gets the main panel name from module attributes + QString getMainPanelName(QString const & args) const; + + +private slots: + + /// Panel destroyed signal. We need to remove the panel from all the + /// lists. + void panelDestroyed(QObject * obj = 0); }; @@ -89,6 +125,7 @@ private: // Members class SdiWindowPlugin : public Plugins::iPlugin { Q_OBJECT + Q_INTERFACES(eVaf::Plugins::iPlugin) public: