00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef _KMultitabbar_h_
00026
#define _KMultitabbar_h_
00027
00028
#include <qscrollview.h>
00029
#include <qvbox.h>
00030
#include <qhbox.h>
00031
#include <qlayout.h>
00032
#include <qstring.h>
00033
#include <qptrlist.h>
00034
#include <qpushbutton.h>
00035
00036
class QPixmap;
00037
class QPainter;
00038
class QFrame;
00039
00040
class KMultiTabBarPrivate;
00041
class KMultiTabBarTabPrivate;
00042
class KMultiTabBarButtonPrivate;
00043
class KMultiTabBarInternal;
00044
00052 class KMultiTabBar:
public QWidget
00053 {
00054 Q_OBJECT
00055
public:
00056
enum KMultiTabBarMode{Horizontal, Vertical};
00057
enum KMultiTabBarPosition{Left, Right, Top, Bottom};
00058
00065 enum KMultiTabBarStyle{VSNET=0, KDEV3=1, KONQSBC=2, KDEV3ICON=3,STYLELAST=0xffff};
00066
00067
KMultiTabBar(KMultiTabBarMode bm,
QWidget *parent=0,
const char *name=0);
00068
virtual ~
KMultiTabBar();
00069
00079
int appendButton(
const QPixmap &pic,
int id=-1,
QPopupMenu* popup=0,
const QString& not_used_yet=QString::null);
00083
void removeButton(
int id);
00090
int appendTab(
const QPixmap &pic,
int id=-1,
const QString& text=QString::null);
00094
void removeTab(
int id);
00100
void setTab(
int id ,
bool state);
00104
bool isTabRaised(
int id)
const;
00108
class KMultiTabBarButton *
button(
int id)
const;
00109
00113
class KMultiTabBarTab *
tab(
int id)
const;
00118
void setPosition(KMultiTabBarPosition pos);
00122
void setStyle(KMultiTabBarStyle style);
00126
QPtrList<KMultiTabBarTab>*
tabs();
00130
QPtrList<KMultiTabBarButton>*
buttons();
00131
00135
void showActiveTabTexts(
bool show=
true);
00136
protected:
00137
friend class KMultiTabBarButton;
00138
virtual void fontChange(
const QFont& );
00139
void updateSeparator();
00140
private:
00141
class KMultiTabBarInternal *m_internal;
00142
QBoxLayout *m_l;
00143
QFrame *m_btnTabSep;
00144
QPtrList<KMultiTabBarButton> m_buttons;
00145 KMultiTabBarPosition m_position;
00146 KMultiTabBarPrivate *d;
00147 };
00148
00152 class KMultiTabBarButton:
public QPushButton
00153 {
00154 Q_OBJECT
00155
public:
00156
KMultiTabBarButton(
const QPixmap& pic,
const QString&,
QPopupMenu *popup,
00157
int id,
QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00158
KMultiTabBarButton(
const QString&,
QPopupMenu *popup,
00159
int id,
QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00160
virtual ~
KMultiTabBarButton();
00161
int id()
const;
00162
00163
public slots:
00168
void setPosition(KMultiTabBar::KMultiTabBarPosition);
00173
void setStyle(KMultiTabBar::KMultiTabBarStyle);
00174
00178
void setText(
const QString &);
00179
00180
QSize sizeHint()
const;
00181
00182
protected:
00183 KMultiTabBar::KMultiTabBarPosition m_position;
00184 KMultiTabBar::KMultiTabBarStyle m_style;
00185
QString m_text;
00186
virtual void hideEvent(
class QHideEvent*);
00187
virtual void showEvent(
class QShowEvent*);
00188
private:
00189
int m_id;
00190 KMultiTabBarButtonPrivate *d;
00191 signals:
00196
void clicked(
int id);
00197
protected slots:
00198
virtual void slotClicked();
00199 };
00200
00204 class KMultiTabBarTab:
public KMultiTabBarButton
00205 {
00206 Q_OBJECT
00207
public:
00208
KMultiTabBarTab(
const QPixmap& pic,
const QString&,
int id,
QWidget *parent,
00209 KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style);
00210
virtual ~
KMultiTabBarTab();
00215
void setState(
bool state);
00220
void showActiveTabText(
bool show);
00221
void resize(){ setSize( neededSize() ); }
00222
private:
00223
bool m_showActiveTabText;
00224
int m_expandedSize;
00225 KMultiTabBarTabPrivate *d;
00226
protected:
00227
friend class KMultiTabBarInternal;
00228
void setSize(
int);
00229
int neededSize();
00230
void updateState();
00231
virtual void drawButton(
QPainter *);
00232
virtual void drawButtonLabel(
QPainter *);
00233
void drawButtonStyled(
QPainter *);
00234
void drawButtonClassic(
QPainter *);
00235
protected slots:
00236
virtual void slotClicked();
00237
void setTabsPosition(KMultiTabBar::KMultiTabBarPosition);
00238
00239
public slots:
00240
virtual void setIcon(
const QString&);
00241
virtual void setIcon(
const QPixmap&);
00242 };
00243
00244
#endif