dockWidget.h

Go to the documentation of this file.
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       // required for Python bindings, but dont use this methods:
00083       DockWidget(); 
00084       DockWidget(const DockWidget&);
00085       
00086       QWidget*      container_;
00087       QWidget*      guest_;
00088       QGridLayout*  layout_;
00089     };
00090 
00091   }  // namespace VIEW
00092 } // namespace BALL
00093 #endif