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 class KColorButton;
00033 class QCheckBox;
00034 class QLabel;
00035 class QSpinBox;
00036 class QButtonGroup;
00037 
00047 class KPrefsWid : public QObject
00048 {
00049     Q_OBJECT
00050   public:
00055     virtual void readConfig() = 0;
00060     virtual void writeConfig() = 0;
00061 
00065     virtual QValueList<QWidget *> widgets() const;
00066 
00067   signals:
00071     void changed();
00072 };
00073 
00080 class KPrefsWidBool : public KPrefsWid
00081 {
00082   public:
00089     KPrefsWidBool( KConfigSkeleton::ItemBool *item, QWidget *parent );
00090 
00094     QCheckBox *checkBox();
00095 
00096     void readConfig();
00097     void writeConfig();
00098 
00099     QValueList<QWidget *> widgets() const;
00100 
00101   private:
00102     KConfigSkeleton::ItemBool *mItem;
00103 
00104     QCheckBox *mCheck;
00105 };
00106 
00114 class KPrefsWidInt : public KPrefsWid
00115 {
00116   public:
00124     KPrefsWidInt( KConfigSkeleton::ItemInt *item, QWidget *parent );
00125 
00129     QLabel *label();
00130 
00134     QSpinBox *spinBox();
00135 
00136     void readConfig();
00137     void writeConfig();
00138 
00139     QValueList<QWidget *> widgets() const;
00140 
00141   private:
00142     KConfigSkeleton::ItemInt *mItem;
00143 
00144     QLabel *mLabel;
00145     QSpinBox *mSpin;
00146 };
00147 
00155 class KPrefsWidTime : public KPrefsWid
00156 {
00157   public:
00164     KPrefsWidTime( KConfigSkeleton::ItemInt *item, QWidget *parent );
00165 
00169     QLabel *label();
00173     QSpinBox *spinBox();
00174 
00175     void readConfig();
00176     void writeConfig();
00177 
00178   private:
00179     KConfigSkeleton::ItemInt *mItem;
00180 
00181     QLabel *mLabel;
00182     QSpinBox *mSpin;
00183 };
00184 
00192 class KPrefsWidColor : public KPrefsWid
00193 {
00194     Q_OBJECT
00195   public:
00203     KPrefsWidColor( KConfigSkeleton::ItemColor *item, QWidget *parent );
00207     ~KPrefsWidColor();
00208 
00212     QLabel *label();
00216     KColorButton *button();
00217 
00218     void readConfig();
00219     void writeConfig();
00220 
00221   private:
00222     KConfigSkeleton::ItemColor *mItem;
00223 
00224     QLabel *mLabel;
00225     KColorButton *mButton;
00226 };
00227 
00234 class KPrefsWidFont : public KPrefsWid
00235 {
00236     Q_OBJECT
00237   public:
00245     KPrefsWidFont( KConfigSkeleton::ItemFont *item,
00246                    QWidget *parent, const QString &sampleText );
00250     ~KPrefsWidFont();
00251 
00255     QLabel *label();
00259     QFrame *preview();
00263     QPushButton *button();
00264 
00265     void readConfig();
00266     void writeConfig();
00267 
00268   protected slots:
00269     void selectFont();
00270 
00271   private:
00272     KConfigSkeleton::ItemFont *mItem;
00273 
00274     QLabel *mLabel;
00275     QLabel *mPreview;
00276     QPushButton *mButton;
00277 };
00278 
00290 class KPrefsWidRadios : public KPrefsWid
00291 {
00292   public:
00300     KPrefsWidRadios( KConfigSkeleton::ItemEnum *item, QWidget *parent );
00301     virtual ~KPrefsWidRadios();
00302 
00309     void addRadio( const QString &text,
00310                    const QString &whatsThis = QString::null );
00311 
00315     QButtonGroup *groupBox();
00316 
00317     void readConfig();
00318     void writeConfig();
00319 
00320     QValueList<QWidget *> widgets() const;    
00321 
00322   private:
00323     KConfigSkeleton::ItemEnum *mItem;
00324 
00325     QButtonGroup *mBox;
00326 };
00327 
00328 
00336 class KPrefsWidString : public KPrefsWid
00337 {
00338   public:
00346     KPrefsWidString( KConfigSkeleton::ItemString *item, QWidget *parent,
00347                      QLineEdit::EchoMode echomode=QLineEdit::Normal );
00351     virtual ~KPrefsWidString();
00352 
00356     QLabel *label();
00360     QLineEdit *lineEdit();
00361 
00362     void readConfig();
00363     void writeConfig();
00364 
00365     QValueList<QWidget *> widgets() const;
00366 
00367   private:
00368     KConfigSkeleton::ItemString *mItem;
00369 
00370     QLabel *mLabel;
00371     QLineEdit *mEdit;
00372 };
00373 
00374 
00383 class KPrefsWidManager
00384 {
00385   public:
00391     KPrefsWidManager( KConfigSkeleton *prefs );
00395     virtual ~KPrefsWidManager();
00396 
00397     KConfigSkeleton *prefs() const { return mPrefs; }
00398 
00402     virtual void addWid( KPrefsWid * );
00403 
00410     KPrefsWidBool *addWidBool( KConfigSkeleton::ItemBool *item,
00411                                QWidget *parent );
00412 
00419     KPrefsWidTime *addWidTime( KConfigSkeleton::ItemInt *item,
00420                                QWidget *parent );
00421 
00428     KPrefsWidColor *addWidColor( KConfigSkeleton::ItemColor *item,
00429                                  QWidget *parent );
00430         
00438     KPrefsWidRadios *addWidRadios( KConfigSkeleton::ItemEnum *item,
00439                                    QWidget *parent );
00440     
00447     KPrefsWidString *addWidString( KConfigSkeleton::ItemString *item,
00448                                    QWidget *parent );
00449 
00456     KPrefsWidString *addWidPassword ( KConfigSkeleton::ItemString *item,
00457                                       QWidget *parent );
00458 
00467     KPrefsWidFont *addWidFont( KConfigSkeleton::ItemFont *item,
00468                                QWidget *parent, const QString &sampleText );
00469 
00471     void setWidDefaults();
00472 
00474     void readWidConfig();
00475 
00477     void writeWidConfig();
00478 
00479   private:
00480     KConfigSkeleton *mPrefs;
00481 
00482     QPtrList<KPrefsWid> mPrefsWids;
00483 };
00484 
00485 
00498 class KPrefsDialog : public KDialogBase, public KPrefsWidManager
00499 {
00500     Q_OBJECT
00501   public:
00510     KPrefsDialog( KConfigSkeleton *prefs, QWidget *parent = 0, char *name = 0,
00511                   bool modal = false );
00515     virtual ~KPrefsDialog();
00516 
00517     void autoCreate();
00518 
00519   public slots:
00521     void setDefaults();
00522 
00524     void readConfig();
00525 
00527     void writeConfig();
00528 
00529   signals:
00531     void configChanged();
00532 
00533   protected slots:
00535     void slotApply();
00536 
00538     void slotOk();
00539 
00541     void slotDefault();
00542 
00543   protected:
00545     virtual void usrReadConfig() {}
00547     virtual void usrWriteConfig() {}
00548 };
00549 
00550 
00551 class KPrefsModule : public KCModule, public KPrefsWidManager
00552 {
00553     Q_OBJECT
00554   public:
00555     KPrefsModule( KConfigSkeleton *, QWidget *parent = 0, const char *name = 0 );
00556 
00557     virtual void addWid( KPrefsWid * );
00558 
00559     void load();
00560     void save();
00561     void defaults();
00562 
00563   protected slots:
00564     void slotWidChanged();
00565 
00566   protected:
00568     virtual void usrReadConfig() {}
00570     virtual void usrWriteConfig() {}
00571 };
00572 
00573 #endif
KDE Logo
This file is part of the documentation for libkdepim Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:36:31 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003