diff options
Diffstat (limited to 'tdemdi/tdemdi/dockcontainer.h')
-rw-r--r-- | tdemdi/tdemdi/dockcontainer.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/tdemdi/tdemdi/dockcontainer.h b/tdemdi/tdemdi/dockcontainer.h new file mode 100644 index 000000000..9b7478378 --- /dev/null +++ b/tdemdi/tdemdi/dockcontainer.h @@ -0,0 +1,144 @@ +/* This file is part of the KDE project + Copyright (C) 2002, 2003 Joseph Wenninger <jowenn@kde.org> + Copyright (C) 2002, 2004 Christoph Cullmann <cullmann@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef _KMDI_DOCK_CONTAINER_ +#define _KMDI_DOCK_CONTAINER_ + +#include <tqwidget.h> +#include <tqstringlist.h> +#include <kdockwidget.h> +#include <tqmap.h> + +# include <kdockwidget_p.h> + +#include <tqpushbutton.h> + +class TQWidgetStack; +class KMultiTabBar; +class KDockButton_Private; + +namespace KMDI +{ + +class DockContainer: public TQWidget, public KDockContainer +{ + Q_OBJECT + + public: + DockContainer(TQWidget *parent, TQWidget *win, int position, int flags); + virtual ~DockContainer(); + + /** Get the KDockWidget that is our parent */ + KDockWidget *parentDockWidget(); + + /** + * Add a widget to this container. + * \param w the KDockWidget object to add + * \todo Remove the extra parameters that we don't use? + */ + virtual void insertWidget (KDockWidget *w, TQPixmap, const TQString &, int &); + + /** + * Show a KDockWidget in our DockContainer + * \param w the KDockWidget to show + */ + virtual void showWidget (KDockWidget *w); + + /** + * Set a tooltip for a widget + * + * \todo Actually implement it? Right now, it looks just it + * does exactly nothing + */ + virtual void setToolTip (KDockWidget *, TQString &); + + /** + * Set a pixmap for one of our dock widgets + * \param widget the KDockWidget to set the pixmap for + * \param pixmap the pixmap you want to give the widget + */ + virtual void setPixmap(KDockWidget* widget, const TQPixmap& pixmap); + + /** + * Undock a widget from the container. This function is called + * when you've dragged a tab off the dock it's attached to. + * \param dwdg the KDockWidget to undock + */ + virtual void undockWidget(KDockWidget* dwdg); + + /** + * Remove a widget from the container. The caller + * of this function is responsible for deleting the widget after calling + * this function. + */ + virtual void removeWidget(KDockWidget*); + + void hideIfNeeded(); + + virtual void save(TDEConfig *,const TQString& group_or_prefix); + virtual void load(TDEConfig *,const TQString& group_or_prefix); + + void setStyle(int); + protected: + bool eventFilter(TQObject*,TQEvent*); + + public slots: + void init(); + void collapseOverlapped(); + void toggle(); + void nextToolView(); + void prevToolView(); + protected slots: + void tabClicked(int); + void delayedRaise(); + void changeOverlapMode(); + private: + TQWidget *m_mainWin; + TQWidgetStack *m_ws; + KMultiTabBar *m_tb; + int mTabCnt; + int oldtab; + int m_previousTab; + int m_position; + int m_separatorPos; + TQMap<KDockWidget*,int> m_map; + TQMap<int,KDockWidget*> m_revMap; + TQMap<KDockWidget*,KDockButton_Private*> m_overlapButtons; + TQStringList itemNames; + TQMap<TQString,TQString> tabCaptions; + TQMap<TQString,TQString> tabTooltips; + int m_inserted; + int m_delayedRaise; + bool m_vertical; + bool m_block; + bool m_tabSwitching; + TQObject *m_dragPanel; + KDockManager *m_dockManager; + TQMouseEvent *m_startEvent; + enum MovingState {NotMoving=0,WaitingForMoveStart,MovingInternal,Moving} m_movingState; + signals: + void activated(DockContainer*); + void deactivated(DockContainer*); +}; + +} + +#endif + +// kate: space-indent on; indent-width 2; replace-tabs on; |