00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: YMacroRecorder.h 00014 00015 Author: Stefan Hundhammer <sh@suse.de> 00016 00017 /-*/ 00018 00019 #ifndef YMacroRecorder_h 00020 #define YMacroRecorder_h 00021 00022 #include <stdio.h> 00023 #include <string> 00024 #include <ycp/YCPSymbol.h> 00025 #include <ycp/YCPTerm.h> 00026 00027 class YWidget; 00028 00029 class YMacroRecorder 00030 { 00031 public: 00032 00036 YMacroRecorder( const string & macroFileName ); 00037 00038 00042 virtual ~YMacroRecorder(); 00043 00044 00048 void recordUserInput( const YCPValue & input ); 00049 00050 00054 void recordWidgetProperty( YWidget * widget, 00055 const char * propertyName ); 00056 00064 void recordMakeScreenShot( bool enabled=false, const char * filename=0 ); 00065 00069 void beginBlock(); 00070 00074 void endBlock(); 00075 00076 protected: 00077 00085 void openMacroFile( const string & macroFileName ); 00086 00090 void closeMacroFile(); 00091 00095 void writeMacroFileHeader(); 00096 00100 void writeMacroFileFooter(); 00101 00102 00106 FILE * _macroFile; 00107 00111 int _screenShotCount; 00112 }; 00113 00114 #endif // YMacroRecorder_h