X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FScriptingDock.hxx;fp=src%2Fgui%2Fwidgets%2FScriptingDock.hxx;h=d60158be68cb9dedd4b58df448ef24f01396406f;hp=0000000000000000000000000000000000000000;hb=9f0c6d8fbed0f25248f28acced4c7372dd259d7a;hpb=f599dfc8d14e90bbd2a2946c107cfeebc901184a diff --git a/src/gui/widgets/ScriptingDock.hxx b/src/gui/widgets/ScriptingDock.hxx new file mode 100644 index 0000000..d60158b --- /dev/null +++ b/src/gui/widgets/ScriptingDock.hxx @@ -0,0 +1,39 @@ +#ifndef INCLUDE__ScriptingDock_hxx +#define INCLUDE__ScriptingDock_hxx +#include "gui/qt.hxx" +#include +#include + +class ScriptingDock : public QDockWidget { + Q_OBJECT + +public: + ScriptingDock(const QString& title, QWidget * parent = 0) + : logger(log4cxx::Logger::getLogger("ScriptingDock")) { + QDockWidget(title, parent); + QWidget * widget = new QWidget; + widget->setLayout(layout = new QGridLayout(this)); + layout->addWidget(browser = new QTextBrowser, 0, 0, 1, 0); + layout->addWidget(line = new QLineEdit, 1, 0); + layout->addWidget(button = new QPushButton(tr("Evaluate")), 1, 1); + setWidget(widget); + connect(button, SIGNAL(released()), this, SLOT(doEvaluate())); + connect(line, SIGNAL(returnPressed()), this, SLOT(doEvaluate())); + scm_init_guile(); + guile_output_port = scm_open_output_string(); + scm_set_current_output_port(guile_output_port); + } +private: + log4cxx::LoggerPtr logger; + + QTextBrowser * browser; + QGridLayout * layout; + QPushButton * button; + QLineEdit * line; + + SCM guile_output_port; +private slots: + void doEvaluate(); +}; + +#endif