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