X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetFormulaMacro.cpp;h=88897021fe2bd63fa7fce8e95b8ecbb3d9ce77ee;hb=d243e53f54e861c90ce7135f3d1a8d68d6202555;hp=f52ef78075f8469d5c22da6b0d70fc487dd66d4c;hpb=39e79d8602920eefe36e898c9f415afb979521b2;p=lyx.git diff --git a/src/mathed/InsetFormulaMacro.cpp b/src/mathed/InsetFormulaMacro.cpp index f52ef78075..88897021fe 100644 --- a/src/mathed/InsetFormulaMacro.cpp +++ b/src/mathed/InsetFormulaMacro.cpp @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Alejandro Aguilar Sierra - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -12,14 +12,13 @@ #include #include "InsetFormulaMacro.h" -#include "MathMacroTable.h" +#include "MacroTable.h" #include "MathMacroTemplate.h" #include "BufferView.h" -#include "LCursor.h" -#include "debug.h" -#include "gettext.h" -#include "LColor.h" +#include "Cursor.h" +#include "support/debug.h" +#include "support/gettext.h" #include "Lexer.h" #include "OutputParams.h" @@ -30,26 +29,19 @@ #include +using namespace std; +using namespace lyx::support; namespace lyx { -using odocstream; -using support::bformat; - -using std::string; -using std::auto_ptr; -using std::ostream; -using std::endl; - - InsetFormulaMacro::InsetFormulaMacro() - : InsetMathNest(2), name_("unknownA") + : InsetMathNest(2), name_(from_ascii("unknownA")) {} InsetFormulaMacro::InsetFormulaMacro - (string const & name, int nargs, string const & type) + (docstring const & name, int nargs, docstring const & type) : InsetMathNest(2), name_(name) { MathMacroTable::create(MathAtom(new MathMacroTemplate(name, nargs, type))); @@ -59,40 +51,43 @@ InsetFormulaMacro::InsetFormulaMacro InsetFormulaMacro::InsetFormulaMacro(string const & s) : InsetMathNest(2), name_("unknownB") { - std::istringstream is(s); + istringstream is(s); read(is); } -auto_ptr InsetFormulaMacro::clone() const +Inset * InsetFormulaMacro::clone() const { - return auto_ptr(new InsetFormulaMacro(*this)); + return new InsetFormulaMacro(*this); } -void InsetFormulaMacro::write(Buffer const &, ostream & os) const +void InsetFormulaMacro::write(ostream & os) const { os << "FormulaMacro\n"; - WriteStream wi(os, false, false); + WriteStream wi(os, false, false, WriteStream::wsDefault); tmpl()->write(wi); } -int InsetFormulaMacro::latex(Buffer const &, odocstream & os, - OutputParams const & runparams) const +void InsetFormulaMacro::latex(otexstream & os, + OutputParams const & runparams) const { //lyxerr << "InsetFormulaMacro::latex" << endl; - WriteStream wi(os, runparams.moving_arg, true); + WriteStream wi(os.os(), runparams.moving_arg, true, + runparams.dryrun ? WriteStream::wsDryrun: WriteStream::wsDefault, + runparams.encoding); + wi.canBreakLine(os.canBreakLine()); tmpl()->write(wi); - return 2; + os.canBreakLine(wi.canBreakLine()); + os.texrow().newlines(wi.line()); } -int InsetFormulaMacro::plaintext(Buffer const &, odocstream & os, - OutputParams const &) const +int InsetFormulaMacro::plaintext(odocstringstream & os, OutputParams const & runparams, size_t) const { odocstringstream oss; - WriteStream wi(oss, false, true); + WriteStream wi(oss, false, true, WriteStream::wsDefault, runparams.encoding); tmpl()->write(wi); docstring const str = oss.str(); @@ -101,20 +96,20 @@ int InsetFormulaMacro::plaintext(Buffer const &, odocstream & os, } -int InsetFormulaMacro::docbook(Buffer const & buf, ostream & os, - OutputParams const & runparams) const +int InsetFormulaMacro::docbook(ostream & os, + OutputParams const & runparams) const { - return plaintext(buf, os, runparams); + return plaintext(os, runparams); } -void InsetFormulaMacro::read(Buffer const &, Lexer & lex) +void InsetFormulaMacro::read(Lexer & lex) { read(lex.getStream()); } -void InsetFormulaMacro::read(std::istream & is) +void InsetFormulaMacro::read(istream & is) { auto_ptr p(new MathMacroTemplate(is)); name_ = p->name(); @@ -128,24 +123,22 @@ string InsetFormulaMacro::prefix() const } -bool InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const { //lyxerr << "InsetFormulaMacro: " << this << " -- " << &tmpl() << endl; tmpl()->metrics(mi, dim); dim.asc += 5; dim.des += 5; dim.wid += 10 + theFontMetrics(mi.base.font).width(prefix()); - bool const changed = dim_ != dim; dim_ = dim; - return changed; } void InsetFormulaMacro::draw(PainterInfo & p, int x, int y) const { // label - LyXFont font = p.base.font; - font.setColor(LColor::math); + Font font = p.base.font; + font.setColor(Color_math); PainterInfo pi(p.base.bv, p.pain); pi.base.style = LM_ST_TEXT; @@ -155,15 +148,13 @@ void InsetFormulaMacro::draw(PainterInfo & p, int x, int y) const int const w = dim_.wid - 2; int const h = dim_.height() - 2; - // LColor::mathbg used to be "AntiqueWhite" but is "linen" now, too - pi.pain.fillRectangle(x, a, w, h, LColor::mathmacrobg); - pi.pain.rectangle(x, a, w, h, LColor::mathframe); + // Color_mathbg used to be "AntiqueWhite" but is "linen" now, too + pi.pain.fillRectangle(x, a, w, h, Color_mathmacrobg); + pi.pain.rectangle(x, a, w, h, Color_mathframe); -#ifdef WITH_WARNINGS -#warning FIXME -#endif + // FIXME #if 0 - LCursor & cur = p.base.bv->cursor(); + Cursor & cur = p.base.bv->cursor(); if (cur.isInside(this)) cur.drawSelection(pi); #endif