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 typedef void (*PlaybackFunc) (int message, uptr_t wParam, const sptr_t lParam, void* user_data); 21 typedef void (*TranslateFunc) (const char* text, void* user_data); 22 23 24 struct MacroMessage; 25 26 27 class MacroRecorder: public FXObject { 28 FXObjectListOf<MacroMessage> list; 29 public: 30 void record(int message, uptr_t wParam, sptr_t lParam); 31 void playback(PlaybackFunc callback, void* user_data); 32 void translate(TranslateFunc callback, void* user_data); 33 const FXString translate(); 34 void clear(); 35 MacroRecorder(); 36 ~MacroRecorder(); 37 }; 38 39