kaddressbook

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 Qt, and distribute the resulting executable,
00021     without including the source code for Qt in the source distribution.
00022 */
00023 
00024 #ifndef KAB_CONTACTEDITORWIDGET_H
00025 #define KAB_CONTACTEDITORWIDGET_H
00026 
00027 #include <qwidget.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 QWidget
00038 {
00039   Q_OBJECT
00040 
00041   public:
00042     typedef QValueList<ContactEditorWidget*> List;
00043 
00044     ContactEditorWidget( KABC::AddressBook *ab, QWidget *parent, const char *name = 0 );
00045     ~ContactEditorWidget();
00046 
00052     virtual int logicalHeight() const { return 1; }
00053 
00059     virtual int logicalWidth() const { return 1; }
00060 
00064     virtual void loadContact( KABC::Addressee *addr ) = 0;
00065 
00070     virtual void storeContact( KABC::Addressee *addr ) = 0;
00071 
00077     virtual void setReadOnly( bool readOnly ) = 0;
00078 
00082     bool modified() const;
00083 
00084   signals:
00089     void changed();
00090 
00091   public slots:
00098     void setModified( bool modified );
00099 
00100     void setModified();
00101 
00102   protected:
00106     KABC::AddressBook *addressBook() const;
00107 
00108   private:
00109     KABC::AddressBook *mAddressBook;
00110     bool mModified;
00111 
00112     class ContactEditorWidgetPrivate;
00113     ContactEditorWidgetPrivate *d;
00114 };
00115 
00116 class ContactEditorWidgetFactory : public KLibFactory
00117 {
00118   public:
00119     virtual ContactEditorWidget *createWidget( KABC::AddressBook *ab, QWidget *parent,
00120                                                const char *name = 0 ) = 0;
00121 
00125     virtual QString pageTitle() const { return ""; }
00126 
00131     virtual QString pageIdentifier() const = 0;
00132 
00133   protected:
00134     virtual QObject* createObject( QObject*, const char*, const char*,
00135                                    const QStringList & )
00136     {
00137       return 0;
00138     }
00139 };
00140 
00141 }
00142 
00143 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys