00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_WIDGET_HH
00020 #define OST_GUI_WIDGET_HH
00021
00022
00023 #include <ost/gui/module_config.hh>
00024
00025 #include <QWidget>
00026 #include <QMetaType>
00027
00028
00029
00030
00031 namespace ost { namespace gui {
00032
00033 typedef QList<QAction*> ActionList;
00034
00040 class DLLEXPORT_OST_GUI Widget : public QWidget {
00041 Q_OBJECT
00042
00043 public:
00044 Widget(QWidget* widget, QWidget* parent=NULL);
00045
00047 void SetDestroyOnClose(bool flag);
00048
00051 bool DestroyOnClose() const;
00052
00054 virtual ActionList GetActions();
00055
00056 QWidget* GetInternalWidget();
00057 void SetInternalWidget(QWidget* widget);
00058
00059
00060 const QString& GetUniqueID() const
00061 {
00062 if (unique_id_.size()==0) {
00063 unique_id_=this->metaObject()->className();
00064 }
00065 return unique_id_;
00066 }
00067
00068 void SetUniqueID(const QString& id)
00069 {
00070 unique_id_=id;
00071 }
00072
00073 virtual bool Restore(const QString& prefix)=0;
00074
00075 virtual bool Save(const QString& prefix)=0;
00076
00077 private:
00078 mutable QString unique_id_;
00079 QWidget* internal_;
00080 bool destroy_on_close_;
00081 };
00082
00083 }}
00084
00085 Q_DECLARE_METATYPE(ost::gui::Widget*)
00086
00087 #endif