if (parent_.editing(mi.base.bv) && label_.length() > 0) {
// grey
FontInfo font = sane_font;
- font.setSize(FONT_SIZE_TINY);
+ font.setSize(TINY_SIZE);
font.setColor(Color_mathmacrolabel);
// make space for label and box
if (parent_.editing(pi.base.bv) && label_.length() > 0) {
// grey
FontInfo font = sane_font;
- font.setSize(FONT_SIZE_TINY);
+ font.setSize(TINY_SIZE);
font.setColor(Color_mathmacrolabel);
// make space for label and box
{
InsetLabelBox::metrics(mi, dim);
if (!parent_.editing(mi.base.bv)
- && parent_.cell(parent_.displayIdx()).empty()) {
- dim.wid = 0;
- dim.asc = 0;
- dim.des = 0;
- }
+ && parent_.cell(parent_.displayIdx()).empty())
+ dim.clear();
}
void InsetDisplayLabelBox::draw(PainterInfo & pi, int x, int y) const
{
if (parent_.editing(pi.base.bv)
- || !parent_.cell(parent_.displayIdx()).empty()) {
- InsetLabelBox::draw(pi, x, y);
- } else {
- bool enabled = pi.pain.isDrawingEnabled();
- pi.pain.setDrawingEnabled(false);
- InsetLabelBox::draw(pi, x, y);
- pi.pain.setDrawingEnabled(enabled);
- }
+ || !parent_.cell(parent_.displayIdx()).empty()
+ || pi.pain.isNull())
+ InsetLabelBox::draw(pi, x, y);
}
class InsetMathWrapper : public InsetMath {
public:
///
- InsetMathWrapper(MathData const * value) : value_(value) {}
+ explicit InsetMathWrapper(MathData const * value) : value_(value) {}
///
void metrics(MetricsInfo & mi, Dimension & dim) const;
///
class InsetColoredCell : public InsetMathNest {
public:
///
- InsetColoredCell(Buffer * buf, ColorCode min, ColorCode max);
+ InsetColoredCell(Buffer * buf, ColorCode blend);
///
- InsetColoredCell(Buffer * buf, ColorCode min, ColorCode max, MathAtom const & atom);
+ InsetColoredCell(Buffer * buf, ColorCode blend, MathAtom const & atom);
///
void draw(PainterInfo &, int x, int y) const;
///
///
Inset * clone() const;
///
- ColorCode min_;
- ///
- ColorCode max_;
+ ColorCode blend_;
};
-InsetColoredCell::InsetColoredCell(Buffer * buf, ColorCode min, ColorCode max)
- : InsetMathNest(buf, 1), min_(min), max_(max)
+InsetColoredCell::InsetColoredCell(Buffer * buf, ColorCode blend)
+ : InsetMathNest(buf, 1), blend_(blend)
{
}
-InsetColoredCell::InsetColoredCell(Buffer * buf, ColorCode min, ColorCode max, MathAtom const & atom)
- : InsetMathNest(buf, 1), min_(min), max_(max)
+InsetColoredCell::InsetColoredCell(Buffer * buf, ColorCode blend, MathAtom const & atom)
+ : InsetMathNest(buf, 1), blend_(blend)
{
cell(0).insert(0, atom);
}
void InsetColoredCell::draw(PainterInfo & pi, int x, int y) const
{
- pi.pain.enterMonochromeMode(min_, max_);
+ pi.pain.enterMonochromeMode(blend_);
cell(0).draw(pi, x, y);
pi.pain.leaveMonochromeMode();
}
// color it light grey, if it is to be removed when the cursor leaves
if (i == argsInLook_) {
optData->push_back(MathAtom(
- new InsetColoredCell(buffer_, Color_mathbg, Color_mathmacrooldarg)));
+ new InsetColoredCell(buffer_, Color_mathmacrooldarg)));
optData = &(*optData)[optData->size() - 1].nucleus()->cell(0);
}
arg.push_back(MathAtom(new InsetMathMacroArgument(i + 1)));
if (i >= argsInLook_) {
look_.push_back(MathAtom(new InsetColoredCell(buffer_,
- Color_mathbg, Color_mathmacrooldarg,
+ Color_mathmacrooldarg,
MathAtom(new InsetMathBrace(arg)))));
} else
look_.push_back(MathAtom(new InsetMathBrace(arg)));
MathData arg;
arg.push_back(MathAtom(new InsetMathMacroArgument(i + 1)));
look_.push_back(MathAtom(new InsetColoredCell(buffer_,
- Color_mathbg, Color_mathmacronewarg,
+ Color_mathmacronewarg,
MathAtom(new InsetMathBrace(arg)))));
}
void InsetMathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const
{
Changer dummy1 = mi.base.changeFontSet("mathnormal");
- Changer dummy2 = mi.base.font.changeStyle(LM_ST_TEXT);
+ Changer dummy2 = mi.base.font.changeStyle(TEXT_STYLE);
// valid macro?
MacroData const * macro = 0;
if (macro)
macro->unlock();
- dim.wid += 6;
- dim.des += 2;
- dim.asc += 2;
+ dim.wid += leftOffset(mi.base.bv) + rightOffset(mi.base.bv);;
+ dim.des += bottomOffset(mi.base.bv);
+ dim.asc += topOffset(mi.base.bv);
}
// 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.font.changeStyle(LM_ST_TEXT);
+ Changer dummy2 = pi.base.font.changeStyle(TEXT_STYLE);
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 + 1, a, w, h, Color_mathframe);
+ int const hoffset = leftOffset(pi.base.bv) + rightOffset(pi.base.bv);
+ int const voffset = topOffset(pi.base.bv) + bottomOffset(pi.base.bv);
+ int const a = y - dim.asc + topOffset(pi.base.bv) / 2;
+ int const w = dim.wid - (hoffset - hoffset / 2);
+ int const h = dim.height() - (voffset - voffset / 2);
+ pi.pain.rectangle(x + leftOffset(pi.base.bv) / 2, a, w, h, Color_mathframe);
// just to be sure: set some dummy values for coord cache
for (idx_type i = 0; i < nargs(); ++i)
cell(i).setXY(*pi.base.bv, x, y);
// draw contents
- look_.draw(pi, x + 3, y);
+ look_.draw(pi, x + leftOffset(pi.base.bv), y);
}
{
public:
///
- OptionalsMacroInstanceFix(int optionals) : optionals_(optionals) {}
+ explicit OptionalsMacroInstanceFix(int optionals) : optionals_(optionals) {}
///
void operator()(InsetMathMacro * macro)
{
// \global\def\long\foo#1#2{#1,#2}
// We use the \long prefix as this is the equivalent to \newcommand.
// We cannot use \newcommand directly because \global does not work with it.
- os << "\\global\\long\\def\\" << name();
+ os << "\n\\global\\long\\def\\" << name();
docstring param = from_ascii("#0");
for (int i = 1; i <= numargs_; ++i) {
param[1] = '0' + i;
if (os.latex()) {
// writing .tex. done.
- os << "\n";
+ os << "%\n";
++num_lines;
} else {
// writing .lyx, write special .tex export only if necessary
}
-docstring InsetMathMacroTemplate::xhtml(XHTMLStream &, OutputParams const &) const
+docstring InsetMathMacroTemplate::xhtml(XMLStream &, OutputParams const &) const
{
return docstring();
}
return false;*/
// valid characters?
- for (size_t i = 0; i < n.size(); ++i) {
- if (!(n[i] >= 'a' && n[i] <= 'z')
- && !(n[i] >= 'A' && n[i] <= 'Z')
- && n[i] != '*')
- return false;
+ if (n.size() > 1) {
+ for (size_t i = 0; i < n.size(); ++i) {
+ if (!(n[i] >= 'a' && n[i] <= 'z')
+ && !(n[i] >= 'A' && n[i] <= 'Z')
+ && n[i] != '*')
+ return false;
+ }
}
return true;