00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KJSEMBEDJSOPAQUEPROXY_H
00023 #define KJSEMBEDJSOPAQUEPROXY_H
00024
00025 #include <qcstring.h>
00026 #include <qevent.h>
00027
00028 #include <kjs/object.h>
00029 #include <kjsembed/jsproxy.h>
00030
00031 class QTextStream;
00032
00033 namespace KJSEmbed {
00034
00042 class JSOpaqueProxy : public JSProxy
00043 {
00044 public:
00046 JSOpaqueProxy();
00047
00049 JSOpaqueProxy( void *ptr, const char *ptrtype );
00050
00052 JSOpaqueProxy( QTextStream *ts );
00053
00055 JSOpaqueProxy( const QEvent *ev );
00056
00058 virtual ~JSOpaqueProxy();
00059
00060
00062 QString typeName() const;
00063
00065 void setValue( void *ptr, const char *ptrtype );
00066
00068 void setValue( QTextStream *ts );
00069
00071 void setValue( const QEvent *ev );
00072
00074 void *toVoidStar() const { return ptr; }
00075
00080 QTextStream *toTextStream();
00081
00082 const QEvent *toEvent();
00083
00085 virtual void addBindings( KJS::ExecState *state, KJS::Object &object );
00086
00088 virtual KJS::UString toString( KJS::ExecState *exec ) const;
00089
00090 private:
00091 void *ptr;
00092 QTextStream *textstream;
00093 const QEvent *event;
00094 QCString ptrtype;
00095
00096 class JSOpaqueProxyPrivate *d;
00097 };
00098
00099 }
00100
00101 #endif // KJSEMBEDJSOPAQUEPROXYIMP_H
00102
00103
00104
00105