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
00494 QPtrList<QWidget> *mPageList;
00495 QStringList *mTitleList;
00496
00497 int mFace;
00498 KListView *mTreeList;
00499 IconListBox *mIconList;
00500 QWidgetStack *mPageStack;
00501 QLabel *mTitleLabel;
00502 QTabWidget *mTabControl;
00503 QFrame *mPlainPage;
00504 QWidget *mSwallowPage;
00505 QWidget *mActivePageWidget;
00506 KSeparator *mTitleSep;
00507 QSplitter::ResizeMode mTreeListResizeMode;
00508 bool mShowIconsInTreeList;
00509 QMap<QListViewItem *, QWidget *> mTreeListToPageStack;
00510 QMap<QListBoxItem *, QWidget *> mIconListToPageStack;
00511 QMap<QString, QPixmap> mFolderIconMap;
00512 QMap<QString, QStringList> mChildrenNames;
00513 QMap<QString, QWidget *> mChildPages;
00514
00515 public:
00516 class IconListItem;
00517 protected:
00518 virtual void virtual_hook( int id, void* data );
00519 private:
00520 class KJanusWidgetPrivate;
00521 KJanusWidgetPrivate *d;
00522 };
00523
00524 #endif
This file is part of the documentation for kdelibs Version 3.1.5.