00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _TDEMDI_DOCK_CONTAINER_
00021 #define _TDEMDI_DOCK_CONTAINER_
00022
00023 #include <tqwidget.h>
00024 #include <tqstringlist.h>
00025 #include <kdockwidget.h>
00026 #include <tqmap.h>
00027 #include <tqdom.h>
00028
00029 # include <kdockwidget_p.h>
00030
00031 #include <tqpushbutton.h>
00032
00033 class TQWidgetStack;
00034 class KMultiTabBar;
00035 class KDockButton_Private;
00036
00037 class KMDI_EXPORT KMdiDockContainer: public TQWidget, public KDockContainer
00038 {
00039 Q_OBJECT
00040
00041 public:
00042 KMdiDockContainer( TQWidget *parent, TQWidget *win, int position, int flags );
00043 virtual ~KMdiDockContainer();
00044
00046 KDockWidget *parentDockWidget();
00047
00052 virtual void insertWidget ( KDockWidget *w, TQPixmap, const TQString &, int & );
00053
00061 virtual void showWidget ( KDockWidget *w );
00062
00067 virtual void setToolTip ( KDockWidget *, TQString & );
00068
00072 virtual void setPixmap( KDockWidget* widget, const TQPixmap& pixmap );
00073
00077 virtual void undockWidget( KDockWidget* dwdg );
00078
00083 virtual void removeWidget( KDockWidget* );
00084
00088 void hideIfNeeded();
00089
00097 virtual void save( TDEConfig *, const TQString& group_or_prefix );
00098
00106 virtual void load( TDEConfig *, const TQString& group_or_prefix );
00107
00111 virtual void save( TQDomElement& );
00112
00116 virtual void load( TQDomElement& );
00117
00121 void setStyle( int );
00122
00123 protected:
00124 bool eventFilter( TQObject*, TQEvent* );
00125
00126 public slots:
00127 void init();
00128 void collapseOverlapped();
00129 void toggle();
00130 void nextToolView();
00131 void prevToolView();
00132 protected slots:
00133 void tabClicked( int );
00134 void delayedRaise();
00135 void changeOverlapMode();
00136 private:
00137 TQWidget *m_mainWin;
00138 TQWidgetStack *m_ws;
00139 KMultiTabBar *m_tb;
00140 int mTabCnt;
00141 int oldtab;
00142 int m_previousTab;
00143 int m_position;
00144 int m_separatorPos;
00145 TQMap<KDockWidget*, int> m_map;
00146 TQMap<int, KDockWidget*> m_revMap;
00147 TQMap<KDockWidget*, KDockButton_Private*> m_overlapButtons;
00148 TQStringList itemNames;
00149 TQMap<TQString, TQString> tabCaptions;
00150 TQMap<TQString, TQString> tabTooltips;
00151 int m_inserted;
00152 int m_delayedRaise;
00153 bool m_horizontal;
00154 bool m_block;
00155 bool m_tabSwitching;
00156 TQObject *m_dragPanel;
00157 KDockManager *m_dockManager;
00158 TQMouseEvent *m_startEvent;
00159 enum MovingState {NotMoving = 0, WaitingForMoveStart, Moving} m_movingState;
00160 signals:
00161 void activated( KMdiDockContainer* );
00162 void deactivated( KMdiDockContainer* );
00163 };
00164
00165 #endif
00166
00167