You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.3 KiB
125 lines
4.3 KiB
15 years ago
|
/* This file is part of the KDE project
|
||
|
Copyright (C) 2001 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.
|
||
|
*/
|
||
|
#ifndef __scriptclientinterface_h__
|
||
|
#define __scriptclientinterface_h__
|
||
14 years ago
|
#include <tqvariant.h>
|
||
15 years ago
|
|
||
14 years ago
|
class TQString;
|
||
15 years ago
|
|
||
|
//namespace KScriptInterface
|
||
|
//{
|
||
|
/**
|
||
|
* This class is used for allowing feedback to the main system.
|
||
|
* @author Ian Reinhart Geiser <geiseri@kde.org>
|
||
|
*
|
||
|
* To implement KScript in your application you would use this class to interface with the scripting engine.
|
||
|
* There are currently a few implementations of script managers around but developers can implement their own custom
|
||
|
* interfaces with this class.
|
||
|
* @code
|
||
14 years ago
|
* class MyScript : public TQObject, public KScriptClientInterface {
|
||
15 years ago
|
* Q_OBJECT
|
||
|
* public:
|
||
|
*
|
||
14 years ago
|
* MyScript(TQObject *parent)
|
||
15 years ago
|
* {
|
||
|
* // Create your @ref KScriptInterface here.
|
||
|
* m_interface = KParts::ComponentFactory::createInstanceFromQuery<KScriptInterface>(
|
||
13 years ago
|
* "KScriptRunner/KScriptRunner", "([X-TDE-Script-Runner] == 'bash/shell')", this );
|
||
15 years ago
|
* }
|
||
|
*
|
||
|
* virtual ~KScriptAction()
|
||
|
* {
|
||
|
* delete m_interface;
|
||
|
* }
|
||
|
*
|
||
|
* signals:
|
||
14 years ago
|
* void error ( const TQString &msg );
|
||
|
* void warning ( const TQString &msg );
|
||
|
* void output ( const TQString &msg );
|
||
15 years ago
|
* void progress ( int percent );
|
||
14 years ago
|
* void done ( KScriptClientInterface::Result result, const TQVariant &returned );
|
||
15 years ago
|
*
|
||
|
* public slots:
|
||
14 years ago
|
* void activate(const TQVariant &args)
|
||
15 years ago
|
* {
|
||
|
* m_interface->run(parent(), args);
|
||
|
* }
|
||
|
*
|
||
|
* private:
|
||
|
*
|
||
|
* KScriptInterface *m_interface;
|
||
|
* };
|
||
|
* @endcode
|
||
|
* Things to note about this example are that it only handles a single script type and instance. You may wish to
|
||
|
* extend this.
|
||
|
**/
|
||
|
|
||
|
class KScriptClientInterface
|
||
|
{
|
||
|
public:
|
||
|
enum Result { ResultSuccess, ResultFailure, ResultContinue, ResultBreak };
|
||
|
/**
|
||
|
* This function will allow the main application of any errors
|
||
|
* that have occurred during processing of the script.
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
*/
|
||
14 years ago
|
virtual void error( const TQString &msg ) =0;
|
||
15 years ago
|
/**
|
||
|
* This function will allow the main application of any warnings
|
||
|
* that have occurred during the processing of the script.
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
*/
|
||
14 years ago
|
virtual void warning( const TQString &msg ) =0;
|
||
15 years ago
|
/**
|
||
|
* This function will allow the main application of any normal
|
||
|
* output that has occurred during the processing of the script.
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
*/
|
||
14 years ago
|
virtual void output( const TQString &msg ) =0;
|
||
15 years ago
|
/**
|
||
|
* This function will allow feedback to any progress bars in the main
|
||
|
* application as to how far along the script is. This is very useful when
|
||
|
* a script is processing files or doing some long operation that is of a
|
||
|
* known duration.]
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
*/
|
||
|
virtual void progress( int percent ) =0;
|
||
|
/**
|
||
|
* This function will allow feedback on completion of the script.
|
||
|
* It turns the result as a KScriptInteface::Result, and a return
|
||
|
* value as a QVariant
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
*/
|
||
14 years ago
|
virtual void done( KScriptClientInterface::Result result, const TQVariant &returned ) =0;
|
||
15 years ago
|
/**
|
||
|
* Returned when the script has finished running.
|
||
|
* For script clients its best to implement this as a signal so feedback
|
||
|
* can be sent to the main application.
|
||
|
**/
|
||
|
//virtual bool isRunning() =0;
|
||
|
};
|
||
|
//};
|
||
|
|
||
|
#endif
|