00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KJSEMBEDJSCONSOLEPART_H
00023 #define KJSEMBEDJSCONSOLEPART_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
00035 #define KJSEMBED_VERSION_STRING "KJSEmbed 0.2"
00036 #define KJSEMBED_VERSION_MAJOR 0
00037 #define KJSEMBED_VERSION_MINOR 2
00038
00042 namespace KJSEmbed {
00043
00044 class JSObjectProxy;
00045 class JSConsoleWidget;
00046
00053 class KJSEmbedPart : public KParts::ReadOnlyPart, public virtual KJSEmbed::XMLActionRunner
00054 {
00055 Q_OBJECT
00056
00057 public:
00059 KJSEmbedPart( QObject *parent=0, const char *name=0 );
00060
00062 KJSEmbedPart( QWidget *wparent, const char *wname=0, QObject *parent=0, const char *name=0 );
00063
00065 KJSEmbedPart( KJS::Interpreter *js, QWidget *wparent=0, const char *wname=0,
00066 QObject *parent=0, const char *name=0 );
00067
00069 virtual ~KJSEmbedPart();
00070
00072 KJS::Interpreter *interpreter() const { return js; }
00073
00075 virtual JSConsoleWidget *view();
00076
00078 void publishStdBindings();
00079
00081 KJS::Object publish( QObject *obj, const char *name=0 );
00082
00084 KJS::Object bind( QObject *obj );
00085
00087 virtual bool run( KJSEmbed::XMLActionClient *client, const KJSEmbed::XMLActionScript &script );
00088
00089 public slots:
00091 virtual bool openURL( const KURL &url );
00092
00094 bool openURL( const QString &url );
00095
00097 virtual bool executeScript( const QString &filename );
00098
00100 virtual bool execute( const QString &script );
00101
00103 bool loadActionSet( const QString &file );
00104
00106 QString loadScript( const QString &file );
00107
00108 protected:
00109 virtual bool openFile() { return false; }
00110
00111 private:
00113 friend class KJSEmbedPartImp;
00114
00115 private:
00116 XMLActionClient *xmlclient;
00117 QWidget *widgetparent;
00118 QCString widgetname;
00119 KJS::Interpreter *js;
00120 JSConsoleWidget *jsConsole;
00121 bool deletejs;
00122 KJS::Object global;
00123 class Private *d;
00124 };
00125
00126
00127 };
00128
00129 #endif // KJSEMBEDJSCONSOLEPART_H
00130
00131
00132
00133