• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdeui

kjanuswidget.h

Go to the documentation of this file.
00001 /*  This file is part of the KDE Libraries
00002  *  Copyright (C) 1999-2000 Espen Sand (espen@kde.org)
00003  *
00004  *  This library is free software; you can redistribute it and/or
00005  *  modify it under the terms of the GNU Library General Public
00006  *  License as published by the Free Software Foundation; either
00007  *  version 2 of the License, or (at your option) any later version.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  *  Boston, MA 02110-1301, USA.
00018  */
00019 
00020 #ifndef _KJANUS_WIDGET_H_
00021 #define _KJANUS_WIDGET_H_
00022 
00023 #include <qptrlist.h>
00024 #include <qpixmap.h>
00025 #include <qsplitter.h>
00026 
00027 #include <klistbox.h>
00028 #include <qstringlist.h>
00029 #include <qmap.h>
00030 
00031 class KListView;
00032 
00033 class QGrid;
00034 class QHBox;
00035 class QLabel;
00036 class QTabWidget;
00037 class QVBox;
00038 class QWidgetStack;
00039 class KSeparator;
00040 class QListViewItem;
00041 class KGuiItem;
00042 
00067 class KDEUI_EXPORT KJanusWidget : public QWidget
00068 {
00069   Q_OBJECT
00070 
00071   private:
00072     class IconListBox : public KListBox
00073     {
00074       public:
00075         IconListBox( QWidget *parent=0, const char *name=0, WFlags f=0 );
00076     void updateMinimumHeight();
00077     void updateWidth();
00078     void invalidateHeight();
00079     void invalidateWidth();
00080     void setShowAll( bool showAll );
00081 
00082       private:
00083     bool mShowAll;
00084     bool mHeightValid;
00085     bool mWidthValid;
00086     };
00087 
00088   public:
00089     enum Face
00090     {
00097       TreeList = 0,
00104       Tabbed,
00110       Plain,
00118       Swallow,
00126       IconList
00127     };
00128 
00129   public:
00130 
00139     KJanusWidget( QWidget *parent=0, const char *name=0, int face=Plain );
00140 
00144     ~KJanusWidget();
00145 
00151     virtual bool showPage( int index );
00152 
00159     virtual int  activePageIndex() const;
00160 
00167     virtual bool isValid() const;
00168 
00174     virtual int face() const;
00175 
00182     virtual QSize minimumSizeHint() const;
00183 
00190     virtual QSize sizeHint() const;
00191 
00197     virtual QFrame *plainPage();
00198 
00218     virtual QFrame *addPage(const QString &item,const QString &header=QString::null,
00219             const QPixmap &pixmap=QPixmap() );
00220 
00235      virtual QFrame *addPage(const QStringList &items, const QString &header=QString::null,
00236             const QPixmap &pixmap=QPixmap() );
00237 
00257     virtual QVBox *addVBoxPage( const QString &item,
00258             const QString &header=QString::null,
00259             const QPixmap &pixmap=QPixmap() );
00260 
00273     virtual QVBox *addVBoxPage( const QStringList &items,
00274             const QString &header=QString::null,
00275             const QPixmap &pixmap=QPixmap() );
00276 
00297     virtual QHBox *addHBoxPage( const QString &itemName,
00298             const QString &header=QString::null,
00299             const QPixmap &pixmap=QPixmap() );
00300 
00313     virtual QHBox *addHBoxPage( const QStringList &items,
00314             const QString &header=QString::null,
00315             const QPixmap &pixmap=QPixmap() );
00316 
00340     virtual QGrid *addGridPage( int n, Orientation dir,
00341             const QString &itemName,
00342             const QString &header=QString::null,
00343             const QPixmap &pixmap=QPixmap() );
00344 
00357     virtual QGrid *addGridPage( int n, Orientation dir,
00358             const QStringList &items,
00359             const QString &header=QString::null,
00360             const QPixmap &pixmap=QPixmap() );
00361 
00371     void removePage( QWidget *page );
00372 
00373 
00390     virtual int pageIndex( QWidget *widget ) const;
00391 
00401     virtual bool setSwallowedWidget( QWidget *widget );
00402 
00413     virtual void setTreeListAutoResize( bool state );
00414 
00427     virtual void setShowIconsInTreeList(bool state);
00428 
00437     virtual void setRootIsDecorated( bool state );
00438 
00452     /*virtual*/ void unfoldTreeList( bool persist = false ); //### KDE4 BIC add virtual
00453 
00462     /*virtual*/ void addWidgetBelowList( QWidget * widget ); // ### KDE4
00463 
00474     /*virtual*/ void addButtonBelowList( const QString & text, QObject * recv,
00475                     const char * slot ); //### KDE4
00476 
00488     /*virtual*/ void addButtonBelowList( const KGuiItem & guiitem, QObject *
00489                     recv, const char * slot ); //### KDE4
00490 
00503     virtual void setIconListAllVisible( bool state );
00504 
00510     virtual void setFolderIcon(const QStringList &path, const QPixmap &pixmap);
00517     /*virtual*/ QString pageTitle(int index) const;
00525     /*virtual*/ QWidget *pageWidget(int index) const;
00526 
00527   signals:
00533     void aboutToShowPage(QWidget *page);
00534 
00535   public slots:
00539     virtual void setFocus();
00540 
00541   protected:
00546     virtual void showEvent( QShowEvent * );
00547 
00556     virtual bool eventFilter( QObject *o, QEvent *e );
00557 
00558   private slots:
00559     bool slotShowPage();
00560     void slotFontChanged();
00561     void slotItemClicked(QListViewItem *it);
00562     void pageGone(QObject *obj); // signal from the added page's "destroyed" signal
00563     void slotReopen(QListViewItem *item);
00564 
00565   protected:
00566     bool showPage( QWidget *w );
00567     void addPageWidget( QFrame *page, const QStringList &items,
00568             const QString &header, const QPixmap &pixmap );
00569     void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, QFrame *page);
00570     QWidget *FindParent();
00571 
00572   private:
00573     bool mValid;
00574 
00575     // Obsolete members. Remove in KDE 4.
00576     QPtrList<QWidget> *mPageList;
00577     QStringList *mTitleList;
00578 
00579     int          mFace;
00580     KListView    *mTreeList;
00581     IconListBox  *mIconList;
00582     QWidgetStack *mPageStack;
00583     QLabel       *mTitleLabel;
00584     QTabWidget   *mTabControl;
00585     QFrame       *mPlainPage;
00586     QWidget      *mSwallowPage;
00587     QWidget      *mActivePageWidget;
00588     KSeparator   *mTitleSep;
00589     QSplitter::ResizeMode mTreeListResizeMode;
00590     bool         mShowIconsInTreeList;
00591     QMap<QListViewItem *, QWidget *> mTreeListToPageStack;
00592     QMap<QListBoxItem *, QWidget *> mIconListToPageStack;
00593     QMap<QString, QPixmap> mFolderIconMap;
00594     QMap<QString, QStringList> mChildrenNames;
00595     QMap<QString, QWidget *> mChildPages;
00596 
00597   public:
00598     class IconListItem;
00599   protected:
00600     virtual void virtual_hook( int id, void* data );
00601   private:
00602     class KJanusWidgetPrivate;
00603     KJanusWidgetPrivate *d;
00604 };
00605 
00606 #endif

kdeui

Skip menu "kdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal