X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathMacroTemplate.cpp;h=d4cf4cfa560bbf830c9b982564ac9fb0aa7c35f8;hb=6c13af3f298a96c5564684b83c52989473b020ce;hp=5fbba55656435865580fb19febf85b52c6d1845b;hpb=3fd2398a28c8d2c85d1bb2c33c6ca15bfc398b54;p=lyx.git diff --git a/src/mathed/MathMacroTemplate.cpp b/src/mathed/MathMacroTemplate.cpp index 5fbba55656..d4cf4cfa56 100644 --- a/src/mathed/MathMacroTemplate.cpp +++ b/src/mathed/MathMacroTemplate.cpp @@ -269,14 +269,12 @@ Inset * InsetMathWrapper::clone() const void InsetMathWrapper::metrics(MetricsInfo & mi, Dimension & dim) const { value_->metrics(mi, dim); - //metricsMarkers2(dim); } void InsetMathWrapper::draw(PainterInfo & pi, int x, int y) const { value_->draw(pi, x, y); - //drawMarkers(pi, x, y); } @@ -369,6 +367,7 @@ Inset * InsetNameWrapper::clone() const void InsetNameWrapper::metrics(MetricsInfo & mi, Dimension & dim) const { + Changer dummy = mi.base.changeFontSet("textit"); InsetMathWrapper::metrics(mi, dim); dim.wid += mathed_string_width(mi.base.font, from_ascii("\\")); } @@ -376,19 +375,17 @@ void InsetNameWrapper::metrics(MetricsInfo & mi, Dimension & dim) const void InsetNameWrapper::draw(PainterInfo & pi, int x, int y) const { - // create fonts - PainterInfo namepi = pi; - if (parent_.validMacro()) - namepi.base.font.setColor(Color_latex); - else - namepi.base.font.setColor(Color_error); + ColorCode const color = parent_.validMacro() ? Color_latex : Color_error; + + Changer dummy = pi.base.changeFontSet("textit"); + Changer dummy2 = pi.base.font.changeColor(color); // draw backslash - pi.pain.text(x, y, from_ascii("\\"), namepi.base.font); - x += mathed_string_width(namepi.base.font, from_ascii("\\")); + pi.pain.text(x, y, from_ascii("\\"), pi.base.font); + x += mathed_string_width(pi.base.font, from_ascii("\\")); // draw name - InsetMathWrapper::draw(namepi, x, y); + InsetMathWrapper::draw(pi, x, y); } @@ -544,7 +541,7 @@ void MathMacroTemplate::createLook(int args) const void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const { Changer dummy1 = mi.base.changeFontSet("mathnormal"); - Changer dummy2 = mi.base.changeStyle(LM_ST_TEXT); + Changer dummy2 = mi.base.font.changeStyle(LM_ST_TEXT); // valid macro? MacroData const * macro = 0; @@ -578,8 +575,6 @@ void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const dim.wid += 6; dim.des += 2; dim.asc += 2; - - setDimCache(mi, dim); } @@ -588,16 +583,15 @@ void MathMacroTemplate::draw(PainterInfo & pi, int x, int y) const // FIXME: Calling Changer on the same object repeatedly is inefficient. Changer dummy0 = pi.base.font.changeColor(Color_math); Changer dummy1 = pi.base.changeFontSet("mathnormal"); - Changer dummy2 = pi.base.changeStyle(LM_ST_TEXT); + Changer dummy2 = pi.base.font.changeStyle(LM_ST_TEXT); - setPosCache(pi, x, y); Dimension const dim = dimension(*pi.base.bv); // draw outer frame int const a = y - dim.asc + 1; int const w = dim.wid - 2; int const h = dim.height() - 2; - pi.pain.rectangle(x, a, w, h, Color_mathframe); + pi.pain.rectangle(x + 1, a, w, h, Color_mathframe); // just to be sure: set some dummy values for coord cache for (idx_type i = 0; i < nargs(); ++i) @@ -1389,16 +1383,18 @@ string MathMacroTemplate::contextMenuName() const return "context-math-macro-definition"; } + void MathMacroTemplate::addToToc(DocIterator const & pit, bool output_active, - UpdateType) const + UpdateType, TocBackend & backend) const { - shared_ptr toc = buffer().tocBackend().toc("math-macro"); docstring str; if (!validMacro()) str = bformat(_("Invalid macro! \\%1$s"), name()); else str = "\\" + name(); - toc->push_back(TocItem(pit, 0, str, output_active)); + TocBuilder & b = backend.builder("math-macro"); + b.pushItem(pit, str, output_active); + b.pop(); }