author | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
commit | a08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (side-by-side diff) | |
tree | 8ee90d686081c52e7c69b5ce946e9b1a7d690001 /microkde/kdeui/kjanuswidget.h | |
parent | 11edc920afe4f274c0964436633aa632c8288a40 (diff) | |
download | kdepimpi-p1.zip kdepimpi-p1.tar.gz kdepimpi-p1.tar.bz2 |
initial public commit of qt4 portp1
Diffstat (limited to 'microkde/kdeui/kjanuswidget.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/kdeui/kjanuswidget.h | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/microkde/kdeui/kjanuswidget.h b/microkde/kdeui/kjanuswidget.h index 6d3f23d..72465ea 100644 --- a/microkde/kdeui/kjanuswidget.h +++ b/microkde/kdeui/kjanuswidget.h @@ -1,70 +1,76 @@ /* This file is part of the KDE Libraries * Copyright (C) 1999-2000 Espen Sand (espen@kde.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef _KJANUS_WIDGET_H_ #define _KJANUS_WIDGET_H_ -#include <qptrlist.h> +#include <q3ptrlist.h> #include <qwidget.h> #include <qmap.h> -#include <qgrid.h> +#include <q3grid.h> +//Added by qt3to4: +#include <QShowEvent> +#include <Q3Frame> +#include <QPixmap> +#include <QLabel> +#include <QEvent> #include <klistbox.h> /*US #include <qptrlist.h> #include <qpixmap.h> #include <qsplitter.h> #include <qstringlist.h> #include <qmap.h> */ class KSeparator; class KListView; -class QWidgetStack; +class Q3WidgetStack; class QLabel; class QTabWidget; -class QListViewItem; -class QVBox; -class QHBox; +class Q3ListViewItem; +class Q3VBox; +class Q3HBox; /** * Provides a number of ready to use layouts (faces). It is used * as an internal widget in @ref KDialogBase, but can also used as a * widget of its own. * * It provides TreeList, IconList, Tabbed, Plain and Swallow layouts. * * The TreeList face provides a list in the left area and pages in the * right. The area are separated by a movable splitter. The style is somewhat * similar to the layout in the Control Center. A page is raised by * selecting the corresponding tree list item. * * The IconList face provides an icon list in the left area and pages in the * right. For each entry the Icon is on top with the text below. The style * is somewhat similar to the layout of the Eudora configuation dialog box. * A page is raised by selecting the corresponding icon list item. The * preferred icon size is 32x32 pixels. * * The Tabbed face is a common tabbed widget. The procedure for creating a * page is similar for creating a TreeList. This has the advantage that if * your widget contain too many pages it is trivial to convert it into a * TreeList. Just change the face in the KJanusWidget constructor to * KJanusWidget::TreeList and you have a tree list layout instead. @@ -81,49 +87,49 @@ class QHBox; * * For all modes it is important that you specify the @ref QWidget::minimumSize() * on the page, plain widget or the swallowed widget. If you use a QLayout * on the page, plain widget or the swallowed widget this will be taken care * of automatically. The size is used when the KJanusWidget determines its * own minimum size. You get the minimum size by using the * @ref #minimumSizeHint() or @ref #sizeHint() methods. * * Pages that have been added in TreeList, IconList or Tabbed mode can be * removed by simply deleting the page. However, it would be preferable to use * the QObject::deleteLater() function on the page as the main event loop * may have optimized UI update events of the page by scheduling them for later. * * @short Easy to use widget with many layouts * @author Espen Sand (espen@kde.org) */ class KJanusWidget : public QWidget { Q_OBJECT private: class IconListBox : public KListBox { public: - IconListBox( QWidget *parent=0, const char *name=0, WFlags f=0 ); + IconListBox( QWidget *parent=0, const char *name=0, Qt::WFlags f=0 ); void updateMinimumHeight(); void updateWidth(); void invalidateHeight(); void invalidateWidth(); void setShowAll( bool showAll ); private: bool mShowAll; bool mHeightValid; bool mWidthValid; }; public: enum Face { TreeList = 0, Tabbed, Plain, Swallow, IconList }; public: @@ -172,211 +178,211 @@ class KJanusWidget : public QWidget */ virtual int face() const; /** * Returns the minimum size that must be made available for the widget * so that UIs can be displayed properly * * @return The minimum size. */ virtual QSize minimumSizeHint() const; /** * Returns the recommended size for the widget in order to be displayed * properly. * * @return The recommended size. */ virtual QSize sizeHint() const; /** * Returns the empty widget that is available in Plain mode. * * @return The widget or 0 if the face in not Plain. */ - virtual QFrame *plainPage(); + virtual Q3Frame *plainPage(); /** * Add a new page when the class is used in TreeList, IconList or Tabbed * mode. The returned widget is empty and you must add your widgets * as children to this widget. In most cases you must create a layout * manager and associate it with this widget as well. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. * * @param item String used in the list or Tab item. * @param header A longer string used in TreeList and IconList mode to * describe the contents of a page. If empty, the item string * will be used instead. * @param pixmap Used in IconList mode or in TreeList mode. You should * prefer a pixmap with size 32x32 pixels. * * @return The empty page or 0 if the face is not TreeList, IconList or * Tabbed. */ - virtual QFrame *addPage(const QString &item,const QString &header=QString::null, + virtual Q3Frame *addPage(const QString &item,const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * This is like addPage just above, with the difference that the first * element is a list of strings. These strings are used to form a path * of folders down to the given page. The initial elements are names * for the folders, while the last element is the name of the page. * Note: This does yet only work for the TreeList face. Later this may * be added for the IconList face too. In other faces than the * TreeList, all the strings except the last one is ignored. * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. **/ - virtual QFrame *addPage(const QStringList &items, const QString &header=QString::null, + virtual Q3Frame *addPage(const QStringList &items, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * Add a new page when the class is used in TreeList, IconList or Tabbed * mode. The returned widget is empty and you must add your widgets * as children to this widget. The returned widget is a @ref QVBox * so it contains a QVBoxLayout layout that lines up the child widgets * are vertically. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. * * @param item String used in the list or Tab item. * @param header A longer string used in TreeList and IconList mode to * describe the contents of a page. If empty, the item string * will be used instead. * @param pixmap Used in IconList mode or in TreeList mode. You should * prefer a pixmap with size 32x32 pixels. * * @return The empty page or 0 if the face is not TreeList, IconList or * Tabbed. */ - virtual QVBox *addVBoxPage( const QString &item, + virtual Q3VBox *addVBoxPage( const QString &item, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * This is like addVBoxPage just above, with the difference that the first * element is a list of strings. These strings are used to form a path * of folders down to the given page. The initial elements are names * for the folders, while the last element is the name of the page. * Note: This does yet only work for the TreeList face. Later this may * be added for the IconList face too. In other faces than the * TreeList, all the strings except the last one is ignored. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. **/ - virtual QVBox *addVBoxPage( const QStringList &items, + virtual Q3VBox *addVBoxPage( const QStringList &items, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * Add a new page when the class is used in TreeList, IconList or Tabbed * mode. The returned widget is empty and you must add your widgets * as children to this widget. The returned widget is a @ref QHBox * so it contains a QHBoxLayout layout that lines up the child widgets * are horizontally. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. * * @param item String used in the list or Tab item. * @param header A longer string used in TreeList and IconList mode to * describe the contents of a page. If empty, the item string * will be used instead. * @param pixmap Used in IconList mode or in TreeList mode. You should * prefer a pixmap with size 32x32 pixels. * * @return The empty page or 0 if the face is not TreeList, IconList or * Tabbed. */ - virtual QHBox *addHBoxPage( const QString &itemName, + virtual Q3HBox *addHBoxPage( const QString &itemName, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * This is like addHBoxPage just above, with the difference that the first * element is a list of strings. These strings are used to form a path * of folders down to the given page. The initial elements are names * for the folders, while the last element is the name of the page. * Note: This does yet only work for the TreeList face. Later this may * be added for the IconList face too. In other faces than the * TreeList, all the strings except the last one is ignored. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. **/ - virtual QHBox *addHBoxPage( const QStringList &items, + virtual Q3HBox *addHBoxPage( const QStringList &items, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * Add a new page when the class is used in either TreeList or Tabbed * mode. The returned widget is empty and you must add your widgets * as children to this widget. The returned widget is a @ref QGrid * so it contains a QGridLayout layout that places up the child widgets * in a grid. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. * * @param n Specifies the number of columns if 'dir' is QGrid::Horizontal * or the number of rows if 'dir' is QGrid::Vertical. * @param dir Can be QGrid::Horizontal or QGrid::Vertical. * @param item String used in the list or Tab item. * @param header A longer string used in TreeList and IconList mode to * describe the contents of a page. If empty, the item string * will be used instead. * @param pixmap Used in IconList mode or in TreeList mode. You should * prefer a pixmap with size 32x32 pixels. * * @return The empty page or 0 if the face is not TreeList, IconList or * Tabbed. */ //US changed Orientation into Direction for compatibility - virtual QGrid *addGridPage( int n, QGrid::Direction dir, + virtual Q3Grid *addGridPage( int n, Qt::Orientation dir, const QString &itemName, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * This is like addGridPage just above, with the difference that the first * element is a list of strings. These strings are used to form a path * of folders down to the given page. The initial elements are names * for the folders, while the last element is the name of the page. * Note: This does yet only work for the TreeList face. Later this may * be added for the IconList face too. In other faces than the * TreeList, all the strings except the last one is ignored. * * Deleting the returned frame will cause the listitem or tab to be * removed (you can re-add a page with the same name later. **/ //US changed Orientation into Direction for compatibility - virtual QGrid *addGridPage( int n, QGrid::Direction dir, + virtual Q3Grid *addGridPage( int n, Qt::Orientation dir, const QStringList &items, const QString &header=QString::null, const QPixmap &pixmap=QPixmap() ); /** * @short Removes a page created with @ref addPage, @ref addVBoxPage, * @ref addHBoxPage or @ref addGridPage. If the page has already * been deleted or has already been removed, nothing happens. The widget * itself is not deleted. * * @param page The widget returned by @ref addPage , @ref addVBoxPage , * @ref addHBoxPage or @ref addGridPage . */ void removePage( QWidget *page ); /** * Returns the index of a page created with @ref addPage , * @ref addVBoxPage , @ref addHBoxPage or @ref addGridPage . * You can can compare this index with the value returned from * @ref activePageIndex if you need to do some page specific actions * in your code. * * The returned index will never change so you can safely use this @@ -496,70 +502,70 @@ class KJanusWidget : public QWidget * Give the keyboard input focus to the widget. */ virtual void setFocus(); protected: /** * Reimplemented to handle the splitter width when the the face * is TreeList */ virtual void showEvent( QShowEvent * ); /** * This function is used internally when in IconList mode. If you * reimplement this class a make your own event filter, make sure to * call this function from your filter. * * @param o Object that has received an event. * @param e The event. */ virtual bool eventFilter( QObject *o, QEvent *e ); private slots: bool slotShowPage(); //US not yet implemented void slotFontChanged(); - void slotItemClicked(QListViewItem *it); + void slotItemClicked(Q3ListViewItem *it); void pageGone( QObject *obj); // signal from the added page's "destroyed" signal - void slotReopen(QListViewItem *item); + void slotReopen(Q3ListViewItem *item); protected: bool showPage( QWidget *w ); - void addPageWidget( QFrame *page, const QStringList &items, + void addPageWidget( Q3Frame *page, const QStringList &items, const QString &header, const QPixmap &pixmap ); - void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, QFrame *page); + void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, Q3Frame *page); QWidget *FindParent(); private: bool mValid; // Obsolete members. Remove in KDE 4. - QPtrList<QWidget> *mPageList; + Q3PtrList<QWidget> *mPageList; QStringList *mTitleList; int mFace; KListView *mTreeList; IconListBox *mIconList; - QWidgetStack *mPageStack; + Q3WidgetStack *mPageStack; QLabel *mTitleLabel; QTabWidget *mTabControl; - QFrame *mPlainPage; + Q3Frame *mPlainPage; QWidget *mSwallowPage; QWidget *mActivePageWidget; KSeparator *mTitleSep; //US QSplitter::ResizeMode mTreeListResizeMode; bool mShowIconsInTreeList; - QMap<QListViewItem *, QWidget *> mTreeListToPageStack; - QMap<QListBoxItem *, QWidget *> mIconListToPageStack; + QMap<Q3ListViewItem *, QWidget *> mTreeListToPageStack; + QMap<Q3ListBoxItem *, QWidget *> mIconListToPageStack; QMap<QString, QPixmap> mFolderIconMap; QMap<QString, QStringList> mChildrenNames; QMap<QString, QWidget *> mChildPages; public: class IconListItem; protected: virtual void virtual_hook( int id, void* data ); private: class KJanusWidgetPrivate; KJanusWidgetPrivate *d; }; #endif |