eVaf
sdiwindow.h
Go to the documentation of this file.
1 
20 #ifndef __SDIWINDOW_SDIWINDOW_H
21 # define __SDIWINDOW_SDIWINDOW_H
22 
23 #include "isdiwindow.h"
24 
25 #include <Plugins/iPlugin>
26 #include <Gui/Panel>
27 
28 #include <QObject>
29 #include <QString>
30 #include <QWidget>
31 #include <QList>
32 #include <QVector>
33 #include <QHash>
34 
35 class QVBoxLayout;
36 
37 namespace eVaf {
38 namespace SdiWindow {
39 namespace Internal {
40 
44 class MainWindow : public QWidget, public iSdiWindow
45 {
46  Q_OBJECT
47  Q_INTERFACES(eVaf::SdiWindow::iSdiWindow)
48 
49 public:
50 
51  MainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0);
52 
53  virtual ~MainWindow();
54 
55  virtual bool init(QString const & args);
56 
57  virtual void done();
58 
59  virtual bool isReady() { return mReady; }
60 
61  virtual void addPanel(QString const & name, Gui::Panel * panel);
62 
63  virtual Gui::Panel * panel(QString const & name) const;
64 
65  virtual bool showPanel(QString const & name);
66 
67  virtual void changeEvent(QEvent * e);
68 
69  virtual void closeEvent(QCloseEvent * e);
70 
71 
72 protected: // Methods
73 
74 
75 private: // Methods
76 
77  void setWindowSize();
78 
79  void saveSettings();
80 
81  void restoreSettings();
82 
83 
84 private: // Members
85 
87  bool mReady;
88 
90  QVBoxLayout * mLayout;
91 
93  QString mMainPanelName;
94 
96  QList<Gui::Panel *> mPanels;
97 
99  QVector<Gui::Panel *> mMinimizedPanels;
100 
102  QHash<QString, Gui::Panel *> mPanelNames;
103 
105  Gui::Panel * mMainPanel;
106 
107 
108 private: // Methods
109 
111  QString getMainPanelName(QString const & args) const;
112 
113 
114 private slots:
115 
118  void panelDestroyed(QObject * obj = 0);
119 
120 };
121 
126 {
127  Q_OBJECT
128  Q_INTERFACES(eVaf::Plugins::iPlugin)
129 
130 public:
131 
132  SdiWindowPlugin();
133 
134  virtual ~SdiWindowPlugin();
135 
136  virtual bool init(const QString & args);
137 
138  virtual void done();
139 
140  virtual bool isReady() const { return mWindow != 0 && mWindow->isReady(); }
141 
142 
143 private:
144 
146  MainWindow * mWindow;
147 };
148 
149 } // namespace eVaf::SdiWindow::Internal
150 } // namespace eVaf::SdiWindow
151 } // namespace eVaf
152 
153 #endif // sdiwindow.h
SdiWindow module&#39;s implementation.
Definition: sdiwindow.h:125
Main window widget implementing the iSdiWindow interface.
Definition: sdiwindow.h:44
eVaf GUI panel class.
Definition: panel.h:49
eVaf SDI window interface
Single Document Interface window manager for eVaf applications.
Definition: isdiwindow.h:44
Global eVaf namespace.
Definition: engine.h:37
Common interface for all the eVaf modules.
Definition: iplugin.h:38