1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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 QPixmap;
class QPopupMenu;
class QToolButton;
class KonqView;
class KonqViewManager;
class KonqFrameBase;
class KonqFrame;
class KonqFrameContainerBase;
class KonqFrameContainer;
class KConfig;
class KSeparator;
class KProgress;
class KAction;
class KonqFrameTabs : public KTabWidget, public KonqFrameContainerBase
{
Q_OBJECT
friend class KonqFrame; //for emitting ctrlTabPressed() only, aleXXX
public:
KonqFrameTabs(QWidget* parent, KonqFrameContainerBase* parentContainer,
KonqViewManager* viewManager, const char * name = 0);
virtual ~KonqFrameTabs();
virtual void listViews( ChildViewList *viewList );
virtual void saveConfig( KConfig* config, const QString &prefix, bool saveURLs,
KonqFrameBase* docContainer, int id = 0, int depth = 0 );
virtual void copyHistory( KonqFrameBase *other );
virtual void printFrameInfo( const QString& spaces );
QPtrList<KonqFrameBase>* childFrameList() { return m_pChildFrameList; }
virtual void setTitle( const QString &title, QWidget* sender );
virtual void setTabIcon( const KURL &url, QWidget* sender );
virtual QWidget* widget() { return this; }
virtual QCString frameType() { return QCString("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(QWidget * parent,
const QPoint & p, bool showIt=FALSE );
void moveTabBackward(int index);
void moveTabForward(int index);
public slots:
void slotCurrentChanged( QWidget* newPage );
void setAlwaysTabbedMode( bool );
signals:
void ctrlTabPressed();
void removeTabPopup();
protected:
void refreshSubPopupMenuTab();
void hideTabBar();
QPtrList<KonqFrameBase>* m_pChildFrameList;
private slots:
void slotContextMenu( const QPoint& );
void slotContextMenu( QWidget*, const QPoint& );
void slotCloseRequest( QWidget* );
void slotMovedTab( int, int );
void slotMouseMiddleClick();
void slotMouseMiddleClick( QWidget* );
void slotTestCanDecode(const QDragMoveEvent *e, bool &accept /* result */);
void slotReceivedDropEvent( QDropEvent* );
void slotInitiateDrag( QWidget * );
void slotReceivedDropEvent( QWidget *, QDropEvent * );
void slotSubPopupMenuTabActivated( int );
private:
KonqViewManager* m_pViewManager;
QPopupMenu* m_pPopupMenu;
QPopupMenu* m_pSubPopupMenuTab;
QToolButton* m_rightWidget;
QToolButton* m_leftWidget;
bool m_permanentCloseButtons;
bool m_alwaysTabBar;
bool m_MouseMiddleClickClosesTab;
int m_closeOtherTabsId;
};
#endif
|