kdeui Library API Documentation

kdialogbase.h

00001 /*
00002  *  This file is part of the KDE Libraries
00003  *  Copyright (C) 1999-2001 Mirko Boehm (mirko@kde.org) and
00004  *  Espen Sand (espen@kde.org)
00005  *  Holger Freyther <freyther@kde.org>
00006  *
00007  *  This library is free software; you can redistribute it and/or
00008  *  modify it under the terms of the GNU Library General Public
00009  *  License as published by the Free Software Foundation; either
00010  *  version 2 of the License, or (at your option) any later version.
00011  *
00012  *  This library is distributed in the hope that it will be useful,
00013  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  *  Library General Public License for more details.
00016  *
00017  *  You should have received a copy of the GNU Library General Public License
00018  *  along with this library; see the file COPYING.LIB.  If not, write to
00019  *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020  *  Boston, MA 02111-1307, USA.
00021  *
00022  */
00023 #ifndef _KDIALOG_BASE_H_
00024 #define _KDIALOG_BASE_H_
00025 
00026 #include <kdialog.h>
00027 #include <kjanuswidget.h>
00028 #include <kguiitem.h>
00029 #include <kstdguiitem.h>
00030 #include <qptrlist.h>
00031 
00032 class QPushButton;
00033 class KSeparator;
00034 class KURLLabel;
00035 class QBoxLayout;
00036 class QPixmap;
00037 class KGuiItem;
00042 class KDialogBaseButton;
00043 
00048 class KDialogBaseTile;
00049 
00193 class KDEUI_EXPORT KDialogBase : public KDialog
00194 {
00195   Q_OBJECT
00196 
00197   public:
00198 
00218     enum ButtonCode
00219     {
00220       Help    = 0x00000001,
00221       Default = 0x00000002,
00222       Ok      = 0x00000004,
00223       Apply   = 0x00000008,
00224       Try     = 0x00000010,
00225       Cancel  = 0x00000020,
00226       Close   = 0x00000040,
00227       User1   = 0x00000080,
00228       User2   = 0x00000100,
00229       User3   = 0x00000200,
00230       No      = 0x00000080,
00231       Yes     = 0x00000100,
00232       Details = 0x00000400,
00233       Filler  = 0x40000000,
00234       Stretch = 0x80000000,
00235       NoDefault             
00236     };
00237 
00238     enum ActionButtonStyle
00239     {
00240       ActionStyle0=0, // KDE std
00241       ActionStyle1,
00242       ActionStyle2,
00243       ActionStyle3,
00244       ActionStyle4,
00245       ActionStyleMAX
00246     };
00247 
00258     enum DialogType
00259     {
00260       TreeList  = KJanusWidget::TreeList,
00261       Tabbed    = KJanusWidget::Tabbed,
00262       Plain     = KJanusWidget::Plain,
00263       Swallow   = KJanusWidget::Swallow,
00264       IconList  = KJanusWidget::IconList
00265     };
00266 
00267   public:
00268 
00291     KDialogBase( QWidget *parent=0, const char *name=0, bool modal=true,
00292          const QString &caption=QString::null,
00293          int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
00294          bool separator=false,
00295          const KGuiItem &user1=KGuiItem(),
00296          const KGuiItem &user2=KGuiItem(),
00297          const KGuiItem &user3=KGuiItem() );
00298 
00326     KDialogBase( int dialogFace, const QString &caption,
00327          int buttonMask, ButtonCode defaultButton,
00328          QWidget *parent=0, const char *name=0, bool modal=true,
00329          bool separator=false,
00330          const KGuiItem &user1=KGuiItem(),
00331          const KGuiItem &user2=KGuiItem(),
00332          const KGuiItem &user3=KGuiItem() );
00333 
00334 
00362     KDialogBase( KDialogBase::DialogType dialogFace, WFlags f,
00363          QWidget *parent=0, const char *name=0, bool modal=true,
00364          const QString &caption=QString::null,
00365          int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
00366          bool separator=false,
00367          const KGuiItem &user1=KGuiItem(),
00368          const KGuiItem &user2=KGuiItem(),
00369          const KGuiItem &user3=KGuiItem() );
00370 
00402     KDialogBase( const QString &caption, int buttonMask=Yes|No|Cancel,
00403          ButtonCode defaultButton=Yes, ButtonCode escapeButton=Cancel,
00404          QWidget *parent=0, const char *name=0,
00405          bool modal=true, bool separator=false,
00406          const KGuiItem &yes = KStdGuiItem::yes(), // i18n("&Yes")
00407          const KGuiItem &no = KStdGuiItem::no(), // i18n("&No"),
00408          const KGuiItem &cancel = KStdGuiItem::cancel() // i18n("&Cancel")
00409          );
00410 
00414     ~KDialogBase();
00415 
00426     void setButtonBoxOrientation( int orientation );
00427 
00439     void setEscapeButton( ButtonCode id );
00440 
00441 
00449     virtual void adjustSize();
00450     virtual QSize sizeHint() const;
00451     virtual QSize minimumSizeHint() const;
00452 
00463     QFrame *plainPage();
00464 
00492     QFrame  *addPage( const QString &itemName,
00493               const QString &header=QString::null,
00494               const QPixmap &pixmap=QPixmap() );
00495 
00507     QFrame  *addPage( const QStringList &items,
00508               const QString &header=QString::null,
00509               const QPixmap &pixmap=QPixmap() );
00510 
00535     QVBox *addVBoxPage( const QString &itemName,
00536             const QString &header=QString::null,
00537             const QPixmap &pixmap=QPixmap() );
00538 
00550     QVBox *addVBoxPage( const QStringList &items,
00551             const QString &header=QString::null,
00552             const QPixmap &pixmap=QPixmap() );
00553 
00572     QHBox *addHBoxPage( const QString &itemName,
00573             const QString &header=QString::null,
00574             const QPixmap &pixmap=QPixmap() );
00575 
00587     QHBox *addHBoxPage( const QStringList &items,
00588             const QString &header=QString::null,
00589             const QPixmap &pixmap=QPixmap() );
00590 
00611     QGrid *addGridPage( int n, Orientation dir,
00612             const QString &itemName,
00613             const QString &header=QString::null,
00614             const QPixmap &pixmap=QPixmap() );
00615 
00616 
00628     QGrid *addGridPage( int n, Orientation dir,
00629             const QStringList &items,
00630             const QString &header=QString::null,
00631             const QPixmap &pixmap=QPixmap() );
00632 
00633 
00640     void setFolderIcon(const QStringList &path,const QPixmap &pixmap);
00641 
00655     QFrame *makeMainWidget();
00656 
00670     QVBox *makeVBoxMainWidget();
00671 
00685     QHBox *makeHBoxMainWidget();
00686 
00704     QGrid *makeGridMainWidget( int n, Orientation dir );
00705 
00706 
00711     void enableButtonSeparator( bool state );
00712 
00723     void showButton( ButtonCode id, bool state );
00724 
00733     void showButtonOK( bool state );
00734 
00743     void showButtonApply( bool state );
00744 
00751     void showButtonCancel( bool state );
00752 
00763     bool showPage( int index );
00764 
00773     int activePageIndex() const;
00774 
00775 
00792     int pageIndex( QWidget *widget ) const;
00793 
00794 
00807     void setMainWidget( QWidget *widget );
00808 
00814     QWidget *mainWidget();
00815 
00823     void disableResize();
00824 
00836     void setInitialSize( const QSize &s, bool noResize=false );
00837 
00848     void incInitialSize( const QSize &s, bool noResize=false );
00849 
00857    QSize configDialogSize( const QString& groupName ) const;
00858 
00868    QSize configDialogSize( KConfig& config, const QString& groupName ) const;
00869 
00879    void saveDialogSize( const QString& groupName, bool global=false );
00880 
00891    void saveDialogSize( KConfig& config, const QString& groupName,
00892                  bool global=false ) const;
00893 
00903     void setButtonOK( const KGuiItem &item = KStdGuiItem::ok() );
00904 
00920     void setButtonOKText( const QString &text=QString::null,
00921               const QString &tooltip=QString::null,
00922               const QString &quickhelp=QString::null ) KDE_DEPRECATED;
00923 
00933     void setButtonApply( const KGuiItem &item = KStdGuiItem::apply() );
00934 
00950     void setButtonApplyText( const QString &text=QString::null,
00951                  const QString &tooltip=QString::null,
00952                  const QString &quickhelp=QString::null ) KDE_DEPRECATED;
00953 
00963     void setButtonCancel( const KGuiItem &item = KStdGuiItem::cancel() );
00964 
00978     void setButtonCancelText( const QString &text=QString::null,
00979                   const QString &tooltip=QString::null,
00980                   const QString &quickhelp=QString::null ) KDE_DEPRECATED;
00981 
00988     void setButtonText( ButtonCode id, const QString &text );
00989 
00996     void setButtonTip( ButtonCode id, const QString &text );
00997 
01004     void setButtonWhatsThis( ButtonCode id, const QString &text );
01005 
01017     void setButtonGuiItem( ButtonCode id, const KGuiItem &item );
01018 
01029      void setTreeListAutoResize( bool state );
01030 
01043     void setShowIconsInTreeList(bool state);
01044 
01053     void setRootIsDecorated( bool state );
01054 
01068     void unfoldTreeList( bool persist = false );
01069 
01078     void addWidgetBelowList( QWidget * widget );
01079 
01090     void addButtonBelowList( const QString & text, QObject * recv, const char * slot );
01091 
01103     void addButtonBelowList( const KGuiItem & guiitem, QObject * recv, const char * slot );
01104 
01117     void setIconListAllVisible( bool state );
01118 
01124     static bool haveBackgroundTile();
01125 
01132     static const QPixmap *backgroundTile();
01137     static const QPixmap *getBackgroundTile() KDE_DEPRECATED;
01138 
01146     static void setBackgroundTile( const QPixmap *pix );
01147 
01153     void showTile( bool state );
01154 
01166     void  getBorderWidths( int& ulx, int& uly, int& lrx, int& lry ) const KDE_DEPRECATED;
01167 
01179     QRect getContentsRect() const KDE_DEPRECATED;
01180 
01198     QSize calculateSize( int w, int h ) const;
01199 
01208     QString helpLinkText() const;
01209 
01223     QPushButton *actionButton( ButtonCode id );
01224 
01225   public slots:
01232     void enableButton( ButtonCode id, bool state );
01233 
01239     void enableButtonOK( bool state );
01240 
01246     void enableButtonApply( bool state );
01247 
01253     void enableButtonCancel( bool state );
01254 
01260     void enableLinkedHelp( bool state );
01261 
01271     void delayedDestruct();
01272 
01281     void setHelpLinkText( const QString &text );
01282 
01295     void setHelp( const QString &anchor,
01296           const QString &appname = QString::null );
01297 
01301     void helpClickedSlot( const QString & );
01302 
01306     void setDetails(bool showDetails);
01307 
01314     void setDetailsWidget(QWidget *detailsWidget);
01315 
01320     void updateBackground();
01321 
01330     void cancel();
01331 
01332   signals:
01337     void helpClicked();
01338 
01343     void defaultClicked();
01344 
01345 
01350     void user3Clicked();
01351 
01356     void user2Clicked();
01357 
01362     void user1Clicked();
01363 
01368     void applyClicked();
01369 
01374     void tryClicked();
01375 
01380     void okClicked();
01381 
01386     void yesClicked();
01387 
01392     void noClicked();
01393 
01398     void cancelClicked();
01399 
01404     void closeClicked();
01405 
01410     void apply();
01411 
01415     void backgroundChanged();
01416 
01424     void hidden();
01425 
01440     void finished();
01441 
01446     void aboutToShowDetails();
01447 
01452     void aboutToShowPage(QWidget *page);
01453 
01454   protected:
01460     virtual void keyPressEvent( QKeyEvent *e );
01461 
01466     virtual void hideEvent( QHideEvent * );
01467 
01474     virtual void closeEvent( QCloseEvent *e );
01475 
01476   protected slots:
01481     virtual void slotHelp();
01482 
01486     virtual void slotDefault();
01487 
01492     virtual void slotDetails();
01493 
01497     virtual void slotUser3();
01498 
01502     virtual void slotUser2();
01503 
01507     virtual void slotUser1();
01508 
01513     virtual void slotOk();
01514 
01518     virtual void slotApply();
01519 
01523     virtual void slotTry();
01524 
01529     virtual void slotYes();
01530 
01535     virtual void slotNo();
01536 
01542     virtual void slotCancel();
01543 
01548     virtual void slotClose();
01549 
01555     virtual void applyPressed();
01556 
01560     void updateGeometry();
01561 
01569     void slotDelayedDestruct();
01570 
01571   private:
01575     void setupLayout();
01576 
01582     void makeRelay();
01583 
01596     void makeButtonBox( int mask, ButtonCode defaultButton,
01597             const KGuiItem &user1 = KGuiItem(),
01598             const KGuiItem &user2 = KGuiItem(),
01599             const KGuiItem &user3 = KGuiItem() );
01600 
01608     void setButtonFocus( QPushButton *p, bool isDefault, bool isFocus );
01609 
01615     void printMakeMainWidgetError();
01616 
01617   private slots:
01623     void setButtonStyle( int style );
01624 
01625 
01626   private:
01627     QBoxLayout   *mTopLayout;
01628     QWidget      *mMainWidget;
01629     KURLLabel    *mUrlHelp;
01630     KJanusWidget *mJanus;
01631     KSeparator   *mActionSep;
01632 
01633     bool mIsActivated;
01634 
01635     QString mAnchor;
01636     QString mHelpApp;
01637     QString mHelpLinkText;
01638 
01639     static KDialogBaseTile *mTile;
01640     bool   mShowTile;
01641 
01642     bool mMessageBoxMode;
01643     int  mButtonOrientation;
01644     ButtonCode mEscapeButton;
01645 
01646   protected:
01647     virtual void virtual_hook( int id, void* data );
01648   private:
01649     class KDialogBasePrivate;
01650     KDialogBasePrivate* const d;
01651 };
01652 
01653 #endif
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed May 4 06:54:42 2005 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003