00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef KTABWIDGET_H
00022
#define KTABWIDGET_H
00023
00024
#include <qtabwidget.h>
00025
#include <qstringlist.h>
00026
00027
#include <kdelibs_export.h>
00028
00029
class KTabWidgetPrivate;
00030
00036 class KDEUI_EXPORT KTabWidget :
public QTabWidget
00037 {
00038 Q_OBJECT
00039 Q_PROPERTY(
bool tabReorderingEnabled READ isTabReorderingEnabled WRITE setTabReorderingEnabled )
00040 Q_PROPERTY(
bool hoverCloseButton READ hoverCloseButton WRITE setHoverCloseButton )
00041 Q_PROPERTY(
bool hoverCloseButtonDelayed READ hoverCloseButtonDelayed WRITE setHoverCloseButtonDelayed )
00042 Q_PROPERTY(
bool tabCloseActivatePrevious READ tabCloseActivatePrevious WRITE setTabCloseActivatePrevious )
00043 Q_PROPERTY(
bool automaticResizeTabs READ automaticResizeTabs WRITE setAutomaticResizeTabs )
00044
00045
public:
00046 KTabWidget(
QWidget *parent = 0,
const char *name = 0, WFlags f = 0 );
00050
virtual ~KTabWidget();
00054
void setTabColor(
QWidget *,
const QColor& color );
00055
QColor tabColor(
QWidget * )
const;
00056
00061
bool isTabReorderingEnabled()
const;
00062
00067
bool hoverCloseButton()
const;
00068
00073
bool hoverCloseButtonDelayed()
const;
00074
00080
bool tabCloseActivatePrevious()
const;
00081
00087
bool automaticResizeTabs()
const;
00088
00094
void setTabBarHidden(
bool hide );
00095
00100
bool isTabBarHidden()
const;
00101
00105
virtual void insertTab(
QWidget *,
const QString &,
int index = -1 );
00106
00110
virtual void insertTab(
QWidget *child,
const QIconSet& iconset,
00111
const QString &label,
int index = -1 );
00115
virtual void insertTab(
QWidget *,
QTab *,
int index = -1 );
00116
00120
void changeTab(
QWidget *,
const QString & );
00121
00125
void changeTab(
QWidget *child,
const QIconSet& iconset,
const QString &label );
00126
00130
QString label(
int )
const;
00131
00135
QString tabLabel(
QWidget * )
const;
00136
00140
void setTabLabel(
QWidget *,
const QString & );
00141
00142
public slots:
00147
virtual void moveTab(
int,
int );
00148
00153
virtual void removePage (
QWidget * w );
00154
00164
void setTabReorderingEnabled(
bool enable );
00165
00171
void setHoverCloseButton(
bool enable );
00172
00177
void setHoverCloseButtonDelayed(
bool delayed );
00178
00184
void setTabCloseActivatePrevious(
bool previous );
00185
00193
void setAutomaticResizeTabs(
bool enable );
00194
00195 signals:
00199
void testCanDecode(
const QDragMoveEvent *e,
bool &accept );
00200
00205
void receivedDropEvent(
QDropEvent * );
00206
00211
void receivedDropEvent(
QWidget *,
QDropEvent * );
00212
00216
void initiateDrag(
QWidget * );
00217
00221
void contextMenu(
const QPoint & );
00222
00226
void contextMenu(
QWidget *,
const QPoint & );
00227
00232
void movedTab(
int,
int );
00233
00238
void mouseDoubleClick();
00239
00243
void mouseDoubleClick(
QWidget * );
00244
00248
void mouseMiddleClick();
00249
00253
void mouseMiddleClick(
QWidget * );
00254
00259
void closeRequest(
QWidget * );
00260
00261
protected:
00262
virtual void mouseDoubleClickEvent(
QMouseEvent *e );
00263
virtual void mousePressEvent(
QMouseEvent * );
00264
virtual void dragMoveEvent(
QDragMoveEvent * );
00265
virtual void dropEvent(
QDropEvent * );
00266
unsigned int tabBarWidthForMaxChars( uint maxLength );
00267
#ifndef QT_NO_WHEELEVENT
00268
virtual void wheelEvent(
QWheelEvent *e );
00269
#endif
00270
virtual void resizeEvent(
QResizeEvent * );
00271
00272
protected slots:
00273
virtual void receivedDropEvent(
int,
QDropEvent * );
00274
virtual void initiateDrag(
int );
00275
virtual void contextMenu(
int,
const QPoint & );
00276
virtual void mouseDoubleClick(
int );
00277
virtual void mouseMiddleClick(
int );
00278
virtual void closeRequest(
int );
00279
#ifndef QT_NO_WHEELEVENT
00280
virtual void wheelDelta(
int );
00281
#endif
00282
00283
private:
00284
bool isEmptyTabbarSpace(
const QPoint & )
const;
00285
void resizeTabs(
int changedTabIndex = -1 );
00286
void updateTab(
int index );
00287
00288 KTabWidgetPrivate *d;
00289 };
00290
00291
#endif