00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KJSEMBEDJSOBJECTPROXYIMP_H
00023 #define KJSEMBEDJSOBJECTPROXYIMP_H
00024
00025 #include <kjs/object.h>
00026 #include <kjsembed/jsbinding.h>
00027
00028 class QObject;
00029
00030 namespace KJS { class Interpreter; };
00031
00032 namespace KJSEmbed {
00033 namespace Bindings {
00034
00038 class JSObjectProxyImp : public KJS::ObjectImp
00039 {
00040 public:
00041 enum MethodId {
00042 MethodCreate,
00043 MethodChildren, MethodSlots, MethodProps,
00044 MethodParent, MethodFindChild, MethodChild, MethodChildCount, MethodChildAt,
00045
00046 MethodSlot, MethodSlotInt, MethodSlotBool, MethodSlotString, MethodSlotDouble,
00047 MethodSlotIntInt, MethodSlotStringInt,
00048
00049 MethodCustom = 0x1000
00050 };
00051
00052 JSObjectProxyImp( int id, const JSObjectProxy *parent );
00053 JSObjectProxyImp( int id, const QCString &name, const JSObjectProxy *parent );
00054 ~JSObjectProxyImp() {}
00055
00056 KJS::Value childAt( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00057 KJS::Value findChild( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00058
00059 KJS::Value children( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00060 KJS::Value properties( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00061 KJS::Value slotz( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00062
00063 KJS::Value callSlot( KJS::ExecState *state, KJS::Object &self, const KJS::List &args );
00064
00065 static int findSignature( const QString &sig );
00066
00067 virtual bool implementsCall() const { return true; }
00068 virtual KJS::Value call( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args );
00069
00070 private:
00071 int id;
00072 QCString slotname;
00073 const JSObjectProxy *proxy;
00074 QObject *obj;
00075 class Private *d;
00076 };
00077
00078 }
00079 };
00080
00081 #endif // KJSEMBEDJSOBJECTPROXYIMP_H
00082
00083
00084
00085