DockWindowManager.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GUI_DOCKWINDOWMANAGER_H
00025 #define GUI_DOCKWINDOWMANAGER_H
00026
00027 #include <QStringList>
00028
00029 class QDockWidget;
00030
00031 namespace Gui {
00032
00033 struct DockWindowItem {
00034 QString name;
00035 Qt::DockWidgetArea pos;
00036 bool visibility;
00037 bool tabbed;
00038 };
00039
00040 class GuiExport DockWindowItems
00041 {
00042 public:
00043 DockWindowItems();
00044 ~DockWindowItems();
00045
00046 void addDockWidget(const char* name, Qt::DockWidgetArea pos, bool visibility, bool tabbed);
00047 void setDockingArea(const char* name, Qt::DockWidgetArea pos);
00048 void setVisibility(const char* name, bool v);
00049 void setVisibility(bool v);
00050 const QList<DockWindowItem>& dockWidgets() const;
00051
00052 private:
00053 QList<DockWindowItem> _items;
00054 };
00055
00060 class GuiExport DockWindowManager : QObject
00061 {
00062 Q_OBJECT
00063
00064 public:
00066 static DockWindowManager* instance();
00067 static void destruct();
00068
00069 bool registerDockWindow(const char* name, QWidget* widget);
00070 void setup(DockWindowItems*);
00071
00072 QDockWidget* addDockWindow(const char* name, QWidget* widget,
00073 Qt::DockWidgetArea pos = Qt::AllDockWidgetAreas);
00074 QWidget* removeDockWindow(const char* name);
00075 void removeDockWindow(QWidget* dock);
00076 QWidget* getDockWindow(const char* name) const;
00077 QList<QWidget*> getDockWindows() const;
00078
00079 void saveState();
00080 void retranslate();
00081
00082 private Q_SLOTS:
00086 void onDockWidgetDestroyed(QObject*);
00090 void onWidgetDestroyed(QObject*);
00091
00092 private:
00093 QDockWidget* findDockWidget(const QList<QDockWidget*>&, const QString&) const;
00094
00095 DockWindowManager();
00096 ~DockWindowManager();
00097 static DockWindowManager* _instance;
00098 struct DockWindowManagerP* d;
00099 };
00100
00101 }
00102
00103 #endif // GUI_DOCKWINDOWMANAGER_H