mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 06:49:56 +00:00
Merge branch 'master' into biblatex2
This commit is contained in:
commit
239b9919ff
@ -39,6 +39,25 @@ docstring InsetMathBig::name() const
|
||||
}
|
||||
|
||||
|
||||
MathClass InsetMathBig::mathClass() const
|
||||
{
|
||||
/* The class of the delimiter depends on the type (l, m, r, nothing).
|
||||
* For example, the definition of \bigl in LaTeX sources is
|
||||
* \def\bigl{\mathopen\big}
|
||||
*/
|
||||
switch(name_.back()) {
|
||||
case 'l':
|
||||
return MC_OPEN;
|
||||
case 'm':
|
||||
return MC_REL;
|
||||
case 'r':
|
||||
return MC_CLOSE;
|
||||
default:
|
||||
return MC_ORD;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Inset * InsetMathBig::clone() const
|
||||
{
|
||||
return new InsetMathBig(*this);
|
||||
@ -49,9 +68,9 @@ InsetMathBig::size_type InsetMathBig::size() const
|
||||
{
|
||||
// order: big Big bigg Bigg biggg Biggg
|
||||
// 0 1 2 3 4 5
|
||||
char_type const c = name_[name_.size() - 1];
|
||||
char_type const c = name_.back();
|
||||
int const base_size = (c == 'l' || c == 'm' || c == 'r') ? 4 : 3;
|
||||
return name_[0] == 'B' ?
|
||||
return name_.front() == 'B' ?
|
||||
2 * (name_.size() - base_size) + 1:
|
||||
2 * (name_.size() - base_size);
|
||||
}
|
||||
|
@ -24,6 +24,8 @@ public:
|
||||
InsetMathBig(docstring const & name, docstring const & delim);
|
||||
///
|
||||
docstring name() const;
|
||||
/// class is different for l(eft), r(ight) and m(iddle)
|
||||
MathClass mathClass() const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
|
@ -42,7 +42,7 @@ Inset * InsetMathCancelto::clone() const
|
||||
void InsetMathCancelto::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
Changer dummy = mi.base.changeEnsureMath();
|
||||
InsetMathNest::metrics(mi);
|
||||
cellsMetrics(mi);
|
||||
Dimension const & dim0 = cell(0).dimension(*mi.base.bv);
|
||||
Dimension const & dim1 = cell(1).dimension(*mi.base.bv);
|
||||
dim.asc = max(dim0.ascent() + 2, dim0.ascent() + dim1.ascent()) + 2 + 8;
|
||||
|
@ -176,12 +176,12 @@ void InsetMathNest::cursorPos(BufferView const & bv,
|
||||
}
|
||||
|
||||
|
||||
void InsetMathNest::metrics(MetricsInfo const & mi) const
|
||||
void InsetMathNest::cellsMetrics(MetricsInfo const & mi) const
|
||||
{
|
||||
MetricsInfo m = mi;
|
||||
for (idx_type i = 0, n = nargs(); i != n; ++i) {
|
||||
for (auto const & cell : cells_) {
|
||||
Dimension dim;
|
||||
cell(i).metrics(m, dim);
|
||||
cell.metrics(m, dim);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,17 +33,8 @@ public:
|
||||
///
|
||||
void setBuffer(Buffer &);
|
||||
|
||||
// The method below hides inset::metrics() intentionally!
|
||||
// We have to tell clang not to be fussy about that.
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Woverloaded-virtual"
|
||||
#endif
|
||||
/// the size is usually some sort of convex hull of the cells
|
||||
void metrics(MetricsInfo const & mi) const;
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
/// Update the cells metrics
|
||||
void cellsMetrics(MetricsInfo const & mi) const;
|
||||
/// draw background if locked
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
/// draw selection background
|
||||
|
@ -42,7 +42,7 @@ Inset * InsetMathRoot::clone() const
|
||||
void InsetMathRoot::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
Changer dummy = mi.base.changeEnsureMath();
|
||||
InsetMathNest::metrics(mi);
|
||||
cellsMetrics(mi);
|
||||
Dimension const & dim0 = cell(0).dimension(*mi.base.bv);
|
||||
Dimension const & dim1 = cell(1).dimension(*mi.base.bv);
|
||||
dim.asc = max(dim0.ascent() + 5, dim1.ascent()) + 2;
|
||||
|
@ -289,7 +289,7 @@ void MathRow::draw(PainterInfo & pi, int x, int const y) const
|
||||
// the box is not visible in non-editable context (except for grey macro boxes).
|
||||
if (e.color != Color_none)
|
||||
pi.pain.rectangle(x + e.before, y - d.ascent(),
|
||||
d.width(), d.height(), e.color);
|
||||
d.width() - 1, d.height() - 1, e.color);
|
||||
x += d.wid + e.before + e.after;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user