00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KJSEMBEDJSCONSOLEWIDGET_H
00023 #define KJSEMBEDJSCONSOLEWIDGET_H
00024
00025 #include <qframe.h>
00026
00027 class QPushButton;
00028 class QHBox;
00029
00030 class KLineEdit;
00031 class KPopupTitle;
00032 class KProcess;
00033 class KShellProcess;
00034 class KTextEdit;
00035
00036 namespace KJS {
00037 class Value;
00038 }
00039
00040 namespace KJSEmbed {
00041
00042 class KJSEmbedPart;
00043
00061 class JSConsoleWidget : public QFrame
00062 {
00063 Q_OBJECT
00064
00065 public:
00066 JSConsoleWidget( KJSEmbedPart *js, QWidget *parent=0, const char *name=0 );
00067 virtual ~JSConsoleWidget();
00068
00069 public slots:
00071 KJSEmbed::KJSEmbedPart *jscript() const { return js; }
00072
00074 KTextEdit *messages() const { return log; }
00075
00077 KPopupTitle *title() const { return ttl; }
00078
00084 QHBox *commandBox() const { return cmdBox; }
00085
00087 void invoke();
00088
00090 virtual bool execute( const QString &cmd );
00091
00092 bool execute( const QString &cmd, const KJS::Value &self );
00093
00095 virtual void println( const QString &text );
00096
00101 virtual void warn( const QString &text );
00102
00117 virtual bool run( const QString &shellCmd );
00118
00119 protected:
00121 void createView();
00122
00123 protected slots:
00125 void childExited();
00126
00128 void receivedStdOutput(KProcess *, char *, int);
00129
00131 void receivedStdError(KProcess *, char *, int);
00132
00133 private:
00134 KJSEmbedPart *js;
00135 KShellProcess *proc;
00136
00137 KTextEdit *log;
00138 QHBox *cmdBox;
00139 KLineEdit *cmd;
00140 QPushButton *go;
00141 KPopupTitle *ttl;
00142
00143 class JSConsoleWidgetPrivate *d;
00144 };
00145
00146 }
00147
00148 #endif // KJSEMBEDJSCONSOLEWIDGET_H
00149
00150
00151
00152