00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KJSEMBEDFACTORY_H
00023 #define KJSEMBEDFACTORY_H
00024
00025 #include <qstringlist.h>
00026
00027 #include <kparts/part.h>
00028 #include <kjs/interpreter.h>
00029 #include <kjs/object.h>
00030 #include <kjsembed/jsbinding.h>
00031 #include <kjsembed/xmlactionclient.h>
00032
00033 class QWidget;
00034
00038 namespace KJSEmbed {
00039
00040 namespace Bindings { class KJSEmbedPartImp; };
00041 class JSObjectProxy;
00042 class JSConsoleWidget;
00043 class KJSEmbedPart;
00044
00048 class JSFactory
00049 {
00050 public:
00051
00053 static KJS::Interpreter *createInterpreter();
00054
00059 static KJS::Object addObject( KJS::Interpreter *js, QObject *obj, KJS::Object &parent, const char *name=0 );
00060
00062 static KJS::Object bind( KJS::Interpreter *js, QObject *obj );
00063
00064 static void addStdBindings( KJSEmbedPart *part, KJS::ExecState *exec, KJS::Object &object );
00065
00066 static void addBuiltIn( KJSEmbedPart *part, KJS::ExecState *state, KJS::Object &parent );
00067 static void addFactory( KJSEmbedPart *part, KJS::ExecState *state, KJS::Object &parent );
00068 static void addIO( KJSEmbedPart *part, KJS::ExecState *state, KJS::Object &parent );
00069 static void addSystem( KJSEmbedPart *part, KJS::ExecState *state, KJS::Object &parent );
00070 static void addWidgets( KJSEmbedPart *part, KJS::ExecState *state, KJS::Object &parent );
00071
00076 static QObject *create( QString classname, QObject *parent=0, const char *name=0 );
00077
00082 static QWidget *loadUI( const QString &uiFile, QObject *connector=0, QWidget *parent=0, const char *name=0 );
00083
00084 private:
00086 static Bindings::KJSEmbedPartImp *createPartImp( KJSEmbedPart *part, int id, const QString ¶m=QString::null );
00087 };
00088
00089
00090 };
00091
00092 #endif // KJSEMBEDFACTORY_H
00093
00094
00095
00096