diff options
Diffstat (limited to 'konqueror/konq_tabs.h')
-rw-r--r-- | konqueror/konq_tabs.h | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/konqueror/konq_tabs.h b/konqueror/konq_tabs.h new file mode 100644 index 000000000..f21bf82a9 --- /dev/null +++ b/konqueror/konq_tabs.h @@ -0,0 +1,130 @@ +/* This file is part of the KDE project + + Copyright (C) 2002-2003 Konqueror Developers + 2002-2003 Douglas Hanley <douglash@caltech.edu> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. +*/ + +#ifndef __konq_tabs_h__ +#define __konq_tabs_h__ + +#include "konq_frame.h" + +#include <ktabwidget.h> + +class TQPixmap; +class TQPopupMenu; +class TQToolButton; + +class KonqView; +class KonqViewManager; +class KonqFrameBase; +class KonqFrame; +class KonqFrameContainerBase; +class KonqFrameContainer; +class TDEConfig; +class KSeparator; +class KProgress; +class TDEAction; + +class KonqFrameTabs : public KTabWidget, public KonqFrameContainerBase +{ + Q_OBJECT + friend class KonqFrame; //for emitting ctrlTabPressed() only, aleXXX + +public: + KonqFrameTabs(TQWidget* parent, KonqFrameContainerBase* parentContainer, + KonqViewManager* viewManager, const char * name = 0); + virtual ~KonqFrameTabs(); + + virtual void listViews( ChildViewList *viewList ); + + virtual void saveConfig( TDEConfig* config, const TQString &prefix, bool saveURLs, + KonqFrameBase* docContainer, int id = 0, int depth = 0 ); + virtual void copyHistory( KonqFrameBase *other ); + + virtual void printFrameInfo( const TQString& spaces ); + + TQPtrList<KonqFrameBase>* childFrameList() { return m_pChildFrameList; } + + virtual void setTitle( const TQString &title, TQWidget* sender ); + virtual void setTabIcon( const KURL &url, TQWidget* sender ); + + virtual TQWidget* widget() { return this; } + virtual TQCString frameType() { return TQCString("Tabs"); } + + void activateChild(); + + /** + * Call this after inserting a new frame into the splitter. + */ + void insertChildFrame( KonqFrameBase * frame, int index = -1); + + /** + * Call this before deleting one of our children. + */ + void removeChildFrame( KonqFrameBase * frame ); + + //inherited + virtual void reparentFrame(TQWidget * parent, + const TQPoint & p, bool showIt=FALSE ); + + void moveTabBackward(int index); + void moveTabForward(int index); + + +public slots: + void slotCurrentChanged(TQWidget* newPage); + void setAlwaysTabbedMode(bool enable); + +signals: + void ctrlTabPressed(); + void removeTabPopup(); + +protected: + void refreshSubPopupMenuTab(); + void hideTabBar(); + + TQPtrList<KonqFrameBase>* m_pChildFrameList; + +private slots: + void slotContextMenu( const TQPoint& ); + void slotContextMenu( TQWidget*, const TQPoint& ); + void slotCloseRequest( TQWidget* ); + void slotMovedTab( int, int ); + void slotMouseMiddleClick(); + void slotMouseMiddleClick( TQWidget* ); + + void slotTestCanDecode(const TQDragMoveEvent *e, bool &accept /* result */); + void slotReceivedDropEvent( TQDropEvent* ); + void slotInitiateDrag( TQWidget * ); + void slotReceivedDropEvent( TQWidget *, TQDropEvent * ); + void slotSubPopupMenuTabActivated( int ); + +private: + KonqViewManager* m_pViewManager; + TQPopupMenu* m_pPopupMenu; + TQPopupMenu* m_pSubPopupMenuTab; + TQToolButton* m_rightWidget; + TQToolButton* m_leftWidget; + bool m_permanentCloseButtons; + bool m_alwaysTabBar; + bool m_MouseMiddleClickClosesTab; + int m_closeOtherTabsId; +}; + +#endif |