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 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
This file is part of the documentation for kutils Library Version 3.3.2.