libtdepim

kprefsdialog.h
1/*
2 This file is part of libtdepim.
3
4 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org>
5 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
6 Copyright (C) 2005 Allen Winter <winter@kde.org>
7
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later version.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details.
17
18 You should have received a copy of the GNU Library General Public License
19 along with this library; see the file COPYING.LIB. If not, write to
20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA.
22*/
23#ifndef KPREFSDIALOG_H
24#define KPREFSDIALOG_H
25
26#include <tqptrlist.h>
27#include <tqlineedit.h>
28#include <tqvaluelist.h>
29#include <tqdatetimeedit.h>
30
31#include <kdialogbase.h>
32#include <tdecmodule.h>
33#include <tdeconfigskeleton.h>
34#include <tdefile.h>
35#include <tdemacros.h>
36
37
38class KColorButton;
39class TQCheckBox;
40class TQComboBox;
41class TQLabel;
42class TQSpinBox;
43class TQButtonGroup;
44class TQTimeEdit;
45class KTimeEdit;
46class KDateEdit;
47class KURLRequester;
48
58class TDE_EXPORT KPrefsWid : public TQObject
59{
60 TQ_OBJECT
61
62 public:
67 virtual void readConfig() = 0;
72 virtual void writeConfig() = 0;
73
77 virtual TQValueList<TQWidget *> widgets() const;
78
79 signals:
83 void changed();
84};
85
92class TDE_EXPORT KPrefsWidBool : public KPrefsWid
93{
94 public:
101 KPrefsWidBool( TDEConfigSkeleton::ItemBool *item, TQWidget *parent );
102
106 TQCheckBox *checkBox();
107
108 void readConfig();
109 void writeConfig();
110
111 TQValueList<TQWidget *> widgets() const;
112
113 private:
114 TDEConfigSkeleton::ItemBool *mItem;
115
116 TQCheckBox *mCheck;
117};
118
126class TDE_EXPORT KPrefsWidInt : public KPrefsWid
127{
128 public:
136 KPrefsWidInt( TDEConfigSkeleton::ItemInt *item, TQWidget *parent );
137
141 TQLabel *label();
142
146 TQSpinBox *spinBox();
147
148 void readConfig();
149 void writeConfig();
150
151 TQValueList<TQWidget *> widgets() const;
152
153 private:
154 TDEConfigSkeleton::ItemInt *mItem;
155
156 TQLabel *mLabel;
157 TQSpinBox *mSpin;
158};
159
167class TDE_EXPORT KPrefsWidTime : public KPrefsWid
168{
169 public:
176 KPrefsWidTime( TDEConfigSkeleton::ItemDateTime *item, TQWidget *parent );
177
181 TQLabel *label();
185 KTimeEdit *timeEdit();
186
187 void readConfig();
188 void writeConfig();
189
190 private:
191 TDEConfigSkeleton::ItemDateTime *mItem;
192
193 TQLabel *mLabel;
194 KTimeEdit *mTimeEdit;
195};
196
204class TDE_EXPORT KPrefsWidDuration : public KPrefsWid
205{
206 public:
214 KPrefsWidDuration( TDEConfigSkeleton::ItemDateTime *item, TQWidget *parent );
215
219 TQLabel *label();
223 TQTimeEdit *timeEdit();
224
225 void readConfig();
226 void writeConfig();
227
228 private:
229 TDEConfigSkeleton::ItemDateTime *mItem;
230
231 TQLabel *mLabel;
232 TQTimeEdit *mTimeEdit;
233};
234
242class TDE_EXPORT KPrefsWidDate : public KPrefsWid
243{
244 public:
251 KPrefsWidDate( TDEConfigSkeleton::ItemDateTime *item, TQWidget *parent );
252
256 TQLabel *label();
260 KDateEdit *dateEdit();
261
262 void readConfig();
263 void writeConfig();
264
265 private:
266 TDEConfigSkeleton::ItemDateTime *mItem;
267
268 TQLabel *mLabel;
269 KDateEdit *mDateEdit;
270};
271
279class TDE_EXPORT KPrefsWidColor : public KPrefsWid
280{
281 TQ_OBJECT
282
283 public:
291 KPrefsWidColor( TDEConfigSkeleton::ItemColor *item, TQWidget *parent );
296
300 TQLabel *label();
304 KColorButton *button();
305
306 void readConfig();
307 void writeConfig();
308
309 private:
310 TDEConfigSkeleton::ItemColor *mItem;
311
312 TQLabel *mLabel;
313 KColorButton *mButton;
314};
315
322class TDE_EXPORT KPrefsWidFont : public KPrefsWid
323{
324 TQ_OBJECT
325
326 public:
335 KPrefsWidFont( TDEConfigSkeleton::ItemFont *item,
336 TQWidget *parent, const TQString &sampleText );
341
345 TQLabel *label();
349 TQFrame *preview();
353 TQPushButton *button();
354
355 void readConfig();
356 void writeConfig();
357
358 protected slots:
359 void selectFont();
360
361 private:
362 TDEConfigSkeleton::ItemFont *mItem;
363
364 TQLabel *mLabel;
365 TQLabel *mPreview;
366 TQPushButton *mButton;
367};
368
380class TDE_EXPORT KPrefsWidRadios : public KPrefsWid
381{
382 public:
390 KPrefsWidRadios( TDEConfigSkeleton::ItemEnum *item, TQWidget *parent );
391 virtual ~KPrefsWidRadios();
392
399 void addRadio( const TQString &text,
400 const TQString &whatsThis = TQString() );
401
405 TQButtonGroup *groupBox();
406
407 void readConfig();
408 void writeConfig();
409
410 TQValueList<TQWidget *> widgets() const;
411
412 private:
413 TDEConfigSkeleton::ItemEnum *mItem;
414
415 TQButtonGroup *mBox;
416};
417
428class TDE_EXPORT KPrefsWidCombo : public KPrefsWid
429{
430 public:
438 KPrefsWidCombo( TDEConfigSkeleton::ItemEnum *item, TQWidget *parent );
439 virtual ~KPrefsWidCombo();
440
441 void readConfig();
442 void writeConfig();
443
444 TQComboBox *comboBox();
445 TQValueList<TQWidget *> widgets() const;
446
447 private:
448 TDEConfigSkeleton::ItemEnum *mItem;
449 TQComboBox *mCombo;
450};
451
452
453
461class TDE_EXPORT KPrefsWidString : public KPrefsWid
462{
463 public:
472 KPrefsWidString( TDEConfigSkeleton::ItemString *item, TQWidget *parent,
473 TQLineEdit::EchoMode echomode=TQLineEdit::Normal );
477 virtual ~KPrefsWidString();
478
482 TQLabel *label();
486 TQLineEdit *lineEdit();
487
488 void readConfig();
489 void writeConfig();
490
491 TQValueList<TQWidget *> widgets() const;
492
493 private:
494 TDEConfigSkeleton::ItemString *mItem;
495
496 TQLabel *mLabel;
497 TQLineEdit *mEdit;
498};
499
500
508class TDE_EXPORT KPrefsWidPath : public KPrefsWid
509{
510 public:
520 KPrefsWidPath( TDEConfigSkeleton::ItemPath *item, TQWidget *parent,
521 const TQString &filter = TQString(), uint mode = KFile::File );
525 virtual ~KPrefsWidPath();
526
530 TQLabel *label();
534 KURLRequester *urlRequester();
535
536 void readConfig();
537 void writeConfig();
538
539 TQValueList<TQWidget *> widgets() const;
540
541 private:
542 TDEConfigSkeleton::ItemPath *mItem;
543
544 TQLabel *mLabel;
545 KURLRequester *mURLRequester;
546};
547
548
557class TDE_EXPORT KPrefsWidManager
558{
559 public:
565 KPrefsWidManager( TDEConfigSkeleton *prefs );
569 virtual ~KPrefsWidManager();
570
571 TDEConfigSkeleton *prefs() const { return mPrefs; }
572
576 virtual void addWid( KPrefsWid * );
577
584 KPrefsWidBool *addWidBool( TDEConfigSkeleton::ItemBool *item,
585 TQWidget *parent );
586
593 KPrefsWidInt *addWidInt( TDEConfigSkeleton::ItemInt *item,
594 TQWidget *parent );
595
602 KPrefsWidDate *addWidDate( TDEConfigSkeleton::ItemDateTime *item,
603 TQWidget *parent );
604
611 KPrefsWidTime *addWidTime( TDEConfigSkeleton::ItemDateTime *item,
612 TQWidget *parent );
613
620 KPrefsWidDuration *addWidDuration( TDEConfigSkeleton::ItemDateTime *item,
621 TQWidget *parent );
622
629 KPrefsWidColor *addWidColor( TDEConfigSkeleton::ItemColor *item,
630 TQWidget *parent );
631
639 KPrefsWidRadios *addWidRadios( TDEConfigSkeleton::ItemEnum *item,
640 TQWidget *parent );
641
649 KPrefsWidCombo *addWidCombo( TDEConfigSkeleton::ItemEnum *item,
650 TQWidget *parent );
651
658 KPrefsWidString *addWidString( TDEConfigSkeleton::ItemString *item,
659 TQWidget *parent );
660
669 KPrefsWidPath *addWidPath ( TDEConfigSkeleton::ItemPath *item, TQWidget *parent,
670 const TQString &filter = TQString(),
671 uint mode = KFile::File );
672
679 KPrefsWidString *addWidPassword ( TDEConfigSkeleton::ItemString *item,
680 TQWidget *parent );
681
690 KPrefsWidFont *addWidFont( TDEConfigSkeleton::ItemFont *item,
691 TQWidget *parent, const TQString &sampleText );
692
694 void setWidDefaults();
695
697 void readWidConfig();
698
700 void writeWidConfig();
701
702 private:
703 TDEConfigSkeleton *mPrefs;
704
705 TQPtrList<KPrefsWid> mPrefsWids;
706};
707
708
721class TDE_EXPORT KPrefsDialog : public KDialogBase, public KPrefsWidManager
722{
723 TQ_OBJECT
724
725 public:
734 KPrefsDialog( TDEConfigSkeleton *prefs, TQWidget *parent = 0, char *name = 0,
735 bool modal = false );
739 virtual ~KPrefsDialog();
740
741 void autoCreate();
742
743 public slots:
745 void setDefaults();
746
748 void readConfig();
749
751 void writeConfig();
752
753 signals:
756
757 protected slots:
759 void slotApply();
760
762 void slotOk();
763
765 void slotDefault();
766
767 protected:
769 virtual void usrReadConfig() {}
771 virtual void usrWriteConfig() {}
772};
773
774
775class TDE_EXPORT KPrefsModule : public TDECModule, public KPrefsWidManager
776{
777 TQ_OBJECT
778
779 public:
780 KPrefsModule( TDEConfigSkeleton *, TQWidget *parent = 0, const char *name = 0 );
781
782 virtual void addWid( KPrefsWid * );
783
784 void load();
785 void save();
786 void defaults();
787
788 protected slots:
789 void slotWidChanged();
790
791 protected:
793 virtual void usrReadConfig() {}
795 virtual void usrWriteConfig() {}
796};
797
798#endif
A date editing widget that consists of an editable combo box.
Definition kdateedit.h:55
Base class for a preferences dialog.
virtual void usrReadConfig()
Implement this to read custom configuration widgets.
void configChanged()
Emitted when the a changed configuration has been stored.
virtual void usrWriteConfig()
Implement this to write custom configuration widgets.
Widgets for bool settings in KPrefsDialog.
Widgets for color settings in KPrefsDialog.
Widgets for settings represented by a combo box in KPrefsDialog.
Widgets for time settings in KPrefsDialog.
Widgets for duration settings in KPrefsDialog.
Widgets for font settings in KPrefsDialog.
Widgets for int settings in KPrefsDialog.
Class for managing KPrefsWid objects.
Widgets for string settings in KPrefsDialog.
Widgets for settings represented by a group of radio buttons in KPrefsDialog.
Widgets for string settings in KPrefsDialog.
Widgets for time settings in KPrefsDialog.
Base class for GUI control elements used by KPrefsDialog.
void changed()
Emitted when widget value has changed.
virtual void writeConfig()=0
This function is called to write the current setting of the widget to the stored configuration.
virtual void readConfig()=0
This function is called to read value of the setting from the stored configuration and display it in ...
This is a class that provides an easy, user friendly way to edit times.
Definition ktimeedit.h:45