author | alwin <alwin> | 2005-03-16 10:05:50 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-16 10:05:50 (UTC) |
commit | 954092e015c34ea0848f41d8acb7b957b12d6384 (patch) (side-by-side diff) | |
tree | dab1b992308a6dc7ce91163a2d5acef94f4f6f12 /libopie2/opiepim/ui | |
parent | f53596e1ab4c64bc0b714c58060f78b198c22f5f (diff) | |
download | opie-954092e015c34ea0848f41d8acb7b957b12d6384.zip opie-954092e015c34ea0848f41d8acb7b957b12d6384.tar.gz opie-954092e015c34ea0848f41d8acb7b957b12d6384.tar.bz2 |
first shot of a generic interface for holiday plugin in datebook
-rw-r--r-- | libopie2/opiepim/ui/oholidayplugin.h | 24 | ||||
-rw-r--r-- | libopie2/opiepim/ui/oholidaypluginif.h | 64 |
2 files changed, 88 insertions, 0 deletions
diff --git a/libopie2/opiepim/ui/oholidayplugin.h b/libopie2/opiepim/ui/oholidayplugin.h new file mode 100644 index 0000000..f4958c8 --- a/dev/null +++ b/libopie2/opiepim/ui/oholidayplugin.h @@ -0,0 +1,24 @@ +#ifndef _HOLIDAY_PLUGIN_H +#define _HOLIDAY_PLUGIN_H + +namespace Opie { +namespace Datebook { + +#include <qstring.h> +#include <qstringlist.h> +#include <qdate.h> + +class HolidayPlugin +{ +public: + HolidayPlugin(){}; + virtual ~HolidayPlugin(){}; + virtual QString description()=0; + virtual QStringList entries(const QDate&)=0; + virtual QStringList entries(unsigned year, unsigned month, unsigned day)=0; +}; + +} +} +#endif + diff --git a/libopie2/opiepim/ui/oholidaypluginif.h b/libopie2/opiepim/ui/oholidaypluginif.h new file mode 100644 index 0000000..6d36f08 --- a/dev/null +++ b/libopie2/opiepim/ui/oholidaypluginif.h @@ -0,0 +1,64 @@ +#ifndef _O_HOLIDAY_PLUGIN_IF_H +#define _O_HOLIDAY_PLUGIN_IF_H + +#include <opie2/odebug.h> + +#include <qpe/qcom.h> + +#ifndef QT_NO_COMPONENT +//"b981b4e9-6d5d-4ee0-a193-f8d0e443809b" +#define IID_HOLIDAY_PLUGIN QUuid(0xb981b4e9, 0x6d5d, 0x4ee0 0xa1, 0x93,0xf8, 0xd0, 0xe4, 0x43, 0x80, 0x9b) +#endif + +namespace Opie { +namespace Datebook { + +class HolidayPlugin; + +class HolidayPluginIf:public QUnknownInterface +{ +public: + HolidayPluginIf():QUnknownInterface(){} + virtual ~HolidayPluginIf(){} + + virtual HolidayPlugin*plugin()=0; +}; + +template<class T>HolidayPluginWrapper:public HolidayPluginIf +{ +public: + HolidayPluginWrapper():HolidayPluginIf(),_plugin(0){} + virtual ~HolidayPluginWrapper(){if (_plugin) delete _plugin;} + + QRESULT queryInterface( const QUuid& uuid, QUnknownInterface** iface ) { + odebug << "HolidayPluginWrapper::queryInterface()" << oendl; + *iface = 0; + if (uuid==IID_HOLIDAY_PLUGIN||uuid==IID_QUnknown) { + *iface = this; + } else { + return QS_FALSE; + } + if (*iface) *iface->addRef(); + return QS_OK; + } + + // from qcom + Q_REFCOUNT + + virtual T*plugin() { + if (!_plugin) {_plugin = new T();} + return _plugin; + } +protected: + T*_plugin; +}; + +#define EXPORT_HOLIDAY_PLUGIN( Plugin ) \ + Q_EXPORT_INTERFACE() { \ + Q_CREATE_INSTANCE( Opie::Datebook::HolidayPluginWrapper<Plugin> ) \ + } + +} +} +#endif + |