kutils Library API Documentation

kmultitabbar.h

00001 /*************************************************************************** 00002 kmultitabbar.h - description 00003 ------------------- 00004 begin : 2001 00005 copyright : (C) 2001,2002,2003 by Joseph Wenninger <jowenn@kde.org> 00006 ***************************************************************************/ 00007 00008 /*************************************************************************** 00009 This library is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU Library General Public 00011 License as published by the Free Software Foundation; either 00012 version 2 of the License, or (at your option) any later version. 00013 00014 This library is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Library General Public License for more details. 00018 00019 You should have received a copy of the GNU Library General Public License 00020 along with this library; see the file COPYING.LIB. If not, write to 00021 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00022 Boston, MA 02111-1307, USA. 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
KDE Logo
This file is part of the documentation for kutils Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 16 17:22:59 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003