00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_SPLITTER_PANEL_BAR
00020 #define OST_GUI_SPLITTER_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 #include <ost/gui/thin_splitter.hh>
00027
00028 #include "panel_widget_container.hh"
00029 #include "panel_bar_widget_holder.hh"
00030
00031 #include <QHBoxLayout>
00032 #include <QWidget>
00033 #include <QString>
00034 #include <QAction>
00035 namespace ost { namespace gui {
00036
00038 class DLLEXPORT_OST_GUI SplitterPanelBar : public PanelWidgetContainer {
00039 Q_OBJECT
00040 public:
00041
00042 SplitterPanelBar(PanelBar* parent, Qt::Orientation orientation);
00043 ~SplitterPanelBar();
00044
00045 virtual bool Save(const QString& prefix);
00046 virtual bool Restore(const QString& prefix);
00047
00048 void WidgetMoved(Widget* widget, int position);
00049 QString GetName();
00050
00051
00052 private slots:
00053 void SplitterMoved(int pos, int index);
00054
00055 private:
00056 virtual int IndexOf(Widget* widget);
00057 virtual void ShowWidget(Widget* widget, int pos, bool show);
00058
00059 QHBoxLayout* layout_;
00060 ThinSplitter* splitter_;
00061 QList<int> sizes_;
00062 QList<PanelBarWidgetHolder*> widget_holders_;
00063 };
00064
00065 }}
00066
00067 #endif