00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KAB_EXTENSIONWIDGET_H
00025 #define KAB_EXTENSIONWIDGET_H
00026
00027 #include <tqwidget.h>
00028
00029 #include <kabc/addressbook.h>
00030 #include <klibloader.h>
00031 #include <kdepimmacros.h>
00032
00033 #define KAB_EXTENSIONWIDGET_PLUGIN_VERSION 1
00034
00035 namespace KAB {
00036 class Core;
00037 class ConfigureWidget;
00038
00039 class KDE_EXPORT ExtensionWidget : public TQWidget
00040 {
00041 Q_OBJECT
00042 TQ_OBJECT
00043
00044 public:
00045 ExtensionWidget( Core *core, TQWidget *parent, const char *name = 0 );
00046 ~ExtensionWidget();
00047
00051 KAB::Core *core() const;
00052
00056 bool contactsSelected() const;
00057
00063 KABC::Addressee::List selectedContacts();
00064
00068 virtual void contactsSelectionChanged();
00069
00074 virtual TQString title() const = 0;
00075
00079 virtual TQString identifier() const = 0;
00080
00081 signals:
00082 void modified( const KABC::Addressee::List &list );
00083 void deleted( const TQStringList& uidList );
00084
00085 private:
00086 KAB::Core *mCore;
00087
00088 class ExtensionWidgetPrivate;
00089 ExtensionWidgetPrivate *d;
00090 };
00091
00092 class ExtensionFactory : public KLibFactory
00093 {
00094 public:
00095 virtual ExtensionWidget *extension( KAB::Core *core, TQWidget *parent,
00096 const char *name = 0 ) = 0;
00097
00098 virtual ConfigureWidget *configureWidget( TQWidget*, const char* = 0 )
00099 {
00100 return 0;
00101 }
00102
00103 virtual bool configureWidgetAvailable() { return false; }
00104
00109 virtual TQString identifier() const = 0;
00110
00111 protected:
00112 virtual TQObject* createObject( TQObject*, const char*, const char*,
00113 const TQStringList & )
00114 {
00115 return 0;
00116 }
00117 };
00118
00119 }
00120
00121 #endif