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 Wed Jul 28 23:57:46 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003