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.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:29 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003