kmultitabbar.h
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 #include <kdelibs_export.h>
00037
00038 class QPixmap;
00039 class QPainter;
00040 class QFrame;
00041
00042 class KMultiTabBarPrivate;
00043 class KMultiTabBarTabPrivate;
00044 class KMultiTabBarButtonPrivate;
00045 class KMultiTabBarInternal;
00046
00054 class KUTILS_EXPORT KMultiTabBar: public QWidget
00055 {
00056 Q_OBJECT
00057 public:
00058 enum KMultiTabBarMode{Horizontal, Vertical};
00059 enum KMultiTabBarPosition{Left, Right, Top, Bottom};
00060
00067 enum KMultiTabBarStyle{VSNET=0, KDEV3=1, KONQSBC=2, KDEV3ICON=3,STYLELAST=0xffff};
00068
00069 KMultiTabBar(KMultiTabBarMode bm,QWidget *parent=0,const char *name=0);
00070 virtual ~KMultiTabBar();
00071
00081 int appendButton(const QPixmap &pic,int id=-1,QPopupMenu* popup=0,const QString& not_used_yet=QString::null);
00085 void removeButton(int id);
00092 int appendTab(const QPixmap &pic,int id=-1,const QString& text=QString::null);
00096 void removeTab(int id);
00102 void setTab(int id ,bool state);
00106 bool isTabRaised(int id) const;
00110 class KMultiTabBarButton *button(int id) const;
00111
00115 class KMultiTabBarTab *tab(int id) const;
00120 void setPosition(KMultiTabBarPosition pos);
00124 void setStyle(KMultiTabBarStyle style);
00128 QPtrList<KMultiTabBarTab>* tabs();
00132 QPtrList<KMultiTabBarButton>* buttons();
00133
00137 void showActiveTabTexts(bool show=true);
00138 protected:
00139 friend class KMultiTabBarButton;
00140 virtual void fontChange( const QFont& );
00141 void updateSeparator();
00142 private:
00143 class KMultiTabBarInternal *m_internal;
00144 QBoxLayout *m_l;
00145 QFrame *m_btnTabSep;
00146 QPtrList<KMultiTabBarButton> m_buttons;
00147 KMultiTabBarPosition m_position;
00148 KMultiTabBarPrivate *d;
00149 };
00150
00154 class KUTILS_EXPORT KMultiTabBarButton: public QPushButton
00155 {
00156 Q_OBJECT
00157 public:
00158 KMultiTabBarButton(const QPixmap& pic,const QString&, QPopupMenu *popup,
00159 int id,QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00160 KMultiTabBarButton(const QString&, QPopupMenu *popup,
00161 int id,QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00162 virtual ~KMultiTabBarButton();
00163 int id() const;
00164
00165 public slots:
00170 void setPosition(KMultiTabBar::KMultiTabBarPosition);
00175 void setStyle(KMultiTabBar::KMultiTabBarStyle);
00176
00180 void setText(const QString &);
00181
00182 QSize sizeHint() const;
00183
00184 protected:
00185 KMultiTabBar::KMultiTabBarPosition m_position;
00186 KMultiTabBar::KMultiTabBarStyle m_style;
00187 QString m_text;
00188 virtual void hideEvent( class QHideEvent*);
00189 virtual void showEvent( class QShowEvent*);
00190 private:
00191 int m_id;
00192 KMultiTabBarButtonPrivate *d;
00193 signals:
00198 void clicked(int id);
00199 protected slots:
00200 virtual void slotClicked();
00201 };
00202
00206 class KUTILS_EXPORT KMultiTabBarTab: public KMultiTabBarButton
00207 {
00208 Q_OBJECT
00209 public:
00210 KMultiTabBarTab(const QPixmap& pic,const QString&,int id,QWidget *parent,
00211 KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style);
00212 virtual ~KMultiTabBarTab();
00217 void setState(bool state);
00222 void showActiveTabText(bool show);
00223 void resize(){ setSize( neededSize() ); }
00224 private:
00225 bool m_showActiveTabText;
00226 int m_expandedSize;
00227 KMultiTabBarTabPrivate *d;
00228 protected:
00229 friend class KMultiTabBarInternal;
00230 void setSize(int);
00231 int neededSize();
00232 void updateState();
00233 virtual void drawButton(QPainter *);
00234 virtual void drawButtonLabel(QPainter *);
00235 void drawButtonStyled(QPainter *);
00236 void drawButtonClassic(QPainter *);
00237 protected slots:
00238 virtual void slotClicked();
00239 void setTabsPosition(KMultiTabBar::KMultiTabBarPosition);
00240
00241 public slots:
00242 virtual void setIcon(const QString&);
00243 virtual void setIcon(const QPixmap&);
00244 };
00245
00246 #endif
This file is part of the documentation for kutils Library Version 3.4.0.