KDEUI
kmultitabbar.h
Go to the documentation of this file.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 <QtGui/QLayout>
00029 #include <QtCore/QString>
00030 #include <QtCore/QList>
00031 #include <QtGui/QPushButton>
00032
00033 #include <kdeui_export.h>
00034
00035 class QPixmap;
00036 class QPainter;
00037 class QMenu;
00038 class QStyleOptionToolButton;
00039
00040 class KMultiTabBarPrivate;
00041 class KMultiTabBarTabPrivate;
00042 class KMultiTabBarButtonPrivate;
00043 class KMultiTabBarInternal;
00044
00054 class KDEUI_EXPORT KMultiTabBar: public QWidget
00055 {
00056 Q_OBJECT
00057 public:
00058 enum KMultiTabBarPosition { Left, Right, Top, Bottom };
00059
00065 enum KMultiTabBarStyle{VSNET=0, KDEV3ICON=2,STYLELAST=0xffff};
00066
00067 explicit KMultiTabBar(KMultiTabBarPosition pos, QWidget *parent=0 );
00068 virtual ~KMultiTabBar();
00069
00079 int appendButton(const QPixmap &pic,int id=-1,QMenu* popup=0,const QString& not_used_yet=QString());
00083 void removeButton(int id);
00090 int appendTab(const QPixmap &pic,int id=-1,const QString& text=QString());
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;
00114
00119 void setPosition(KMultiTabBarPosition pos);
00120
00125 KMultiTabBarPosition position() const;
00126
00130 void setStyle(KMultiTabBarStyle style);
00131
00136 KMultiTabBarStyle tabStyle() const;
00137
00138 protected:
00139 friend class KMultiTabBarButton;
00140 virtual void fontChange( const QFont& );
00141 void updateSeparator();
00142 private:
00143 KMultiTabBarPrivate * const d;
00144 };
00145
00149 class KDEUI_EXPORT KMultiTabBarButton: public QPushButton
00150 {
00151 Q_OBJECT
00152 public:
00153 int id() const;
00154 virtual ~KMultiTabBarButton();
00155
00156 public Q_SLOTS:
00157 void setText(const QString &text);
00158
00159 Q_SIGNALS:
00164 void clicked(int id);
00165 protected Q_SLOTS:
00166 virtual void slotClicked();
00167
00168 protected:
00169 virtual void hideEvent( class QHideEvent*);
00170 virtual void showEvent( class QShowEvent*);
00171
00174 KMultiTabBarButton(const QPixmap& pic, const QString&, int id, QWidget *parent);
00175 private:
00176 friend class KMultiTabBar;
00177
00178 int m_id;
00179 KMultiTabBarButtonPrivate * const d;
00180 };
00181
00185 class KDEUI_EXPORT KMultiTabBarTab: public KMultiTabBarButton
00186 {
00187 Q_OBJECT
00188 public:
00189 virtual ~KMultiTabBarTab();
00190 virtual QSize sizeHint() const;
00191 virtual QSize minimumSizeHint() const;
00192
00193 public Q_SLOTS:
00198 void setPosition(KMultiTabBar::KMultiTabBarPosition);
00199
00204 void setStyle(KMultiTabBar::KMultiTabBarStyle);
00205
00210 void setState(bool state);
00211
00212 void setIcon(const QString&);
00213 void setIcon(const QPixmap&);
00214 protected:
00215 virtual void paintEvent(QPaintEvent *);
00216 private:
00217 KMultiTabBar::KMultiTabBarPosition m_position;
00218 KMultiTabBar::KMultiTabBarStyle m_style;
00219
00220 void computeMargins (int* hMargin, int* vMargin) const;
00221 QSize computeSizeHint(bool withText) const;
00222 bool shouldDrawText() const;
00223 bool isVertical() const;
00224 QPixmap iconPixmap() const;
00225
00226 void initStyleOption(QStyleOptionToolButton* opt) const;
00227
00228 friend class KMultiTabBarInternal;
00232 KMultiTabBarTab(const QPixmap& pic, const QString&, int id, QWidget *parent,
00233 KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style);
00234 KMultiTabBarTabPrivate * const d;
00235 };
00236
00237 #endif
00238