moved kdeaccessibility kdeaddons kdeadmin kdeartwork kdebindings kdeedu kdegames...
[kdeedu.git] / kig / scripting / python_scripter.h
blob8a677e8c2dcf3b456985e5c6647103e2f0fc6030
1 // Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16 // 02111-1307, USA.
18 #ifndef KIG_SCRIPTING_PYTHON_SCRIPTER_H
19 #define KIG_SCRIPTING_PYTHON_SCRIPTER_H
21 #include "../objects/common.h"
23 #include <string>
25 class KigDocument;
26 class ObjectImp;
28 class CompiledPythonScript
30 friend class PythonScripter;
31 class Private;
32 Private* const d;
33 CompiledPythonScript( Private* );
34 public:
35 CompiledPythonScript( const CompiledPythonScript& s );
36 ~CompiledPythonScript();
37 ObjectImp* calc( const Args& a, const KigDocument& doc );
39 bool valid();
42 class PythonScripter
44 friend class CompiledPythonScript;
45 class Private;
46 Private* d;
47 PythonScripter();
48 ~PythonScripter();
50 void clearErrors();
51 void saveErrors();
53 bool erroroccurred;
54 std::string lastexceptiontype;
55 std::string lastexceptionvalue;
56 std::string lastexceptiontraceback;
57 public:
58 static PythonScripter* instance();
60 bool errorOccurred() const;
61 std::string lastErrorExceptionType() const;
62 std::string lastErrorExceptionValue() const;
63 std::string lastErrorExceptionTraceback() const;
65 CompiledPythonScript compile( const char* code );
66 ObjectImp* calc( CompiledPythonScript& script, const Args& args );
69 #endif