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,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
00137
private:
00138
class KMultiTabBarInternal *m_internal;
00139
QBoxLayout *m_l;
00140
QFrame *m_btnTabSep;
00141
QPtrList<KMultiTabBarButton> m_buttons;
00142 KMultiTabBarPosition m_position;
00143 KMultiTabBarPrivate *d;
00144 };
00145
00149 class KMultiTabBarButton:
public QPushButton
00150 {
00151 Q_OBJECT
00152
public:
00153
KMultiTabBarButton(
const QPixmap& pic,
const QString&,
QPopupMenu *popup,
00154
int id,
QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00155
KMultiTabBarButton(
const QString&,
QPopupMenu *popup,
00156
int id,
QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00157
virtual ~
KMultiTabBarButton();
00158
int id()
const;
00159
00160
public slots:
00165
void setPosition(KMultiTabBar::KMultiTabBarPosition);
00170
void setStyle(KMultiTabBar::KMultiTabBarStyle);
00171
00175
void setText(
const QString &);
00176
00177
QSize sizeHint()
const;
00178
00179
protected:
00180 KMultiTabBar::KMultiTabBarPosition m_position;
00181 KMultiTabBar::KMultiTabBarStyle m_style;
00182
QString m_text;
00183
00184
private:
00185
int m_id;
00186 KMultiTabBarButtonPrivate *d;
00187 signals:
00192
void clicked(
int id);
00193
protected slots:
00194
virtual void slotClicked();
00195 };
00196
00200 class KMultiTabBarTab:
public KMultiTabBarButton
00201 {
00202 Q_OBJECT
00203
public:
00204
KMultiTabBarTab(
const QPixmap& pic,
const QString&,
int id,
QWidget *parent,
00205 KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style);
00206
virtual ~
KMultiTabBarTab();
00211
void setState(
bool state);
00216
void showActiveTabText(
bool show);
00217
private:
00218
bool m_showActiveTabText;
00219
int m_expandedSize;
00220 KMultiTabBarTabPrivate *d;
00221
protected:
00222
friend class KMultiTabBarInternal;
00223
void setSize(
int);
00224
int neededSize();
00225
void updateState();
00226
virtual void drawButton(
QPainter *);
00227
virtual void drawButtonLabel(
QPainter *);
00228
void drawButtonStyled(
QPainter *);
00229
void drawButtonClassic(
QPainter *);
00230
protected slots:
00231
virtual void slotClicked();
00232
void setTabsPosition(KMultiTabBar::KMultiTabBarPosition);
00233
00234
public slots:
00235
virtual void setIcon(
const QString&);
00236
virtual void setIcon(
const QPixmap&);
00237 };
00238
00239
#endif