kjanuswidget.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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
00089 class KJanusWidget : public QWidget
00090 {
00091 Q_OBJECT
00092
00093 private:
00094 class IconListBox : public KListBox
00095 {
00096 public:
00097 IconListBox( QWidget *parent=0, const char *name=0, WFlags f=0 );
00098 void updateMinimumHeight();
00099 void updateWidth();
00100 void invalidateHeight();
00101 void invalidateWidth();
00102 void setShowAll( bool showAll );
00103
00104 private:
00105 bool mShowAll;
00106 bool mHeightValid;
00107 bool mWidthValid;
00108 };
00109
00110 public:
00111 enum Face
00112 {
00113 TreeList = 0,
00114 Tabbed,
00115 Plain,
00116 Swallow,
00117 IconList
00118 };
00119
00120 public:
00121
00130 KJanusWidget( QWidget *parent=0, const char *name=0, int face=Plain );
00131
00135 ~KJanusWidget();
00136
00142 virtual bool showPage( int index );
00143
00150 virtual int activePageIndex() const;
00151
00158 virtual bool isValid() const;
00159
00165 virtual int face() const;
00166
00173 virtual QSize minimumSizeHint() const;
00174
00181 virtual QSize sizeHint() const;
00182
00188 virtual QFrame *plainPage();
00189
00209 virtual QFrame *addPage(const QString &item,const QString &header=QString::null,
00210 const QPixmap &pixmap=QPixmap() );
00211
00226 virtual QFrame *addPage(const QStringList &items, const QString &header=QString::null,
00227 const QPixmap &pixmap=QPixmap() );
00228
00248 virtual QVBox *addVBoxPage( const QString &item,
00249 const QString &header=QString::null,
00250 const QPixmap &pixmap=QPixmap() );
00251
00264 virtual QVBox *addVBoxPage( const QStringList &items,
00265 const QString &header=QString::null,
00266 const QPixmap &pixmap=QPixmap() );
00267
00288 virtual QHBox *addHBoxPage( const QString &itemName,
00289 const QString &header=QString::null,
00290 const QPixmap &pixmap=QPixmap() );
00291
00304 virtual QHBox *addHBoxPage( const QStringList &items,
00305 const QString &header=QString::null,
00306 const QPixmap &pixmap=QPixmap() );
00307
00331 virtual QGrid *addGridPage( int n, Orientation dir,
00332 const QString &itemName,
00333 const QString &header=QString::null,
00334 const QPixmap &pixmap=QPixmap() );
00335
00348 virtual QGrid *addGridPage( int n, Orientation dir,
00349 const QStringList &items,
00350 const QString &header=QString::null,
00351 const QPixmap &pixmap=QPixmap() );
00352
00362 void removePage( QWidget *page );
00363
00364
00381 virtual int pageIndex( QWidget *widget ) const;
00382
00392 virtual bool setSwallowedWidget( QWidget *widget );
00393
00404 virtual void setTreeListAutoResize( bool state );
00405
00418 virtual void setShowIconsInTreeList(bool state);
00419
00428 virtual void setRootIsDecorated( bool state );
00429
00442 virtual void setIconListAllVisible( bool state );
00443
00449 virtual void setFolderIcon(const QStringList &path, const QPixmap &pixmap);
00450
00451 signals:
00452 void aboutToShowPage(QWidget *page);
00453
00454 public slots:
00458 virtual void setFocus();
00459
00460 protected:
00465 virtual void showEvent( QShowEvent * );
00466
00475 virtual bool eventFilter( QObject *o, QEvent *e );
00476
00477 private slots:
00478 bool slotShowPage();
00479 void slotFontChanged();
00480 void slotItemClicked(QListViewItem *it);
00481 void pageGone(QObject *obj);
00482
00483 protected:
00484 bool showPage( QWidget *w );
00485 void addPageWidget( QFrame *page, const QStringList &items,
00486 const QString &header, const QPixmap &pixmap );
00487 void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, QFrame *page);
00488 QWidget *FindParent();
00489
00490 private:
00491 bool mValid;
00492
00493 QPtrList<QWidget> *mPageList;
00494 QStringList *mTitleList;
00495
00496 int mFace;
00497 KListView *mTreeList;
00498 IconListBox *mIconList;
00499 QWidgetStack *mPageStack;
00500 QLabel *mTitleLabel;
00501 QTabWidget *mTabControl;
00502 QFrame *mPlainPage;
00503 QWidget *mSwallowPage;
00504 QWidget *mActivePageWidget;
00505 KSeparator *mTitleSep;
00506 QSplitter::ResizeMode mTreeListResizeMode;
00507 bool mShowIconsInTreeList;
00508 QMap<QListViewItem *, QWidget *> mTreeListToPageStack;
00509 QMap<QListBoxItem *, QWidget *> mIconListToPageStack;
00510 QMap<QString, QPixmap> mFolderIconMap;
00511 QMap<QString, QStringList> mChildrenNames;
00512 QMap<QString, QWidget *> mChildPages;
00513
00514 public:
00515 class IconListItem;
00516 protected:
00517 virtual void virtual_hook( int id, void* data );
00518 private:
00519 class KJanusWidgetPrivate;
00520 KJanusWidgetPrivate *d;
00521 };
00522
00523 #endif
This file is part of the documentation for kdelibs Version 3.1.0.