00001 #ifndef __QMDI_WORKSPACE__
00002 #define __QMDI_WORKSPACE__
00003
00012
00013
00014 #include <QWidget>
00015 #include "qmdiserver.h"
00016
00017 class QGridLayout;
00018 class QWorkspace;
00019 class QTabBar;
00020 class qmdiHost;
00021
00022 class qmdiWorkspace : public QWidget, public qmdiServer
00023 {
00024 Q_OBJECT
00025 public:
00026 qmdiWorkspace( QWidget *parent=NULL, qmdiHost *host=NULL );
00027
00028
00029 void addTab( QWidget *widget, QString name );
00030 QWidget* currentWidget();
00031 const QWidget* cornerWidget ( Qt::Corner corner = Qt::TopRightCorner );
00032 void setCornerWidget ( QWidget * widget, Qt::Corner corner = Qt::TopRightCorner );
00033 QWidget* widget( int i );
00034 int currentIndex();
00035 int count();
00036
00037
00038 virtual void addClient( qmdiClient *client );
00039 virtual int getClientsCount();
00040 virtual qmdiClient *getClient( int i );
00041
00042 public slots:
00043 bool eventFilter( QObject *obj, QEvent *event );
00044 void workspaceChanged( QWidget * w );
00045 void tabBarChanged( int index );
00046 void windowDeleted( QObject *o );
00047 void on_middleMouse_pressed( int, QPoint );
00048 void on_rightMouse_pressed( int, QPoint );
00049
00050 private:
00051 QLayout *mainLayout;
00052 QLayout *headerLayout;
00053 QTabBar *tabBar;
00054 QWorkspace *workspace;
00055 QWidgetList _widgetList;
00056
00057 QWidget *cornerWidget1;
00058 QWidget *cornerWidget2;
00059 QWidget *activeWidget;
00060 };
00061
00062 #endif // __QMDI_WORKSPACE__