00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KPREFSDIALOG_H
00024 #define KPREFSDIALOG_H
00025
00026 #include <tqptrlist.h>
00027 #include <tqlineedit.h>
00028 #include <tqvaluelist.h>
00029 #include <tqdatetimeedit.h>
00030
00031 #include <kdialogbase.h>
00032 #include <kcmodule.h>
00033 #include <kconfigskeleton.h>
00034 #include <kfile.h>
00035 #include <kdepimmacros.h>
00036
00037
00038 class KColorButton;
00039 class TQCheckBox;
00040 class TQComboBox;
00041 class TQLabel;
00042 class TQSpinBox;
00043 class TQButtonGroup;
00044 class TQTimeEdit;
00045 class KTimeEdit;
00046 class KDateEdit;
00047 class KURLRequester;
00048
00058 class KDE_EXPORT KPrefsWid : public TQObject
00059 {
00060 Q_OBJECT
00061 TQ_OBJECT
00062 public:
00067 virtual void readConfig() = 0;
00072 virtual void writeConfig() = 0;
00073
00077 virtual TQValueList<TQWidget *> widgets() const;
00078
00079 signals:
00083 void changed();
00084 };
00085
00092 class KDE_EXPORT KPrefsWidBool : public KPrefsWid
00093 {
00094 public:
00101 KPrefsWidBool( KConfigSkeleton::ItemBool *item, TQWidget *parent );
00102
00106 TQCheckBox *checkBox();
00107
00108 void readConfig();
00109 void writeConfig();
00110
00111 TQValueList<TQWidget *> widgets() const;
00112
00113 private:
00114 KConfigSkeleton::ItemBool *mItem;
00115
00116 TQCheckBox *mCheck;
00117 };
00118
00126 class KDE_EXPORT KPrefsWidInt : public KPrefsWid
00127 {
00128 public:
00136 KPrefsWidInt( KConfigSkeleton::ItemInt *item, TQWidget *parent );
00137
00141 TQLabel *label();
00142
00146 TQSpinBox *spinBox();
00147
00148 void readConfig();
00149 void writeConfig();
00150
00151 TQValueList<TQWidget *> widgets() const;
00152
00153 private:
00154 KConfigSkeleton::ItemInt *mItem;
00155
00156 TQLabel *mLabel;
00157 TQSpinBox *mSpin;
00158 };
00159
00167 class KDE_EXPORT KPrefsWidTime : public KPrefsWid
00168 {
00169 public:
00176 KPrefsWidTime( KConfigSkeleton::ItemDateTime *item, TQWidget *parent );
00177
00181 TQLabel *label();
00185 KTimeEdit *timeEdit();
00186
00187 void readConfig();
00188 void writeConfig();
00189
00190 private:
00191 KConfigSkeleton::ItemDateTime *mItem;
00192
00193 TQLabel *mLabel;
00194 KTimeEdit *mTimeEdit;
00195 };
00196
00204 class KDE_EXPORT KPrefsWidDuration : public KPrefsWid
00205 {
00206 public:
00214 KPrefsWidDuration( KConfigSkeleton::ItemDateTime *item, TQWidget *parent );
00215
00219 TQLabel *label();
00223 TQTimeEdit *timeEdit();
00224
00225 void readConfig();
00226 void writeConfig();
00227
00228 private:
00229 KConfigSkeleton::ItemDateTime *mItem;
00230
00231 TQLabel *mLabel;
00232 TQTimeEdit *mTimeEdit;
00233 };
00234
00242 class KDE_EXPORT KPrefsWidDate : public KPrefsWid
00243 {
00244 public:
00251 KPrefsWidDate( KConfigSkeleton::ItemDateTime *item, TQWidget *parent );
00252
00256 TQLabel *label();
00260 KDateEdit *dateEdit();
00261
00262 void readConfig();
00263 void writeConfig();
00264
00265 private:
00266 KConfigSkeleton::ItemDateTime *mItem;
00267
00268 TQLabel *mLabel;
00269 KDateEdit *mDateEdit;
00270 };
00271
00279 class KDE_EXPORT KPrefsWidColor : public KPrefsWid
00280 {
00281 Q_OBJECT
00282 TQ_OBJECT
00283 public:
00291 KPrefsWidColor( KConfigSkeleton::ItemColor *item, TQWidget *parent );
00295 ~KPrefsWidColor();
00296
00300 TQLabel *label();
00304 KColorButton *button();
00305
00306 void readConfig();
00307 void writeConfig();
00308
00309 private:
00310 KConfigSkeleton::ItemColor *mItem;
00311
00312 TQLabel *mLabel;
00313 KColorButton *mButton;
00314 };
00315
00322 class KDE_EXPORT KPrefsWidFont : public KPrefsWid
00323 {
00324 Q_OBJECT
00325 TQ_OBJECT
00326 public:
00335 KPrefsWidFont( KConfigSkeleton::ItemFont *item,
00336 TQWidget *parent, const TQString &sampleText );
00340 ~KPrefsWidFont();
00341
00345 TQLabel *label();
00349 TQFrame *preview();
00353 TQPushButton *button();
00354
00355 void readConfig();
00356 void writeConfig();
00357
00358 protected slots:
00359 void selectFont();
00360
00361 private:
00362 KConfigSkeleton::ItemFont *mItem;
00363
00364 TQLabel *mLabel;
00365 TQLabel *mPreview;
00366 TQPushButton *mButton;
00367 };
00368
00380 class KDE_EXPORT KPrefsWidRadios : public KPrefsWid
00381 {
00382 public:
00390 KPrefsWidRadios( KConfigSkeleton::ItemEnum *item, TQWidget *parent );
00391 virtual ~KPrefsWidRadios();
00392
00399 void addRadio( const TQString &text,
00400 const TQString &whatsThis = TQString() );
00401
00405 TQButtonGroup *groupBox();
00406
00407 void readConfig();
00408 void writeConfig();
00409
00410 TQValueList<TQWidget *> widgets() const;
00411
00412 private:
00413 KConfigSkeleton::ItemEnum *mItem;
00414
00415 TQButtonGroup *mBox;
00416 };
00417
00428 class KDE_EXPORT KPrefsWidCombo : public KPrefsWid
00429 {
00430 public:
00438 KPrefsWidCombo( KConfigSkeleton::ItemEnum *item, TQWidget *parent );
00439 virtual ~KPrefsWidCombo();
00440
00441 void readConfig();
00442 void writeConfig();
00443
00444 TQComboBox *comboBox();
00445 TQValueList<TQWidget *> widgets() const;
00446
00447 private:
00448 KConfigSkeleton::ItemEnum *mItem;
00449 TQComboBox *mCombo;
00450 };
00451
00452
00453
00461 class KDE_EXPORT KPrefsWidString : public KPrefsWid
00462 {
00463 public:
00472 KPrefsWidString( KConfigSkeleton::ItemString *item, TQWidget *parent,
00473 TQLineEdit::EchoMode echomode=TQLineEdit::Normal );
00477 virtual ~KPrefsWidString();
00478
00482 TQLabel *label();
00486 TQLineEdit *lineEdit();
00487
00488 void readConfig();
00489 void writeConfig();
00490
00491 TQValueList<TQWidget *> widgets() const;
00492
00493 private:
00494 KConfigSkeleton::ItemString *mItem;
00495
00496 TQLabel *mLabel;
00497 TQLineEdit *mEdit;
00498 };
00499
00500
00508 class KDE_EXPORT KPrefsWidPath : public KPrefsWid
00509 {
00510 public:
00520 KPrefsWidPath( KConfigSkeleton::ItemPath *item, TQWidget *parent,
00521 const TQString &filter = TQString(), uint mode = KFile::File );
00525 virtual ~KPrefsWidPath();
00526
00530 TQLabel *label();
00534 KURLRequester *urlRequester();
00535
00536 void readConfig();
00537 void writeConfig();
00538
00539 TQValueList<TQWidget *> widgets() const;
00540
00541 private:
00542 KConfigSkeleton::ItemPath *mItem;
00543
00544 TQLabel *mLabel;
00545 KURLRequester *mURLRequester;
00546 };
00547
00548
00557 class KDE_EXPORT KPrefsWidManager
00558 {
00559 public:
00565 KPrefsWidManager( KConfigSkeleton *prefs );
00569 virtual ~KPrefsWidManager();
00570
00571 KConfigSkeleton *prefs() const { return mPrefs; }
00572
00576 virtual void addWid( KPrefsWid * );
00577
00584 KPrefsWidBool *addWidBool( KConfigSkeleton::ItemBool *item,
00585 TQWidget *parent );
00586
00593 KPrefsWidInt *addWidInt( KConfigSkeleton::ItemInt *item,
00594 TQWidget *parent );
00595
00602 KPrefsWidDate *addWidDate( KConfigSkeleton::ItemDateTime *item,
00603 TQWidget *parent );
00604
00611 KPrefsWidTime *addWidTime( KConfigSkeleton::ItemDateTime *item,
00612 TQWidget *parent );
00613
00620 KPrefsWidDuration *addWidDuration( KConfigSkeleton::ItemDateTime *item,
00621 TQWidget *parent );
00622
00629 KPrefsWidColor *addWidColor( KConfigSkeleton::ItemColor *item,
00630 TQWidget *parent );
00631
00639 KPrefsWidRadios *addWidRadios( KConfigSkeleton::ItemEnum *item,
00640 TQWidget *parent );
00641
00649 KPrefsWidCombo *addWidCombo( KConfigSkeleton::ItemEnum *item,
00650 TQWidget *parent );
00651
00658 KPrefsWidString *addWidString( KConfigSkeleton::ItemString *item,
00659 TQWidget *parent );
00660
00669 KPrefsWidPath *addWidPath ( KConfigSkeleton::ItemPath *item, TQWidget *parent,
00670 const TQString &filter = TQString(),
00671 uint mode = KFile::File );
00672
00679 KPrefsWidString *addWidPassword ( KConfigSkeleton::ItemString *item,
00680 TQWidget *parent );
00681
00690 KPrefsWidFont *addWidFont( KConfigSkeleton::ItemFont *item,
00691 TQWidget *parent, const TQString &sampleText );
00692
00694 void setWidDefaults();
00695
00697 void readWidConfig();
00698
00700 void writeWidConfig();
00701
00702 private:
00703 KConfigSkeleton *mPrefs;
00704
00705 TQPtrList<KPrefsWid> mPrefsWids;
00706 };
00707
00708
00721 class KDE_EXPORT KPrefsDialog : public KDialogBase, public KPrefsWidManager
00722 {
00723 Q_OBJECT
00724 TQ_OBJECT
00725 public:
00734 KPrefsDialog( KConfigSkeleton *prefs, TQWidget *parent = 0, char *name = 0,
00735 bool modal = false );
00739 virtual ~KPrefsDialog();
00740
00741 void autoCreate();
00742
00743 public slots:
00745 void setDefaults();
00746
00748 void readConfig();
00749
00751 void writeConfig();
00752
00753 signals:
00755 void configChanged();
00756
00757 protected slots:
00759 void slotApply();
00760
00762 void slotOk();
00763
00765 void slotDefault();
00766
00767 protected:
00769 virtual void usrReadConfig() {}
00771 virtual void usrWriteConfig() {}
00772 };
00773
00774
00775 class KDE_EXPORT KPrefsModule : public KCModule, public KPrefsWidManager
00776 {
00777 Q_OBJECT
00778 TQ_OBJECT
00779 public:
00780 KPrefsModule( KConfigSkeleton *, TQWidget *parent = 0, const char *name = 0 );
00781
00782 virtual void addWid( KPrefsWid * );
00783
00784 void load();
00785 void save();
00786 void defaults();
00787
00788 protected slots:
00789 void slotWidChanged();
00790
00791 protected:
00793 virtual void usrReadConfig() {}
00795 virtual void usrWriteConfig() {}
00796 };
00797
00798 #endif