00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef OST_GUI_MAIN_WINDOW_HH
00026 #define OST_GUI_MAIN_WINDOW_HH
00027
00028 #include <map>
00029
00030
00031 #include <ost/base.hh>
00032 #include <ost/gui/module_config.hh>
00033
00034
00035 #include <QMainWindow>
00036 #include <QMenu>
00037
00038 namespace ost { namespace gui {
00039
00040 class DLLEXPORT_OST_GUI MainWindow: public QMainWindow
00041 {
00042 Q_OBJECT;
00043
00044 typedef std::map<QWidget*,QDockWidget*> DockWidgetMap;
00045 public:
00046 MainWindow(QWidget* parent=0, Qt::WindowFlags flags=0);
00047
00049 void AddDockWidget(QWidget* w, const QString& name, bool show=true, int area=2);
00051 void RemoveDockWidget(QWidget* w);
00052
00053 public slots:
00054 void OnDockMenu(QAction* a);
00055 void OnDockClose(QDockWidget* dock);
00056
00057 protected:
00058 QMenu* WindowMenu();
00059 const QMenu* WindowMenu() const;
00060
00061 private:
00062 QMenu* window_menu_;
00063 DockWidgetMap dock_widget_map_;
00064 };
00065
00066 }}
00067
00068 #endif