#include "MathStream.h"
#include "MathParser.h"
#include "MathSupport.h"
-#include "InsetMathMacroArgument.h"
#include "Buffer.h"
#include "BufferView.h"
InsetLabelBox(Buffer * buf, docstring label, InsetMathMacroTemplate const & parent,
bool frame = false);
///
- void metrics(MetricsInfo & mi, Dimension & dim) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
///
- void draw(PainterInfo &, int x, int y) const;
+ void draw(PainterInfo &, int x, int y) const override;
protected:
///
InsetMathMacroTemplate const & parent_;
///
- Inset * clone() const;
+ Inset * clone() const override;
///
docstring const label_;
///
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
InsetMathMacroTemplate const & parent);
///
- marker_type marker(BufferView const *) const;
+ marker_type marker(BufferView const *) const override;
///
- void metrics(MetricsInfo & mi, Dimension & dim) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
///
- void draw(PainterInfo &, int x, int y) const;
+ void draw(PainterInfo &, int x, int y) const override;
protected:
///
- Inset * clone() const;
+ Inset * clone() const override;
};
}
-InsetMath::marker_type InsetDisplayLabelBox::marker(BufferView const * bv) const
+marker_type InsetDisplayLabelBox::marker(BufferView const * bv) const
{
if (parent_.editing(bv)
|| !parent_.cell(parent_.displayIdx()).empty())
- return MARKER;
+ return marker_type::MARKER;
else
- return NO_MARKER;
+ return marker_type::NO_MARKER;
}
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;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
///
- void draw(PainterInfo &, int x, int y) const;
+ void draw(PainterInfo &, int x, int y) const override;
private:
///
- Inset * clone() const;
+ Inset * clone() const override;
///
MathData const * value_;
};
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;
+ void draw(PainterInfo &, int x, int y) const override;
///
- void metrics(MetricsInfo & mi, Dimension & dim) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
protected:
///
- Inset * clone() const;
- ///
- ColorCode min_;
+ Inset * clone() const override;
///
- 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();
}
///
InsetNameWrapper(MathData const * value, InsetMathMacroTemplate const & parent);
///
- void metrics(MetricsInfo & mi, Dimension & dim) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
///
- void draw(PainterInfo &, int x, int y) const;
+ void draw(PainterInfo &, int x, int y) const override;
private:
///
InsetMathMacroTemplate const & parent_;
///
- Inset * clone() const;
+ Inset * clone() const override;
};
// 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(FONT_STYLE_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(FONT_STYLE_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);
}
if (it.nextInset()->lyxCode() != MATH_MACROARG_CODE)
continue;
InsetMathMacroArgument * arg = static_cast<InsetMathMacroArgument*>(it.nextInset());
- maxArg = std::max(int(arg->number()), maxArg);
+ maxArg = std::max(arg->number(), maxArg);
}
return maxArg;
}
{
public:
///
- OptionalsMacroInstanceFix(int optionals) : optionals_(optionals) {}
+ explicit OptionalsMacroInstanceFix(int optionals) : optionals_(optionals) {}
///
void operator()(InsetMathMacro * macro)
{
bool InsetMathMacroTemplate::getStatus(Cursor & cur, FuncRequest const & cmd,
- FuncStatus & flag) const
+ FuncStatus & status) const
{
bool ret = true;
string const arg = to_utf8(cmd.argument());
num = convert<int>(arg);
bool on = (num >= optionals_
&& numargs_ < 9 && num <= numargs_ + 1);
- flag.setEnabled(on);
+ status.setEnabled(on);
break;
}
case LFUN_MATH_MACRO_APPEND_GREEDY_PARAM:
- flag.setEnabled(numargs_ < 9);
+ status.setEnabled(numargs_ < 9);
break;
case LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM:
int num = numargs_;
if (!arg.empty())
num = convert<int>(arg);
- flag.setEnabled(num >= 1 && num <= numargs_);
+ status.setEnabled(num >= 1 && num <= numargs_);
break;
}
case LFUN_MATH_MACRO_MAKE_OPTIONAL:
- flag.setEnabled(numargs_ > 0
+ status.setEnabled(numargs_ > 0
&& optionals_ < numargs_
&& type_ != MacroTypeDef);
break;
case LFUN_MATH_MACRO_MAKE_NONOPTIONAL:
- flag.setEnabled(optionals_ > 0
+ status.setEnabled(optionals_ > 0
&& type_ != MacroTypeDef);
break;
case LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM:
- flag.setEnabled(numargs_ < 9);
+ status.setEnabled(numargs_ < 9);
break;
case LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM:
- flag.setEnabled(optionals_ > 0);
+ status.setEnabled(optionals_ > 0);
break;
case LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM:
- flag.setEnabled(numargs_ == 0
+ status.setEnabled(numargs_ == 0
&& type_ != MacroTypeDef);
break;
case LFUN_IN_MATHMACROTEMPLATE:
- flag.setEnabled(true);
+ status.setEnabled(true);
break;
default:
- ret = InsetMathNest::getStatus(cur, cmd, flag);
+ ret = InsetMathNest::getStatus(cur, cmd, status);
break;
}
return ret;
{
odocstringstream oss;
otexrowstream ots(oss);
- WriteStream wi(ots, false, false, WriteStream::wsDefault);
+ TeXMathStream wi(ots, false, false, TeXMathStream::wsDefault);
oss << "FormulaMacro\n";
write(wi);
os << to_utf8(oss.str());
}
-void InsetMathMacroTemplate::write(WriteStream & os) const
+void InsetMathMacroTemplate::write(TeXMathStream & os) const
{
write(os, false);
}
-int InsetMathMacroTemplate::write(WriteStream & os, bool overwriteRedefinition) const
+int InsetMathMacroTemplate::write(TeXMathStream & os, bool overwriteRedefinition) const
{
int num_lines = 0;
}
-docstring InsetMathMacroTemplate::xhtml(XHTMLStream &, OutputParams const &) const
+docstring InsetMathMacroTemplate::xhtml(XMLStream &, OutputParams const &) const
{
return docstring();
}
// valid characters?
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] != '*')
+ for (char_type c : n) {
+ if (!(c >= 'a' && c <= 'z')
+ && !(c >= 'A' && c <= 'Z')
+ && c != '*')
return false;
}
}