00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_TABBED_PANEL_BAR
00020 #define OST_GUI_TABBED_PANEL_BAR
00021
00022
00023 #include <ost/gui/module_config.hh>
00024 #include <ost/gui/widget_pool.hh>
00025 #include <ost/gui/widget.hh>
00026
00027 #include "panel_widget_container.hh"
00028 #include "button_box.hh"
00029
00030 #include <QHBoxLayout>
00031 #include <QWidget>
00032 #include <QString>
00033 #include <QAction>
00034 #include <QTabBar>
00035 #include <QTabWidget>
00036 #include <QToolBar>
00037 namespace ost { namespace gui {
00038
00040 class DLLEXPORT_OST_GUI DragTabBar : public QTabBar{
00041 Q_OBJECT
00042 public:
00043 DragTabBar(QTabWidget* parent);
00044
00045 protected:
00046 void mousePressEvent(QMouseEvent *event);
00047 void mouseMoveEvent(QMouseEvent *event);
00048
00049 private:
00050 QTabWidget* tab_widget_;
00051 QPoint drag_start_pos_;
00052
00053 };
00054
00056 class DLLEXPORT_OST_GUI TabbedDragWidget : public QTabWidget{
00057 Q_OBJECT
00058 public:
00059 TabbedDragWidget(QWidget* parent);
00060 };
00061
00063 class DLLEXPORT_OST_GUI TabbedPanelBar : public PanelWidgetContainer {
00064 Q_OBJECT
00065 public:
00066 TabbedPanelBar(PanelBar* parent);
00067 ~TabbedPanelBar();
00068
00069 virtual bool Save(const QString& prefix);
00070 virtual bool Restore(const QString& prefix);
00071
00072 void WidgetMoved(Widget* widget, int position);
00073 QString GetName();
00074
00075 protected:
00076 void dragEnterEvent(QDragEnterEvent *event);
00077 void dropEvent(QDropEvent *event);
00078
00079 private:
00080 virtual void ShowWidget(Widget* widget, int pos, bool show);
00081 QHBoxLayout* layout_;
00082 QTabWidget* tab_widget_;
00083 QToolBar* toolbar_;
00084
00085 private slots:
00086 void CurrentChanged(int index);
00087
00088 };
00089
00090 }}
00091
00092 #endif