libkdepim Library API Documentation

kprefsdialog.h

00001 /*
00002     This file is part of libkdepim.
00003 
00004     Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org>
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to
00018     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00019     Boston, MA 02111-1307, USA.
00020 */
00021 #ifndef KPREFSDIALOG_H
00022 #define KPREFSDIALOG_H
00023 
00024 #include <qptrlist.h>
00025 #include <qlineedit.h>
00026 #include <qvaluelist.h>
00027 
00028 #include <kdialogbase.h>
00029 #include <kcmodule.h>
00030 #include <kconfigskeleton.h>
00031 
00032 
00033 class KColorButton;
00034 class QCheckBox;
00035 class QLabel;
00036 class QSpinBox;
00037 class QButtonGroup;
00038 class KTimeEdit;
00039 
00049 class KPrefsWid : public QObject
00050 {
00051     Q_OBJECT
00052   public:
00057     virtual void readConfig() = 0;
00062     virtual void writeConfig() = 0;
00063 
00067     virtual QValueList<QWidget *> widgets() const;
00068 
00069   signals:
00073     void changed();
00074 };
00075 
00082 class KPrefsWidBool : public KPrefsWid
00083 {
00084   public:
00091     KPrefsWidBool( KConfigSkeleton::ItemBool *item, QWidget *parent );
00092 
00096     QCheckBox *checkBox();
00097 
00098     void readConfig();
00099     void writeConfig();
00100 
00101     QValueList<QWidget *> widgets() const;
00102 
00103   private:
00104     KConfigSkeleton::ItemBool *mItem;
00105 
00106     QCheckBox *mCheck;
00107 };
00108 
00116 class KPrefsWidInt : public KPrefsWid
00117 {
00118   public:
00126     KPrefsWidInt( KConfigSkeleton::ItemInt *item, QWidget *parent );
00127 
00131     QLabel *label();
00132 
00136     QSpinBox *spinBox();
00137 
00138     void readConfig();
00139     void writeConfig();
00140 
00141     QValueList<QWidget *> widgets() const;
00142 
00143   private:
00144     KConfigSkeleton::ItemInt *mItem;
00145 
00146     QLabel *mLabel;
00147     QSpinBox *mSpin;
00148 };
00149 
00157 class KPrefsWidTime : public KPrefsWid
00158 {
00159   public:
00166     KPrefsWidTime( KConfigSkeleton::ItemDateTime *item, QWidget *parent );
00167 
00171     QLabel *label();
00175     KTimeEdit *timeEdit();
00176 
00177     void readConfig();
00178     void writeConfig();
00179 
00180   private:
00181     KConfigSkeleton::ItemDateTime *mItem;
00182 
00183     QLabel *mLabel;
00184     KTimeEdit *mTimeEdit;
00185 };
00186 
00194 class KPrefsWidColor : public KPrefsWid
00195 {
00196     Q_OBJECT
00197   public:
00205     KPrefsWidColor( KConfigSkeleton::ItemColor *item, QWidget *parent );
00209     ~KPrefsWidColor();
00210 
00214     QLabel *label();
00218     KColorButton *button();
00219 
00220     void readConfig();
00221     void writeConfig();
00222 
00223   private:
00224     KConfigSkeleton::ItemColor *mItem;
00225 
00226     QLabel *mLabel;
00227     KColorButton *mButton;
00228 };
00229 
00236 class KPrefsWidFont : public KPrefsWid
00237 {
00238     Q_OBJECT
00239   public:
00247     KPrefsWidFont( KConfigSkeleton::ItemFont *item,
00248                    QWidget *parent, const QString &sampleText );
00252     ~KPrefsWidFont();
00253 
00257     QLabel *label();
00261     QFrame *preview();
00265     QPushButton *button();
00266 
00267     void readConfig();
00268     void writeConfig();
00269 
00270   protected slots:
00271     void selectFont();
00272 
00273   private:
00274     KConfigSkeleton::ItemFont *mItem;
00275 
00276     QLabel *mLabel;
00277     QLabel *mPreview;
00278     QPushButton *mButton;
00279 };
00280 
00292 class KPrefsWidRadios : public KPrefsWid
00293 {
00294   public:
00302     KPrefsWidRadios( KConfigSkeleton::ItemEnum *item, QWidget *parent );
00303     virtual ~KPrefsWidRadios();
00304 
00311     void addRadio( const QString &text,
00312                    const QString &whatsThis = QString::null );
00313 
00317     QButtonGroup *groupBox();
00318 
00319     void readConfig();
00320     void writeConfig();
00321 
00322     QValueList<QWidget *> widgets() const;    
00323 
00324   private:
00325     KConfigSkeleton::ItemEnum *mItem;
00326 
00327     QButtonGroup *mBox;
00328 };
00329 
00330 
00338 class KPrefsWidString : public KPrefsWid
00339 {
00340   public:
00348     KPrefsWidString( KConfigSkeleton::ItemString *item, QWidget *parent,
00349                      QLineEdit::EchoMode echomode=QLineEdit::Normal );
00353     virtual ~KPrefsWidString();
00354 
00358     QLabel *label();
00362     QLineEdit *lineEdit();
00363 
00364     void readConfig();
00365     void writeConfig();
00366 
00367     QValueList<QWidget *> widgets() const;
00368 
00369   private:
00370     KConfigSkeleton::ItemString *mItem;
00371 
00372     QLabel *mLabel;
00373     QLineEdit *mEdit;
00374 };
00375 
00376 
00385 class KPrefsWidManager
00386 {
00387   public:
00393     KPrefsWidManager( KConfigSkeleton *prefs );
00397     virtual ~KPrefsWidManager();
00398 
00399     KConfigSkeleton *prefs() const { return mPrefs; }
00400 
00404     virtual void addWid( KPrefsWid * );
00405 
00412     KPrefsWidBool *addWidBool( KConfigSkeleton::ItemBool *item,
00413                                QWidget *parent );
00414 
00421     KPrefsWidInt *addWidInt( KConfigSkeleton::ItemInt *item,
00422                              QWidget *parent );
00423 
00430     KPrefsWidTime *addWidTime( KConfigSkeleton::ItemDateTime *item,
00431                                QWidget *parent );
00432 
00439     KPrefsWidColor *addWidColor( KConfigSkeleton::ItemColor *item,
00440                                  QWidget *parent );
00441         
00449     KPrefsWidRadios *addWidRadios( KConfigSkeleton::ItemEnum *item,
00450                                    QWidget *parent );
00451     
00458     KPrefsWidString *addWidString( KConfigSkeleton::ItemString *item,
00459                                    QWidget *parent );
00460 
00467     KPrefsWidString *addWidPassword ( KConfigSkeleton::ItemString *item,
00468                                       QWidget *parent );
00469 
00478     KPrefsWidFont *addWidFont( KConfigSkeleton::ItemFont *item,
00479                                QWidget *parent, const QString &sampleText );
00480 
00482     void setWidDefaults();
00483 
00485     void readWidConfig();
00486 
00488     void writeWidConfig();
00489 
00490   private:
00491     KConfigSkeleton *mPrefs;
00492 
00493     QPtrList<KPrefsWid> mPrefsWids;
00494 };
00495 
00496 
00509 class KPrefsDialog : public KDialogBase, public KPrefsWidManager
00510 {
00511     Q_OBJECT
00512   public:
00521     KPrefsDialog( KConfigSkeleton *prefs, QWidget *parent = 0, char *name = 0,
00522                   bool modal = false );
00526     virtual ~KPrefsDialog();
00527 
00528     void autoCreate();
00529 
00530   public slots:
00532     void setDefaults();
00533 
00535     void readConfig();
00536 
00538     void writeConfig();
00539 
00540   signals:
00542     void configChanged();
00543 
00544   protected slots:
00546     void slotApply();
00547 
00549     void slotOk();
00550 
00552     void slotDefault();
00553 
00554   protected:
00556     virtual void usrReadConfig() {}
00558     virtual void usrWriteConfig() {}
00559 };
00560 
00561 
00562 class KPrefsModule : public KCModule, public KPrefsWidManager
00563 {
00564     Q_OBJECT
00565   public:
00566     KPrefsModule( KConfigSkeleton *, QWidget *parent = 0, const char *name = 0 );
00567 
00568     virtual void addWid( KPrefsWid * );
00569 
00570     void load();
00571     void save();
00572     void defaults();
00573 
00574   protected slots:
00575     void slotWidChanged();
00576 
00577   protected:
00579     virtual void usrReadConfig() {}
00581     virtual void usrWriteConfig() {}
00582 };
00583 
00584 #endif
KDE Logo
This file is part of the documentation for libkdepim Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Aug 23 18:19:45 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003