1 /* 2 FXiTe - The Free eXtensIble Text Editor 3 Copyright (c) 2009 Jeffrey Pohlmeyer <yetanothergeek@gmail.com> 4 5 This program is free software; you can redistribute it and/or modify it 6 under the terms of the GNU General Public License version 3 as 7 published by the Free Software Foundation. 8 9 This software is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software 16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19 20 class TopWindow; 21 22 struct lua_State; 23 24 #define LUA_MODULE_NAME "fxite" 25 26 class MacroRunner: public FXObject { 27 private: 28 Dictionary keepers; // <- Data stored between Lua states 29 void ClearKeepers(); 30 void PushKeepers(lua_State *L); 31 void PopKeepers(lua_State *L); 32 bool RunMacro(const FXString &source, bool isfilename); 33 public: 34 MacroRunner(); 35 ~MacroRunner(); 36 bool DoFile(const FXString &filename); 37 bool DoString(const FXString &sourcecode); 38 }; 39 40