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, 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
KDE Logo
This file is part of the documentation for kutils Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:41:34 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003