00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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
#include <kdemacros.h>
00032
00033
class QPushButton;
00034
class KSeparator;
00035
class KURLLabel;
00036
class QBoxLayout;
00037
class QPixmap;
00038
class KGuiItem;
00043
class KDialogBaseButton;
00044
00049
class KDialogBaseTile;
00050
00193 class 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,
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(),
00407
const KGuiItem &no = KStdGuiItem::no(),
00408
const KGuiItem &cancel = KStdGuiItem::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
00902
void setButtonOK( const
KGuiItem &item =
KStdGuiItem::ok() );
00903
00919
void setButtonOKText( const
QString &text=
QString::null,
00920 const
QString &tooltip=
QString::null,
00921 const
QString &quickhelp=
QString::null ) KDE_DEPRECATED;
00922
00931
void setButtonApply( const
KGuiItem &item =
KStdGuiItem::apply() );
00932
00948
void setButtonApplyText( const
QString &text=
QString::null,
00949 const
QString &tooltip=
QString::null,
00950 const
QString &quickhelp=
QString::null ) KDE_DEPRECATED;
00951
00960
void setButtonCancel( const
KGuiItem &item =
KStdGuiItem::cancel() );
00961
00975
void setButtonCancelText( const
QString &text=
QString::null,
00976 const
QString &tooltip=
QString::null,
00977 const
QString &quickhelp=
QString::null ) KDE_DEPRECATED;
00978
00985
void setButtonText( ButtonCode
id, const
QString &text );
00986
00993
void setButtonTip( ButtonCode
id, const
QString &text );
00994
01001
void setButtonWhatsThis( ButtonCode
id, const
QString &text );
01002
01014
void setButtonGuiItem( ButtonCode
id, const
KGuiItem &item );
01015
01026
void setTreeListAutoResize(
bool state );
01027
01040
void setShowIconsInTreeList(
bool state);
01041
01050
void setRootIsDecorated(
bool state );
01051
01065
void unfoldTreeList(
bool persist = false );
01066
01075
void addWidgetBelowList(
QWidget * widget );
01076
01087
void addButtonBelowList( const
QString & text,
QObject * recv, const
char * slot );
01088
01100
void addButtonBelowList( const
KGuiItem & guiitem,
QObject * recv, const
char * slot );
01101
01114
void setIconListAllVisible(
bool state );
01115
01121 static
bool haveBackgroundTile();
01122
01129 static const QPixmap *backgroundTile();
01134 static const QPixmap *getBackgroundTile() KDE_DEPRECATED;
01135
01143 static
void setBackgroundTile( const QPixmap *pix );
01144
01150
void showTile(
bool state );
01151
01163
void getBorderWidths(
int& ulx,
int& uly,
int& lrx,
int& lry ) const KDE_DEPRECATED;
01164
01176
QRect getContentsRect() const KDE_DEPRECATED;
01177
01195
QSize calculateSize(
int w,
int h ) const;
01196
01205
QString helpLinkText() const;
01206
01220
QPushButton *actionButton( ButtonCode
id );
01221
01222 public slots:
01229
void enableButton( ButtonCode
id,
bool state );
01230
01236
void enableButtonOK(
bool state );
01237
01243
void enableButtonApply(
bool state );
01244
01250
void enableButtonCancel(
bool state );
01251
01257
void enableLinkedHelp(
bool state );
01258
01268
void delayedDestruct();
01269
01278
void setHelpLinkText( const
QString &text );
01279
01292
void setHelp( const
QString &anchor,
01293 const
QString &appname =
QString::null );
01294
01298
void helpClickedSlot( const
QString & );
01299
01303
void setDetails(
bool showDetails);
01304
01311
void setDetailsWidget(
QWidget *detailsWidget);
01312
01317
void updateBackground();
01318
01327
void cancel();
01328
01329 signals:
01334
void helpClicked();
01335
01340
void defaultClicked();
01341
01342
01347
void user3Clicked();
01348
01353
void user2Clicked();
01354
01359
void user1Clicked();
01360
01365
void applyClicked();
01366
01371
void tryClicked();
01372
01377
void okClicked();
01378
01383
void yesClicked();
01384
01389
void noClicked();
01390
01395
void cancelClicked();
01396
01401
void closeClicked();
01402
01407
void apply();
01408
01412
void backgroundChanged();
01413
01421
void hidden();
01422
01437
void finished();
01438
01443
void aboutToShowDetails();
01444
01449
void aboutToShowPage(
QWidget *page);
01450
01451 protected:
01457 virtual
void keyPressEvent(
QKeyEvent *e );
01458
01463 virtual
void hideEvent(
QHideEvent * );
01464
01471 virtual
void closeEvent(
QCloseEvent *e );
01472
01473 protected slots:
01478 virtual
void slotHelp();
01479
01483 virtual
void slotDefault();
01484
01489 virtual
void slotDetails();
01490
01494 virtual
void slotUser3();
01495
01499 virtual
void slotUser2();
01500
01504 virtual
void slotUser1();
01505
01510 virtual
void slotOk();
01511
01515 virtual
void slotApply();
01516
01520 virtual
void slotTry();
01521
01526 virtual
void slotYes();
01527
01532 virtual
void slotNo();
01533
01539 virtual
void slotCancel();
01540
01545 virtual
void slotClose();
01546
01552 virtual
void applyPressed();
01553
01557
void updateGeometry();
01558
01566
void slotDelayedDestruct();
01567
01568 private:
01572
void setupLayout();
01573
01579
void makeRelay();
01580
01593
void makeButtonBox(
int mask, ButtonCode defaultButton,
01594 const
KGuiItem &user1 =
KGuiItem(),
01595 const KGuiItem &user2 = KGuiItem(),
01596 const KGuiItem &user3 = KGuiItem() );
01597
01605
void setButtonFocus(
QPushButton *p,
bool isDefault,
bool isFocus );
01606
01612
void printMakeMainWidgetError();
01613
01614 private slots:
01620
void setButtonStyle(
int style );
01621
01622
01623 private:
01624
QBoxLayout *mTopLayout;
01625
QWidget *mMainWidget;
01626
KURLLabel *mUrlHelp;
01627
KJanusWidget *mJanus;
01628
KSeparator *mActionSep;
01629
01630
bool mIsActivated;
01631
01632 QString mAnchor;
01633 QString mHelpApp;
01634 QString mHelpLinkText;
01635
01636 static
KDialogBaseTile *mTile;
01637
bool mShowTile;
01638
01639
bool mMessageBoxMode;
01640
int mButtonOrientation;
01641 ButtonCode mEscapeButton;
01642
01643 protected:
01644 virtual
void virtual_hook(
int id,
void* data );
01645 private:
01646 class KDialogBasePrivate;
01647 KDialogBasePrivate *d;
01648 };
01649
01650 #endif