00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef OTASKBARAPPLET_H
00033 #define OTASKBARAPPLET_H
00034
00035
00036 #include <opie2/odebug.h>
00037
00038 #include <qpe/taskbarappletinterface.h>
00039 #include <qpe/qcom.h>
00040
00041
00042 #include <qwidget.h>
00043
00044 class QMouseEvent;
00045
00046 namespace Opie {
00047 namespace Ui {
00048 namespace Internal {
00049
00050
00051
00052
00053 class OTaskbarAppletWrapperPrivate;
00054 template<class T> class OTaskbarAppletWrapper : public TaskbarAppletInterface
00055 {
00056 public:
00057 OTaskbarAppletWrapper():_applet( 0 )
00058 {
00059 }
00060
00061 virtual ~OTaskbarAppletWrapper()
00062 {
00063 delete _applet;
00064 }
00065
00066 QRESULT queryInterface( const QUuid& uuid, QUnknownInterface** iface )
00067 {
00068 odebug << "OTaskbarAppletWrapper::queryInterface()" << oendl;
00069 *iface = 0;
00070 if ( uuid == IID_QUnknown )
00071 *iface = this;
00072 else if ( uuid == IID_TaskbarApplet )
00073 *iface = this;
00074 else
00075 return QS_FALSE;
00076
00077 if ( *iface ) (*iface)->addRef();
00078 return QS_OK;
00079 }
00080
00081 Q_REFCOUNT
00082
00083 virtual T* applet( QWidget* parent )
00084 {
00085 if ( !_applet ) _applet = new T( parent );
00086 return _applet;
00087 }
00088
00089 virtual int position() const
00090 {
00091 return T::position();
00092 }
00093
00094 private:
00095 T* _applet;
00096 OTaskbarAppletWrapperPrivate *d;
00097 };
00098
00099 }
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112 class OTaskbarApplet : public QWidget
00113 {
00114 public:
00115 OTaskbarApplet( QWidget* parent, const char* name = 0 );
00116 virtual ~OTaskbarApplet();
00117
00118
00119 protected:
00120 virtual void popup( QWidget* widget );
00121 private:
00122 class Private;
00123 Private *d;
00124 };
00125 }
00126 }
00127
00128 #define EXPORT_OPIE_APPLET_v1( AppLet ) \
00129 Q_EXPORT_INTERFACE() { \
00130 Q_CREATE_INSTANCE( Opie::Ui::Internal::OTaskbarAppletWrapper<AppLet> ) \
00131 }
00132
00133 #endif
00134