00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef _KMDI_DOCK_CONTAINER_
00021
#define _KMDI_DOCK_CONTAINER_
00022
00023
#include <qwidget.h>
00024
#include <qstringlist.h>
00025
#include <kdockwidget.h>
00026
#include <qmap.h>
00027
00028
# include <kdockwidget_p.h>
00029
00030
#include <qpushbutton.h>
00031
00032
class QWidgetStack;
00033
class KMultiTabBar;
00034
class KDockButton_Private;
00035
00036
namespace KMDI
00037 {
00038
00039
class DockContainer:
public QWidget,
public KDockContainer
00040 {
00041 Q_OBJECT
00042
00043
public:
00044 DockContainer(
QWidget *parent,
QWidget *win,
int position,
int flags);
00045
virtual ~DockContainer();
00046
00048 KDockWidget *parentDockWidget();
00049
00055
virtual void insertWidget (KDockWidget *w,
QPixmap,
const QString &,
int &);
00056
00061
virtual void showWidget (KDockWidget *w);
00062
00069
virtual void setToolTip (KDockWidget *,
QString &);
00070
00076
virtual void setPixmap(KDockWidget* widget,
const QPixmap& pixmap);
00077
00083
virtual void undockWidget(KDockWidget* dwdg);
00084
00090
virtual void removeWidget(KDockWidget*);
00091
00092
void hideIfNeeded();
00093
00094
virtual void save(KConfig *,
const QString& group_or_prefix);
00095
virtual void load(KConfig *,
const QString& group_or_prefix);
00096
00097
void setStyle(
int);
00098
protected:
00099
bool eventFilter(
QObject*,
QEvent*);
00100
00101
public slots:
00102
void init();
00103
void collapseOverlapped();
00104
void toggle();
00105
void nextToolView();
00106
void prevToolView();
00107
protected slots:
00108
void tabClicked(
int);
00109
void delayedRaise();
00110
void changeOverlapMode();
00111
private:
00112
QWidget *m_mainWin;
00113
QWidgetStack *m_ws;
00114 KMultiTabBar *m_tb;
00115
int mTabCnt;
00116
int oldtab;
00117
int m_previousTab;
00118
int m_position;
00119
int m_separatorPos;
00120
QMap<KDockWidget*,int> m_map;
00121
QMap<int,KDockWidget*> m_revMap;
00122
QMap<KDockWidget*,KDockButton_Private*> m_overlapButtons;
00123
QStringList itemNames;
00124
QMap<QString,QString> tabCaptions;
00125
QMap<QString,QString> tabTooltips;
00126
int m_inserted;
00127
int m_delayedRaise;
00128
bool m_vertical;
00129
bool m_block;
00130
bool m_tabSwitching;
00131
QObject *m_dragPanel;
00132 KDockManager *m_dockManager;
00133
QMouseEvent *m_startEvent;
00134
enum MovingState {NotMoving=0,WaitingForMoveStart,MovingInternal,Moving} m_movingState;
00135 signals:
00136
void activated(DockContainer*);
00137
void deactivated(DockContainer*);
00138 };
00139
00140 }
00141
00142
#endif
00143
00144