contacteditorwidget.h
00001 /* 00002 This file is part of KAddressbook. 00003 Copyright (c) 2004 Tobias Koenig <tokoe@kde.org> 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 00019 As a special exception, permission is given to link this program 00020 with any edition of TQt, and distribute the resulting executable, 00021 without including the source code for TQt in the source distribution. 00022 */ 00023 00024 #ifndef KAB_CONTACTEDITORWIDGET_H 00025 #define KAB_CONTACTEDITORWIDGET_H 00026 00027 #include <tqwidget.h> 00028 00029 #include <kabc/addressbook.h> 00030 #include <klibloader.h> 00031 #include <kdepimmacros.h> 00032 00033 #define KAB_CEW_PLUGIN_VERSION 1 00034 00035 namespace KAB { 00036 00037 class KDE_EXPORT ContactEditorWidget : public TQWidget 00038 { 00039 Q_OBJECT 00040 TQ_OBJECT 00041 00042 public: 00043 typedef TQValueList<ContactEditorWidget*> List; 00044 00045 ContactEditorWidget( KABC::AddressBook *ab, TQWidget *parent, const char *name = 0 ); 00046 ~ContactEditorWidget(); 00047 00053 virtual int logicalHeight() const { return 1; } 00054 00060 virtual int logicalWidth() const { return 1; } 00061 00065 virtual void loadContact( KABC::Addressee *addr ) = 0; 00066 00071 virtual void storeContact( KABC::Addressee *addr ) = 0; 00072 00078 virtual void setReadOnly( bool readOnly ) = 0; 00079 00083 bool modified() const; 00084 00085 signals: 00090 void changed(); 00091 00092 public slots: 00099 void setModified( bool modified ); 00100 00101 void setModified(); 00102 00103 protected: 00107 KABC::AddressBook *addressBook() const; 00108 00109 private: 00110 KABC::AddressBook *mAddressBook; 00111 bool mModified; 00112 00113 class ContactEditorWidgetPrivate; 00114 ContactEditorWidgetPrivate *d; 00115 }; 00116 00117 class ContactEditorWidgetFactory : public KLibFactory 00118 { 00119 public: 00120 virtual ContactEditorWidget *createWidget( KABC::AddressBook *ab, TQWidget *parent, 00121 const char *name = 0 ) = 0; 00122 00126 virtual TQString pageTitle() const { return ""; } 00127 00132 virtual TQString pageIdentifier() const = 0; 00133 00134 protected: 00135 virtual TQObject* createObject( TQObject*, const char*, const char*, 00136 const TQStringList & ) 00137 { 00138 return 0; 00139 } 00140 }; 00141 00142 } 00143 00144 #endif