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
00061 QString typeName() const;
00062
00064 void setValue( void *ptr, const char *ptrtype );
00065
00067 void setValue( QTextStream *ts );
00068
00070 void setValue( const QEvent *ev );
00071
00073 void *toVoidStar() { return ptr; }
00074
00076 bool inherits( const char *clazz );
00077
00082 QTextStream *toTextStream();
00083
00084 const QEvent *toEvent();
00085
00087 virtual void addBindings( KJS::ExecState *state, KJS::Object &object );
00088
00090 virtual KJS::UString toString( KJS::ExecState *exec ) const;
00091
00092 private:
00093 void *ptr;
00094 QTextStream *textstream;
00095 const QEvent *event;
00096 QCString ptrtype;
00097
00098 class JSOpaqueProxyPrivate *d;
00099 };
00100
00101 }
00102
00103 #endif // KJSEMBEDJSOPAQUEPROXYIMP_H
00104
00105
00106
00107