00001 #ifndef BALL_VIEW_WIDGETS_DOCKABLEWIDGET_H
00002 #define BALL_VIEW_WIDGETS_DOCKABLEWIDGET_H
00003
00004 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
00005 # include <BALL/VIEW/KERNEL/modularWidget.h>
00006 #endif
00007
00008 #include <QtGui/QDockWidget>
00009 #include <QtGui/QDropEvent>
00010 #include <QtGui/QDockWidget>
00011 #include <QtGui/QMouseEvent>
00012 #include <QtGui/QGridLayout>
00013
00014 namespace BALL
00015 {
00016 namespace VIEW
00017 {
00018
00025 class BALL_VIEW_EXPORT DockWidget
00026 : public QDockWidget,
00027 public ModularWidget
00028 {
00029 Q_OBJECT
00030
00031 public:
00032
00033 BALL_EMBEDDABLE(DockWidget,Embeddable)
00034
00035
00036 DockWidget(QWidget* parent, const char* title = 0);
00037
00039 virtual ~DockWidget(){}
00040
00043 void setGuest(QWidget& guest);
00044
00048 virtual void initializeWidget(MainControl& main_control);
00049
00053 virtual void fetchPreferences(INIFile& inifile);
00054
00058 virtual void writePreferences(INIFile& inifile);
00059
00061 virtual void setWidgetVisible(bool state);
00062
00064 virtual void registerForHelpSystem(const QObject* widget, const String& url);
00065
00067 QGridLayout* getGuestLayout() { return layout_;}
00068
00069 public slots:
00070
00072 virtual void dropEvent(QDropEvent* e);
00073
00075 virtual void dragEnterEvent(QDragEnterEvent* e);
00076
00078 virtual void showGuestContextMenu(const QPoint&) {};
00079
00080 protected:
00081
00082
00083 DockWidget();
00084 DockWidget(const DockWidget&);
00085
00086 QWidget* container_;
00087 QWidget* guest_;
00088 QGridLayout* layout_;
00089 };
00090
00091 }
00092 }
00093 #endif