00001 00005 class MultipleReporter : public HandleId 00006 00007 { 00008 protected: 00009 00010 String filename; 00011 int max_char_pr_summary_line; 00012 bool open_files; 00013 String purpose; 00014 00015 public: 00016 00017 Handle(Reporter) full_latex, full_ascii, full_html; 00018 Handle(Reporter) sum_latex, sum_ascii, sum_html; 00019 Os sum_data; 00020 00021 MultipleReporter (); 00022 ~MultipleReporter (); 00023 00024 virtual bool ok () const; 00025 00026 virtual void open (); 00027 virtual void open (const String& filename); 00028 00029 00030 00031 00032 virtual MultipleReporter& header (const String& title, const String& author, 00033 bool fullpage = true, 00034 bool singlefile = true, 00035 const char* purpose = NULL); 00036 virtual MultipleReporter& trailer (); 00037 virtual String getSectionRef (); 00038 00039 virtual MultipleReporter& section (const String& txt); 00040 virtual MultipleReporter& subsection (const String& txt); 00041 virtual MultipleReporter& section (const String& txt, 00042 const String& label); 00043 virtual MultipleReporter& subsection (const String& txt, 00044 const String& label); 00045 virtual MultipleReporter& subsubsection (const String& txt); 00046 virtual MultipleReporter& subsubsection (const String& txt, 00047 const String& label); 00048 virtual MultipleReporter& multipleLoopSection (int run_no, 00049 const char* heading=NULL); 00050 virtual MultipleReporter& multipleLoopSection (int run_no, MenuSystem& menu, 00051 const char* heading=NULL); 00052 00053 virtual MultipleReporter& pagebreak (); 00054 virtual MultipleReporter& linebreak (); 00055 virtual MultipleReporter& eject (int n = 1); 00056 virtual MultipleReporter& drawline (); 00057 virtual MultipleReporter& putLabel (const String& label); 00058 virtual MultipleReporter& putReference(const String& label); 00059 virtual MultipleReporter& putReference(const String& label, 00060 const String& document); 00061 virtual MultipleReporter& flush (); 00062 00063 virtual MultipleReporter& beginGroup (TextStyle style); 00064 virtual MultipleReporter& endGroup (); 00065 virtual String getGroup (const String& txt, TextStyle style); 00066 00067 00068 virtual String cellpad (const String& s); 00069 00070 00071 virtual String adaptString (const String& txt); 00072 00073 00074 virtual MultipleReporter& insert (const String& txt); 00075 virtual MultipleReporter& put (const String& txt); 00076 virtual MultipleReporter& putmathline (const String& txt); 00077 virtual MultipleReporter& centerline (const String& txt); 00078 00079 virtual MultipleReporter& insertDocument (const String& basename); 00080 virtual MultipleReporter& insertVerbatim (const String& file); 00081 00082 00083 virtual MultipleReporter& put (ArrayGenSimple(String)& tb); 00084 virtual MultipleReporter& put (ArrayGenSimple(real)& tb); 00085 virtual MultipleReporter& put (ArrayGenSimple(real)& tb, 00086 const String& cell_format); 00087 virtual MultipleReporter& put (ArrayGenSimple(real)& tb, 00088 ArrayGenSimple(String)& cell_format); 00089 00090 virtual MultipleReporter& beginCenter (); 00091 virtual MultipleReporter& endCenter (); 00092 virtual MultipleReporter& beginTabular (int ncols, 00093 const String& col_format); 00094 virtual MultipleReporter& endTabular (); 00095 virtual MultipleReporter& beginTable (int ncols, const String& col_format); 00096 virtual MultipleReporter& endTable (const String& caption, 00097 const String& label); 00098 virtual MultipleReporter& beginItemize (); 00099 virtual MultipleReporter& endItemize (); 00100 virtual MultipleReporter& beginEnumerate (); 00101 virtual MultipleReporter& endEnumerate (); 00102 virtual MultipleReporter& beginFigure (const String& psfilename, 00103 real cmWidth = 10.0); 00104 virtual MultipleReporter& endFigure (const String& caption, 00105 const String& label); 00106 00107 virtual MultipleReporter& beginDispmath (); 00108 virtual MultipleReporter& endDispmath (); 00109 00110 virtual String makeLabelRef (const String& label); 00111 virtual String getCurrPlotDir (); 00112 00113 00114 00115 virtual MultipleReporter& figure (const String& psfilename, 00116 const String& caption, 00117 const String& label, real cmWidth = 10.0); 00118 virtual MultipleReporter& figure (const Strings& psfilename, 00119 const Strings& caption, 00120 const String& common_caption, 00121 const Strings& label, real cmWidth = 10.0); 00122 virtual MultipleReporter& setFigureCollectMode (bool mode); 00123 virtual MultipleReporter& dumpMultipleFigures (); 00124 virtual MultipleReporter& dumpPlotCmd (const StringList& command); 00125 00126 virtual MultipleReporter& displaymath (const String& txt); 00127 00128 virtual void specialTextASCII (const String& txt); 00129 virtual void specialTextLaTeX (const String& txt); 00130 virtual void specialTextHTML (const String& txt); 00131 00132 00133 00134 virtual void process (bool postscript = true); 00135 virtual void print (bool postscript = true); 00136 virtual void preview (bool postscript = true); 00137 00138 00139 00140 protected: 00141 00142 00143 00144 bool figure_collect_mode; 00145 StringList psfilename_list, caption_list, label_list; 00146 real max_cmWidth; 00147 int psfilename_counter; 00148 00149 00150 00151 ArrayGenSimple(String) summary_page; 00152 int i_summary_column; 00153 Strings summary_heading; 00154 00155 public: 00156 00157 virtual void setSummaryTableLineLength (int max_chars); 00158 virtual void putSummaryTable (ArrayGenSimple(String)& table); 00159 virtual void putSummaryHeading 00160 (const String& title, const String& author, const Strings& headings, 00161 bool fullpage = true, bool singlefile = true); 00162 virtual void putSummary4oneSim (const Strings& results, int icomb); 00163 virtual void endSummary (); 00164 00165 COPY_CONSTRUCTOR(MultipleReporter) 00166 }; 00167 00168