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 <qwidget.h>
00028
00029
#include <kabc/addressbook.h>
00030
#include <klibloader.h>
00031
00032
00033
namespace KAB {
00034
class Core;
00035
class ConfigureWidget;
00036
00037
class ExtensionWidget :
public QWidget
00038 {
00039 Q_OBJECT
00040
00041
public:
00042 ExtensionWidget( Core *core,
QWidget *parent,
const char *name = 0 );
00043 ~ExtensionWidget();
00044
00048 KAB::Core *core() const;
00049
00053
bool contactsSelected() const;
00054
00060 KABC::Addressee::List selectedContacts();
00061
00065 virtual
void contactsSelectionChanged();
00066
00071 virtual
QString title() const = 0;
00072
00076 virtual
QString identifier() const = 0;
00077
00078 signals:
00079
void modified( const KABC::Addressee::List &list );
00080
00081 private:
00082 KAB::Core *mCore;
00083
00084 class ExtensionWidgetPrivate;
00085 ExtensionWidgetPrivate *d;
00086 };
00087
00088 class ExtensionFactory : public KLibFactory
00089 {
00090
public:
00091
virtual ExtensionWidget *extension( KAB::Core *core,
QWidget *parent,
00092
const char *name = 0 ) = 0;
00093
00094
virtual ConfigureWidget *configureWidget(
QWidget*,
const char* = 0 )
00095 {
00096
return 0;
00097 }
00098
00099
virtual bool configureWidgetAvailable() {
return false; }
00100
00105
virtual QString identifier() const = 0;
00106
00107 protected:
00108 virtual
QObject* createObject(
QObject*, const
char*, const
char*,
00109 const
QStringList & )
00110 {
00111
return 0;
00112 }
00113 };
00114
00115 }
00116
00117
#endif