/* This file is part of the KDE project Copyright (C) 2003 Ian Reinhart Geiser (geiseri@kde.org) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "javascript.h" #include #include #include #include #include #include #include #include //using namespace KScriptInterface; typedef KGenericFactory JavaScriptFactory; K_EXPORT_COMPONENT_FACTORY( libjavascript, JavaScriptFactory( "JavaScript" ) ) JavaScript::JavaScript(KScriptClientInterface *parent, const char *name, const TQStringList &args ) { ScriptClientInterface = parent; m_jsembed = new KJSEmbed::KJSEmbedPart(this, "kjsembed_part"); m_scriptLoc = ""; // arg1? m_method = ""; // arg2? m_jsembed->addObject( this, "KScriptInterface"); m_jsembed->addObject( m_jsembed->view(), "console" ); } JavaScript::~JavaScript() { } TQString JavaScript::script() const { return m_scriptLoc; } void JavaScript::setScript( const TQString &scriptFile ) { m_scriptLoc = scriptFile; } void JavaScript::setScript( const TQString &scriptFile, const TQString &method ) { m_scriptLoc = scriptFile; m_method = method; } void JavaScript::run(TQObject *context, const TQVariant &arg) { TQVariant retVal; if( context ) m_jsembed->addObject(context); m_jsembed->runFile(m_scriptLoc, m_jsembed->globalObject() ); if( !m_method.isEmpty() ) { KJS::List args; args.append( KJSEmbed::convertToValue(m_jsembed->globalExec(), arg) ); KJS::Value val = m_jsembed->callMethod(m_method, args); retVal = KJSEmbed::convertToVariant(m_jsembed->globalExec(),val); } ScriptClientInterface->done(KScriptClientInterface::ResultSuccess, retVal); } void JavaScript::writeLine( const TQString &msg ) { ScriptClientInterface->output(msg); } void JavaScript::writeWarning( const TQString &msg ) { ScriptClientInterface->warning(msg); } void JavaScript::writeError( const TQString &msg ) { ScriptClientInterface->error(msg); } void JavaScript::setProgress( int percent ) { ScriptClientInterface->progress(percent); } TQString JavaScript::appID() const { return kapp->dcopClient()->appId(); } void JavaScript::kill() { // not sure what to do here.... } #include "javascript.moc"