X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathMacroArgument.cpp;h=76b43f3629f255a0fffc3f5a0ee4186ed8e95bc8;hb=2de30c62f8d671a8c8d4d52a6a7310e2c5ca84de;hp=4d2badb9e072e830af90fd7082e18f1f9d33af2a;hpb=f497296c30e6da2f97b16da8ad1c9e96feffb16b;p=lyx.git diff --git a/src/mathed/MathMacroArgument.cpp b/src/mathed/MathMacroArgument.cpp index 4d2badb9e0..76b43f3629 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,25 +14,20 @@ #include "MathMacroArgument.h" #include "MathStream.h" #include "MathSupport.h" -#include "debug.h" +#include "support/debug.h" -namespace lyx { - -using std::endl; -using std::auto_ptr; -using std::size_t; -using std::vector; +namespace lyx { -MathMacroArgument::MathMacroArgument(size_t n) +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); } - // 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. @@ -42,9 +37,20 @@ MathMacroArgument::MathMacroArgument(size_t n) } -auto_ptr MathMacroArgument::doClone() const +Inset * MathMacroArgument::clone() const +{ + return new MathMacroArgument(*this); +} + + +void MathMacroArgument::setNumber(int n) { - return auto_ptr(new MathMacroArgument(*this)); + if (n < 1 || n > 9) { + LYXERR0("MathMacroArgument::setNumber: wrong Argument id: " << n); + } + + number_ = n; + str_[1] = '0' + n; } @@ -54,20 +60,15 @@ void MathMacroArgument::write(WriteStream & os) const } -bool MathMacroArgument::metrics(MetricsInfo & mi, Dimension & dim) const +void MathMacroArgument::metrics(MetricsInfo & mi, Dimension & dim) const { - mathed_string_dim(mi.base.font, str_, dim); - if (dim_ == dim) - return false; - dim_ = dim; - return true; + metricsStrRedBlack(mi, dim, str_); } void MathMacroArgument::draw(PainterInfo & pi, int x, int y) const { drawStrRed(pi, x, y, str_); - setPosCache(pi, x, y); }