From ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kig/scripting/script_mode.h | 119 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 kig/scripting/script_mode.h (limited to 'kig/scripting/script_mode.h') diff --git a/kig/scripting/script_mode.h b/kig/scripting/script_mode.h new file mode 100644 index 00000000..4cbfd737 --- /dev/null +++ b/kig/scripting/script_mode.h @@ -0,0 +1,119 @@ +// Copyright (C) 2003 Dominique Devriese + +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +// 02110-1301, USA. + +#ifndef KIG_SCRIPTING_SCRIPT_MODE_H +#define KIG_SCRIPTING_SCRIPT_MODE_H + +#include "script-common.h" + +#include "../modes/base_mode.h" + +#include + +class NewScriptWizard; + +/** + * Base mode to interact with a script. + */ +class ScriptModeBase + : public BaseMode +{ +protected: + ScriptModeBase( KigPart& doc ); + +// mp: argument list is implemented as a std::list instead of std::set +// because otherwise the user loses the correct argument ordering (in +// case of more than one argument + std::list margs; + NewScriptWizard* mwizard; + + KigPart& mpart; + + enum WAWD { SelectingArgs, EnteringCode }; + WAWD mwawd; + +private: + ScriptType::Type mtype; + +public: + virtual ~ScriptModeBase(); + + void dragRect( const QPoint& p, KigWidget& w ); +// void dragObject( const Objects& os, const QPoint& pointClickedOn, KigWidget& w, bool ctrlOrShiftDown ); + void leftClickedObject( ObjectHolder* o, const QPoint& p, + KigWidget& w, bool actrlOrShiftDown ); + void mouseMoved( const std::vector& os, const QPoint& p, + KigWidget& w, bool shiftpressed ); + void midClicked( const QPoint&, KigWidget& ); + void rightClicked( const std::vector&, const QPoint&, KigWidget& ); + + void argsPageEntered(); + void codePageEntered(); + + virtual bool queryFinish() = 0; + virtual bool queryCancel() = 0; + + void redrawScreen( KigWidget* w ); + + void killMode(); + + void enableActions(); + + void setScriptType( ScriptType::Type type ); + + void addArgs( const std::vector& obj, KigWidget& w ); + + void goToCodePage(); + +}; + +/** + * Script mode to create a script. + */ +class ScriptCreationMode + : public ScriptModeBase +{ +public: + ScriptCreationMode( KigPart& doc ); + virtual ~ScriptCreationMode(); + + virtual bool queryFinish(); + virtual bool queryCancel(); +}; + +/** + * Script mode to edit an already-built script. + */ +class ScriptEditMode + : public ScriptModeBase +{ +private: + ObjectTypeCalcer* mexecuted; + std::vector mexecargs; + std::vector mcompiledargs; + + QString morigscript; + +public: + ScriptEditMode( ObjectTypeCalcer* exec_calc, KigPart& doc ); + virtual ~ScriptEditMode(); + + virtual bool queryFinish(); + virtual bool queryCancel(); +}; + +#endif -- cgit v1.2.1