X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathMacroArgument.cpp;h=d3a16ff8d9af6ab88e87236d0bdac06a14b5d487;hb=25d64bf43aba78a1ed20c88dfdc4cac269b53985;hp=d1735f1544b834405e691d51e966b9ff6502dd41;hpb=32871c1284f15265f652ff01c438e539a7c8181f;p=lyx.git diff --git a/src/mathed/MathMacroArgument.cpp b/src/mathed/MathMacroArgument.cpp index d1735f1544..d3a16ff8d9 100644 --- a/src/mathed/MathMacroArgument.cpp +++ b/src/mathed/MathMacroArgument.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. */ @@ -14,60 +14,77 @@ #include "MathMacroArgument.h" #include "MathStream.h" #include "MathSupport.h" -#include "debug.h" + +#include "support/debug.h" +#include "support/lassert.h" namespace lyx { -using std::endl; -using std::auto_ptr; -using std::size_t; -using std::vector; + +Inset * InsetMathHash::clone() const +{ + return new InsetMathHash(*this); +} + + +void InsetMathHash::write(WriteStream & os) const +{ + os << str_; +} + + +void InsetMathHash::metrics(MetricsInfo & mi, Dimension & dim) const +{ + metricsStrRedBlack(mi, dim, str_); +} + + +void InsetMathHash::draw(PainterInfo & pi, int x, int y) const +{ + drawStrRed(pi, x, y, str_); +} -MathMacroArgument::MathMacroArgument(size_t n) +void InsetMathHash::normalize(NormalStream & os) const +{ + os << "[hash " << str_ << "] "; +} + + +MathMacroArgument::MathMacroArgument(int n) : number_(n) { if (n < 1 || n > 9) { - lyxerr << "MathMacroArgument::MathMacroArgument: wrong Argument id: " - << n << endl; + LYXERR0("MathMacroArgument::MathMacroArgument: wrong Argument id: " + << n); + LASSERT(false, n = 1); } - // The profiler tells us not to use + + // The profiler tells us not to use // str_ = '#' + convert(n); // so we do the conversion of n to ASCII manually. // This works because 1 <= n <= 9. str_.resize(2); - str_[0] = '#'; str_[1] = '0' + n; } -auto_ptr MathMacroArgument::doClone() const +Inset * MathMacroArgument::clone() const { - return auto_ptr(new MathMacroArgument(*this)); + return new MathMacroArgument(*this); } -void MathMacroArgument::write(WriteStream & os) const +void MathMacroArgument::setNumber(int n) { - os << str_; -} - - -bool MathMacroArgument::metrics(MetricsInfo & mi, Dimension & dim) const -{ - mathed_string_dim(mi.base.font, str_, dim); - if (dim_ == dim) - return false; - dim_ = dim; - return true; -} - + if (n < 1 || n > 9) { + LYXERR0("MathMacroArgument::setNumber: wrong Argument id: " << n); + LASSERT(false, return); + } -void MathMacroArgument::draw(PainterInfo & pi, int x, int y) const -{ - drawStrRed(pi, x, y, str_); - setPosCache(pi, x, y); + number_ = n; + str_[1] = '0' + n; }