/***** * drawverbatim.h * John Bowman 2003/03/18 * * Add verbatim postscript to picture. *****/ #ifndef DRAWVERBATIM_H #define DRAWVERBATIM_H #include "drawelement.h" namespace camp { enum Language {PostScript,TeX}; class drawVerbatim : public drawElement { private: Language language; string text; bool userbounds; pair min,max; bool havebounds; public: drawVerbatim(Language language, const string& text) : language(language), text(text), userbounds(false), havebounds(false) {} drawVerbatim(Language language, const string& text, pair min, pair max) : language(language), text(text), userbounds(true), min(min), max(max), havebounds(false) {} virtual ~drawVerbatim() {} void bounds(bbox& b, iopipestream& tex, boxvector&, bboxlist&) { if(havebounds) return; havebounds=true; if(language == TeX) tex << text << "%" << newl; if(userbounds) { b += min; b += max; } } bool islabel() { return language == TeX; } bool draw(psfile *out) { if(language == PostScript) out->verbatimline(text); return true; } bool write(texfile *out, const bbox&) { if(language == TeX) out->verbatimline(stripblanklines(text)); return true; } }; } #endif