mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 05:01:49 +00:00
* Inset:
- get rid of the cached Dimension. Text inset dimensions are saved in ParagraphMetrics and mathed maintain their own dimension where needed. - width(), ascent(), descent(): deleted. - dimension(): now needs a valid BufferView. - metrics(): now void. * BufferView::getCoveringInset(): simplify. * ParagraphMetrics(): now cache inset dimensions. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20420 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
24a74bdb53
commit
237c132c1e
@ -1045,49 +1045,30 @@ void BufferView::resize(int width, int height)
|
|||||||
|
|
||||||
Inset const * BufferView::getCoveringInset(Text const & text, int x, int y)
|
Inset const * BufferView::getCoveringInset(Text const & text, int x, int y)
|
||||||
{
|
{
|
||||||
pit_type pit = text_metrics_[&text].getPitNearY(y);
|
TextMetrics & tm = text_metrics_[&text];
|
||||||
BOOST_ASSERT(pit != -1);
|
Inset * inset = tm.checkInsetHit(x, y);
|
||||||
Paragraph const & par = text.getPar(pit);
|
if (!inset)
|
||||||
|
return 0;
|
||||||
|
|
||||||
LYXERR(Debug::DEBUG)
|
if (!inset->descendable())
|
||||||
<< BOOST_CURRENT_FUNCTION
|
// No need to go further down if the inset is not
|
||||||
<< ": x: " << x
|
// descendable.
|
||||||
<< " y: " << y
|
return inset;
|
||||||
<< " pit: " << pit
|
|
||||||
<< endl;
|
|
||||||
InsetList::const_iterator iit = par.insetlist.begin();
|
|
||||||
InsetList::const_iterator iend = par.insetlist.end();
|
|
||||||
for (; iit != iend; ++iit) {
|
|
||||||
Inset * const inset = iit->inset;
|
|
||||||
if (inset->covers(*this, x, y)) {
|
|
||||||
if (!inset->descendable())
|
|
||||||
// No need to go further down if the inset is not
|
|
||||||
// descendable.
|
|
||||||
return inset;
|
|
||||||
|
|
||||||
size_t cell_number = inset->nargs();
|
size_t cell_number = inset->nargs();
|
||||||
// Check all the inner cell.
|
// Check all the inner cell.
|
||||||
for (size_t i = 0; i != cell_number; ++i) {
|
for (size_t i = 0; i != cell_number; ++i) {
|
||||||
Text const * inner_text = inset->getText(i);
|
Text const * inner_text = inset->getText(i);
|
||||||
if (inner_text) {
|
if (inner_text) {
|
||||||
// Try deeper.
|
// Try deeper.
|
||||||
Inset const * inset_deeper =
|
Inset const * inset_deeper =
|
||||||
getCoveringInset(*inner_text, x, y);
|
getCoveringInset(*inner_text, x, y);
|
||||||
if (inset_deeper)
|
if (inset_deeper)
|
||||||
return inset_deeper;
|
return inset_deeper;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LYXERR(Debug::DEBUG)
|
|
||||||
<< BOOST_CURRENT_FUNCTION
|
|
||||||
<< ": Hit inset: " << inset << endl;
|
|
||||||
return inset;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LYXERR(Debug::DEBUG)
|
|
||||||
<< BOOST_CURRENT_FUNCTION
|
return inset;
|
||||||
<< ": No inset hit. " << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,6 +118,24 @@ void ParagraphMetrics::setPosition(int position)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Dimension const & ParagraphMetrics::insetDimension(Inset const * inset) const
|
||||||
|
{
|
||||||
|
InsetDims::const_iterator it = inset_dims_.find(inset);
|
||||||
|
if (it != inset_dims_.end())
|
||||||
|
return it->second;
|
||||||
|
|
||||||
|
static Dimension dummy;
|
||||||
|
return dummy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ParagraphMetrics::setInsetDimension(Inset const * inset,
|
||||||
|
Dimension const & dim)
|
||||||
|
{
|
||||||
|
inset_dims_[inset] = dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Row & ParagraphMetrics::getRow(pos_type pos, bool boundary)
|
Row & ParagraphMetrics::getRow(pos_type pos, bool boundary)
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(!rows().empty());
|
BOOST_ASSERT(!rows().empty());
|
||||||
@ -200,7 +218,7 @@ int ParagraphMetrics::singleWidth(pos_type pos, Font const & font) const
|
|||||||
|
|
||||||
// The most special cases are handled first.
|
// The most special cases are handled first.
|
||||||
if (c == Paragraph::META_INSET)
|
if (c == Paragraph::META_INSET)
|
||||||
return par_->getInset(pos)->width();
|
return insetDimension(par_->getInset(pos)).wid;
|
||||||
|
|
||||||
if (!isPrintable(c))
|
if (!isPrintable(c))
|
||||||
return theFontMetrics(font).width(c);
|
return theFontMetrics(font).width(c);
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
#include "Paragraph.h"
|
#include "Paragraph.h"
|
||||||
#include "Row.h"
|
#include "Row.h"
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,6 +88,10 @@ public:
|
|||||||
int position() const { return position_; }
|
int position() const { return position_; }
|
||||||
void setPosition(int position);
|
void setPosition(int position);
|
||||||
|
|
||||||
|
///
|
||||||
|
Dimension const & insetDimension(Inset const * inset) const;
|
||||||
|
///
|
||||||
|
void setInsetDimension(Inset const *, Dimension const & dim);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
@ -96,6 +102,10 @@ private:
|
|||||||
Dimension dim_;
|
Dimension dim_;
|
||||||
///
|
///
|
||||||
Paragraph const * par_;
|
Paragraph const * par_;
|
||||||
|
|
||||||
|
typedef std::map<Inset const *, Dimension> InsetDims;
|
||||||
|
///
|
||||||
|
InsetDims inset_dims_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -385,7 +385,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
&& cur.boundary() == oldBoundary) {
|
&& cur.boundary() == oldBoundary) {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
cmd = FuncRequest(LFUN_FINISHED_RIGHT);
|
cmd = FuncRequest(LFUN_FINISHED_RIGHT);
|
||||||
}
|
} else
|
||||||
|
cur.setCurrentFont();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_CHAR_BACKWARD:
|
case LFUN_CHAR_BACKWARD:
|
||||||
@ -401,7 +402,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
&& cur.boundary() == oldBoundary) {
|
&& cur.boundary() == oldBoundary) {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
cmd = FuncRequest(LFUN_FINISHED_LEFT);
|
cmd = FuncRequest(LFUN_FINISHED_LEFT);
|
||||||
}
|
} else
|
||||||
|
cur.setCurrentFont();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_UP_SELECT:
|
case LFUN_UP_SELECT:
|
||||||
|
@ -387,14 +387,15 @@ bool TextMetrics::redoParagraph(pit_type const pit)
|
|||||||
InsetList::const_iterator ii = par.insetlist.begin();
|
InsetList::const_iterator ii = par.insetlist.begin();
|
||||||
InsetList::const_iterator iend = par.insetlist.end();
|
InsetList::const_iterator iend = par.insetlist.end();
|
||||||
for (; ii != iend; ++ii) {
|
for (; ii != iend; ++ii) {
|
||||||
Dimension old_dim = ii->inset->dimension();
|
|
||||||
Dimension dim;
|
Dimension dim;
|
||||||
int const w = max_width_ - leftMargin(max_width_, pit, ii->pos)
|
int const w = max_width_ - leftMargin(max_width_, pit, ii->pos)
|
||||||
- right_margin;
|
- right_margin;
|
||||||
Font const & font = ii->inset->noFontChange() ?
|
Font const & font = ii->inset->noFontChange() ?
|
||||||
bufferfont : getDisplayFont(pit, ii->pos);
|
bufferfont : getDisplayFont(pit, ii->pos);
|
||||||
MetricsInfo mi(bv_, font, w);
|
MetricsInfo mi(bv_, font, w);
|
||||||
changed |= ii->inset->metrics(mi, dim);
|
ii->inset->metrics(mi, dim);
|
||||||
|
Dimension const old_dim = pm.insetDimension(ii->inset);
|
||||||
|
pm.setInsetDimension(ii->inset, dim);
|
||||||
changed |= (old_dim != dim);
|
changed |= (old_dim != dim);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -862,12 +863,14 @@ boost::tuple<int, int> TextMetrics::rowHeight(pit_type const pit, pos_type const
|
|||||||
int maxdesc = int(fontmetrics.maxDescent() * spacing_val);
|
int maxdesc = int(fontmetrics.maxDescent() * spacing_val);
|
||||||
|
|
||||||
// insets may be taller
|
// insets may be taller
|
||||||
|
ParagraphMetrics const & pm = par_metrics_[pit];
|
||||||
InsetList::const_iterator ii = par.insetlist.begin();
|
InsetList::const_iterator ii = par.insetlist.begin();
|
||||||
InsetList::const_iterator iend = par.insetlist.end();
|
InsetList::const_iterator iend = par.insetlist.end();
|
||||||
for ( ; ii != iend; ++ii) {
|
for ( ; ii != iend; ++ii) {
|
||||||
|
Dimension const & dim = pm.insetDimension(ii->inset);
|
||||||
if (ii->pos >= first && ii->pos < end) {
|
if (ii->pos >= first && ii->pos < end) {
|
||||||
maxasc = max(maxasc, ii->inset->ascent());
|
maxasc = max(maxasc, dim.ascent());
|
||||||
maxdesc = max(maxdesc, ii->inset->descent());
|
maxdesc = max(maxdesc, dim.descent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1400,6 +1403,7 @@ Inset * TextMetrics::checkInsetHit(int x, int y)
|
|||||||
BOOST_ASSERT(pit != -1);
|
BOOST_ASSERT(pit != -1);
|
||||||
|
|
||||||
Paragraph const & par = text_->paragraphs()[pit];
|
Paragraph const & par = text_->paragraphs()[pit];
|
||||||
|
ParagraphMetrics const & pm = par_metrics_[pit];
|
||||||
|
|
||||||
LYXERR(Debug::DEBUG)
|
LYXERR(Debug::DEBUG)
|
||||||
<< BOOST_CURRENT_FUNCTION
|
<< BOOST_CURRENT_FUNCTION
|
||||||
@ -1411,32 +1415,37 @@ Inset * TextMetrics::checkInsetHit(int x, int y)
|
|||||||
InsetList::const_iterator iend = par.insetlist.end();
|
InsetList::const_iterator iend = par.insetlist.end();
|
||||||
for (; iit != iend; ++iit) {
|
for (; iit != iend; ++iit) {
|
||||||
Inset * inset = iit->inset;
|
Inset * inset = iit->inset;
|
||||||
#if 1
|
|
||||||
LYXERR(Debug::DEBUG)
|
LYXERR(Debug::DEBUG)
|
||||||
<< BOOST_CURRENT_FUNCTION
|
<< BOOST_CURRENT_FUNCTION
|
||||||
<< ": examining inset " << inset << endl;
|
<< ": examining inset " << inset << endl;
|
||||||
|
|
||||||
if (bv_->coordCache().getInsets().has(inset))
|
if (!bv_->coordCache().getInsets().has(inset)) {
|
||||||
LYXERR(Debug::DEBUG)
|
|
||||||
<< BOOST_CURRENT_FUNCTION
|
|
||||||
<< ": xo: " << inset->xo(*bv_) << "..."
|
|
||||||
<< inset->xo(*bv_) + inset->width()
|
|
||||||
<< " yo: " << inset->yo(*bv_) - inset->ascent()
|
|
||||||
<< "..."
|
|
||||||
<< inset->yo(*bv_) + inset->descent()
|
|
||||||
<< endl;
|
|
||||||
else
|
|
||||||
LYXERR(Debug::DEBUG)
|
LYXERR(Debug::DEBUG)
|
||||||
<< BOOST_CURRENT_FUNCTION
|
<< BOOST_CURRENT_FUNCTION
|
||||||
<< ": inset has no cached position" << endl;
|
<< ": inset has no cached position" << endl;
|
||||||
#endif
|
return 0;
|
||||||
if (inset->covers(*bv_, x, y)) {
|
}
|
||||||
|
|
||||||
|
Dimension const & dim = pm.insetDimension(inset);
|
||||||
|
Point p = bv_->coordCache().getInsets().xy(inset);
|
||||||
|
|
||||||
|
LYXERR(Debug::DEBUG)
|
||||||
|
<< BOOST_CURRENT_FUNCTION
|
||||||
|
<< ": xo: " << p.x_ << "..." << p.x_ + dim.wid
|
||||||
|
<< " yo: " << p.y_ - dim.asc << "..." << p.y_ + dim.des
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
if (x >= p.x_ && p.x_ + dim.wid
|
||||||
|
&& y >= p.y_ - dim.asc
|
||||||
|
&& y <= p.y_ + dim.des) {
|
||||||
LYXERR(Debug::DEBUG)
|
LYXERR(Debug::DEBUG)
|
||||||
<< BOOST_CURRENT_FUNCTION
|
<< BOOST_CURRENT_FUNCTION
|
||||||
<< ": Hit inset: " << inset << endl;
|
<< ": Hit inset: " << inset << endl;
|
||||||
return inset;
|
return inset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LYXERR(Debug::DEBUG)
|
LYXERR(Debug::DEBUG)
|
||||||
<< BOOST_CURRENT_FUNCTION
|
<< BOOST_CURRENT_FUNCTION
|
||||||
<< ": No inset hit. " << endl;
|
<< ": No inset hit. " << endl;
|
||||||
|
@ -181,7 +181,8 @@ Point coordOffset(BufferView const & bv, DocIterator const & dit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// remember width for the case that sl.inset() is positioned in an RTL inset
|
// remember width for the case that sl.inset() is positioned in an RTL inset
|
||||||
lastw = sl.inset().width();
|
Dimension const dim = sl.inset().dimension(bv);
|
||||||
|
lastw = dim.wid;
|
||||||
|
|
||||||
//lyxerr << "Cursor::getPos, i: "
|
//lyxerr << "Cursor::getPos, i: "
|
||||||
// << i << " x: " << xx << " y: " << y << endl;
|
// << i << " x: " << xx << " y: " << y << endl;
|
||||||
|
@ -35,6 +35,9 @@
|
|||||||
|
|
||||||
#include "frontends/Painter.h"
|
#include "frontends/Painter.h"
|
||||||
|
|
||||||
|
#include "support/convert.h"
|
||||||
|
#include "support/ExceptionMessage.h"
|
||||||
|
|
||||||
#include <boost/current_function.hpp>
|
#include <boost/current_function.hpp>
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -116,12 +119,18 @@ static TranslatorMap const build_translator()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// pretty arbitrary dimensions
|
|
||||||
Inset::Inset()
|
Inset::Inset()
|
||||||
: dim_(10, 10, 10)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
Dimension const Inset::dimension(BufferView const &) const
|
||||||
|
{
|
||||||
|
docstring const id = convert<docstring>(int(lyxCode())) + " " + name();
|
||||||
|
throw support::ExceptionMessage(support::ErrorException,
|
||||||
|
_("Inset::dimension(): unimplemented method"), id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Inset::Code Inset::translate(std::string const & name)
|
Inset::Code Inset::translate(std::string const & name)
|
||||||
{
|
{
|
||||||
static TranslatorMap const translator = build_translator();
|
static TranslatorMap const translator = build_translator();
|
||||||
@ -278,8 +287,10 @@ void Inset::drawMarkers(PainterInfo & pi, int x, int y) const
|
|||||||
Color::color pen_color = mouseHovered() || editing(pi.base.bv)?
|
Color::color pen_color = mouseHovered() || editing(pi.base.bv)?
|
||||||
Color::mathframe : Color::mathcorners;
|
Color::mathframe : Color::mathcorners;
|
||||||
|
|
||||||
int const t = x + width() - 1;
|
Dimension const dim = dimension(*pi.base.bv);
|
||||||
int const d = y + descent();
|
|
||||||
|
int const t = x + dim.width() - 1;
|
||||||
|
int const d = y + dim.descent();
|
||||||
pi.pain.line(x, d - 3, x, d, pen_color);
|
pi.pain.line(x, d - 3, x, d, pen_color);
|
||||||
pi.pain.line(t, d - 3, t, d, pen_color);
|
pi.pain.line(t, d - 3, t, d, pen_color);
|
||||||
pi.pain.line(x, d, x + 3, d, pen_color);
|
pi.pain.line(x, d, x + 3, d, pen_color);
|
||||||
@ -294,8 +305,9 @@ void Inset::drawMarkers2(PainterInfo & pi, int x, int y) const
|
|||||||
Color::mathframe : Color::mathcorners;
|
Color::mathframe : Color::mathcorners;
|
||||||
|
|
||||||
drawMarkers(pi, x, y);
|
drawMarkers(pi, x, y);
|
||||||
int const t = x + width() - 1;
|
Dimension const dim = dimension(*pi.base.bv);
|
||||||
int const a = y - ascent();
|
int const t = x + dim.width() - 1;
|
||||||
|
int const a = y - dim.ascent();
|
||||||
pi.pain.line(x, a + 3, x, a, pen_color);
|
pi.pain.line(x, a + 3, x, a, pen_color);
|
||||||
pi.pain.line(t, a + 3, t, a, pen_color);
|
pi.pain.line(t, a + 3, t, a, pen_color);
|
||||||
pi.pain.line(x, a, x + 3, a, pen_color);
|
pi.pain.line(x, a, x + 3, a, pen_color);
|
||||||
@ -329,11 +341,14 @@ bool Inset::covers(BufferView const & bv, int x, int y) const
|
|||||||
// << " x1: " << xo(bv) << " x2: " << xo() + width()
|
// << " x1: " << xo(bv) << " x2: " << xo() + width()
|
||||||
// << " y1: " << yo(bv) - ascent() << " y2: " << yo() + descent()
|
// << " y1: " << yo(bv) - ascent() << " y2: " << yo() + descent()
|
||||||
// << std::endl;
|
// << std::endl;
|
||||||
|
|
||||||
|
Dimension const dim = dimension(bv);
|
||||||
|
|
||||||
return bv.coordCache().getInsets().has(this)
|
return bv.coordCache().getInsets().has(this)
|
||||||
&& x >= xo(bv)
|
&& x >= xo(bv)
|
||||||
&& x <= xo(bv) + width()
|
&& x <= xo(bv) + dim.width()
|
||||||
&& y >= yo(bv) - ascent()
|
&& y >= yo(bv) - dim.ascent()
|
||||||
&& y <= yo(bv) + descent();
|
&& y <= yo(bv) + dim.descent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ public:
|
|||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// compute the size of the object returned in dim
|
||||||
/// \retval true if metrics changed.
|
/// \retval true if metrics changed.
|
||||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||||
/// draw inset and update (xo, yo)-cache
|
/// draw inset and update (xo, yo)-cache
|
||||||
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
||||||
/// draw inset selection if necessary
|
/// draw inset selection if necessary
|
||||||
@ -478,14 +478,8 @@ public:
|
|||||||
/// reject the changes within the inset
|
/// reject the changes within the inset
|
||||||
virtual void rejectChanges(BufferParams const &) {};
|
virtual void rejectChanges(BufferParams const &) {};
|
||||||
|
|
||||||
/// FIXME: move dim_ out of Inset!
|
///
|
||||||
Dimension const & dimension() { return dim_; }
|
virtual Dimension const dimension(BufferView const &) const;
|
||||||
/// inset width.
|
|
||||||
int width() const { return dim_.wid; }
|
|
||||||
/// inset ascent.
|
|
||||||
int ascent() const { return dim_.asc; }
|
|
||||||
/// inset descent.
|
|
||||||
int descent() const { return dim_.des; }
|
|
||||||
///
|
///
|
||||||
int scroll() const { return 0; }
|
int scroll() const { return 0; }
|
||||||
///
|
///
|
||||||
@ -520,9 +514,6 @@ protected:
|
|||||||
* \sa getStatus
|
* \sa getStatus
|
||||||
*/
|
*/
|
||||||
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
|
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
|
||||||
|
|
||||||
/// Cached dimensions of the inset.
|
|
||||||
mutable Dimension dim_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ bool InsetBox::hasFixedWidth() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
|
void InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
|
||||||
{
|
{
|
||||||
// back up textwidth.
|
// back up textwidth.
|
||||||
int textwidth_backup = m.base.textwidth;
|
int textwidth_backup = m.base.textwidth;
|
||||||
@ -180,9 +180,6 @@ bool InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
|
|||||||
InsetCollapsable::metrics(m, dim);
|
InsetCollapsable::metrics(m, dim);
|
||||||
// retore textwidth.
|
// retore textwidth.
|
||||||
m.base.textwidth = textwidth_backup;
|
m.base.textwidth = textwidth_backup;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public:
|
|||||||
///
|
///
|
||||||
void setButtonLabel();
|
void setButtonLabel();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
/// show the Box dialog
|
/// show the Box dialog
|
||||||
bool showInsetDialog(BufferView * bv) const;
|
bool showInsetDialog(BufferView * bv) const;
|
||||||
///
|
///
|
||||||
|
@ -125,7 +125,7 @@ void InsetCaption::addToToc(TocList & toclist, Buffer const & buf, ParConstItera
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
labelwidth_ = theFontMetrics(mi.base.font).width(full_label_);
|
labelwidth_ = theFontMetrics(mi.base.font).width(full_label_);
|
||||||
// add some space to separate the label from the inset text
|
// add some space to separate the label from the inset text
|
||||||
@ -139,9 +139,6 @@ bool InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des = std::max(dim.des - textdim.asc + dim.asc, textdim.des);
|
dim.des = std::max(dim.des - textdim.asc + dim.asc, textdim.des);
|
||||||
dim.asc = textdim.asc;
|
dim.asc = textdim.asc;
|
||||||
dim.wid += textdim.wid;
|
dim.wid += textdim.wid;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
///
|
///
|
||||||
bool descendable() const { return true; }
|
bool descendable() const { return true; }
|
||||||
///
|
///
|
||||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
virtual void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -170,7 +170,7 @@ Dimension InsetCollapsable::dimensionCollapsed() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
||||||
|
|
||||||
@ -196,7 +196,8 @@ bool InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
docstring s = layout_.labelstring;
|
docstring s = layout_.labelstring;
|
||||||
theFontMetrics(font).rectText(s, w, a, d);
|
theFontMetrics(font).rectText(s, w, a, d);
|
||||||
dim.wid = max(dim.wid, w);
|
dim.wid = max(dim.wid, w);
|
||||||
dim.des += ascent();
|
// FIXME
|
||||||
|
//dim.des += ascent();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TopButton:
|
case TopButton:
|
||||||
@ -220,10 +221,6 @@ bool InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -288,9 +285,9 @@ void InsetCollapsable::draw(PainterInfo & pi, int x, int y) const
|
|||||||
InsetText::draw(pi, textx, texty);
|
InsetText::draw(pi, textx, texty);
|
||||||
const_cast<InsetCollapsable *>(this)->setDrawFrame(true);
|
const_cast<InsetCollapsable *>(this)->setDrawFrame(true);
|
||||||
|
|
||||||
int desc = InsetText::descent();
|
int desc = textdim.descent();
|
||||||
if (geometry() == SubLabel)
|
if (geometry() == SubLabel)
|
||||||
desc -= ascent();
|
desc -= 0; // ascent();
|
||||||
else
|
else
|
||||||
desc -= 3;
|
desc -= 3;
|
||||||
|
|
||||||
@ -333,7 +330,8 @@ void InsetCollapsable::draw(PainterInfo & pi, int x, int y) const
|
|||||||
// a visual cue when the cursor is inside the inset
|
// a visual cue when the cursor is inside the inset
|
||||||
Cursor & cur = pi.base.bv->cursor();
|
Cursor & cur = pi.base.bv->cursor();
|
||||||
if (cur.isInside(this)) {
|
if (cur.isInside(this)) {
|
||||||
y -= ascent();
|
// FIXME
|
||||||
|
//y -= ascent();
|
||||||
y += 3;
|
y += 3;
|
||||||
pi.pain.line(xx1, y + 4, xx1, y, layout_.labelfont.color());
|
pi.pain.line(xx1, y + 4, xx1, y, layout_.labelfont.color());
|
||||||
pi.pain.line(xx1 + 4, y, xx1, y, layout_.labelfont.color());
|
pi.pain.line(xx1 + 4, y, xx1, y, layout_.labelfont.color());
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const &, std::ostream &) const;
|
void write(Buffer const &, std::ostream &) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ InsetCommand::~InsetCommand()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
if (updateButtonLabel_) {
|
if (updateButtonLabel_) {
|
||||||
updateButtonLabel_ = false;
|
updateButtonLabel_ = false;
|
||||||
@ -56,9 +56,6 @@ bool InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
editable() != NOT_EDITABLE);
|
editable() != NOT_EDITABLE);
|
||||||
}
|
}
|
||||||
button_.metrics(mi, dim);
|
button_.metrics(mi, dim);
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,7 +38,9 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetCommand();
|
~InsetCommand();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
|
///
|
||||||
|
Dimension const dimension(BufferView const &) const { return button_.dimension(); }
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -405,16 +405,13 @@ bool InsetERT::insetAllowed(Inset::Code /* code */) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font tmpfont = mi.base.font;
|
Font tmpfont = mi.base.font;
|
||||||
getDrawFont(mi.base.font);
|
getDrawFont(mi.base.font);
|
||||||
mi.base.font.realize(tmpfont);
|
mi.base.font.realize(tmpfont);
|
||||||
InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
mi.base.font = tmpfont;
|
mi.base.font = tmpfont;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures &) const {}
|
void validate(LaTeXFeatures &) const {}
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -506,12 +506,9 @@ void InsetExternal::edit(Cursor & cur, bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
renderer_->metrics(mi, dim);
|
renderer_->metrics(mi, dim);
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public:
|
|||||||
virtual EDITABLE editable() const { return IS_EDITABLE; }
|
virtual EDITABLE editable() const { return IS_EDITABLE; }
|
||||||
|
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -96,15 +96,14 @@ void InsetFlex::read(Buffer const & buf, Lexer & lex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetFlex::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetFlex::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font tmpfont = mi.base.font;
|
Font tmpfont = mi.base.font;
|
||||||
getDrawFont(mi.base.font);
|
getDrawFont(mi.base.font);
|
||||||
mi.base.font.reduce(Font(Font::ALL_SANE));
|
mi.base.font.reduce(Font(Font::ALL_SANE));
|
||||||
mi.base.font.realize(tmpfont);
|
mi.base.font.realize(tmpfont);
|
||||||
bool changed = InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
mi.base.font = tmpfont;
|
mi.base.font = tmpfont;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
///
|
///
|
||||||
void read(Buffer const & buf, Lexer & lex);
|
void read(Buffer const & buf, Lexer & lex);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int, int) const;
|
void draw(PainterInfo &, int, int) const;
|
||||||
///
|
///
|
||||||
|
@ -31,15 +31,12 @@ InsetFootlike::InsetFootlike(InsetFootlike const & in)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
bool InsetFootlike::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetFootlike::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font tmpfont = mi.base.font;
|
Font tmpfont = mi.base.font;
|
||||||
mi.base.font = mi.base.bv->buffer().params().getFont();
|
mi.base.font = mi.base.bv->buffer().params().getFont();
|
||||||
InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
mi.base.font = tmpfont;
|
mi.base.font = tmpfont;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetFootlike(InsetFootlike const &);
|
InsetFootlike(InsetFootlike const &);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -257,12 +257,9 @@ void InsetGraphics::edit(Cursor & cur, bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetGraphics::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetGraphics::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
graphic_->metrics(mi, dim);
|
graphic_->metrics(mi, dim);
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetGraphics();
|
~InsetGraphics();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
EDITABLE editable() const;
|
EDITABLE editable() const;
|
||||||
///
|
///
|
||||||
|
@ -30,14 +30,11 @@ Inset * InsetHFill::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetHFill::metrics(MetricsInfo &, Dimension & dim) const
|
void InsetHFill::metrics(MetricsInfo &, Dimension & dim) const
|
||||||
{
|
{
|
||||||
dim.wid = 3;
|
dim.wid = 3;
|
||||||
dim.asc = 3;
|
dim.asc = 3;
|
||||||
dim.des = 3;
|
dim.des = 3;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetHFill();
|
InsetHFill();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
docstring const getScreenLabel(Buffer const &) const;
|
docstring const getScreenLabel(Buffer const &) const;
|
||||||
///
|
///
|
||||||
|
@ -783,7 +783,7 @@ InsetInclude::getBibfilesCache(Buffer const & buffer) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(mi.base.bv);
|
BOOST_ASSERT(mi.base.bv);
|
||||||
|
|
||||||
@ -807,10 +807,6 @@ bool InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
|
|
||||||
Box b(0, dim.wid, -dim.asc, dim.des);
|
Box b(0, dim.wid, -dim.asc, dim.des);
|
||||||
button_.setBox(b);
|
button_.setBox(b);
|
||||||
|
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
~InsetInclude();
|
~InsetInclude();
|
||||||
|
|
||||||
/// Override these InsetButton methods if Previewing
|
/// Override these InsetButton methods if Previewing
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -41,21 +41,18 @@ void InsetLine::write(Buffer const &, ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetLine::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetLine::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
dim.asc = 3;
|
dim.asc = 3;
|
||||||
dim.des = 3;
|
dim.des = 3;
|
||||||
dim.wid = mi.base.textwidth;
|
dim.wid = mi.base.textwidth;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetLine::draw(PainterInfo & pi, int x, int y) const
|
void InsetLine::draw(PainterInfo & pi, int x, int y) const
|
||||||
{
|
{
|
||||||
pi.pain.line(x, y, x + dim_.wid, y, Color::topline, Painter::line_solid,
|
pi.pain.line(x, y, x + pi.base.textwidth, y, Color::topline,
|
||||||
Painter::line_thick);
|
Painter::line_solid, Painter::line_thick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
Inset::Code lyxCode() const { return Inset::LINE_CODE; }
|
Inset::Code lyxCode() const { return Inset::LINE_CODE; }
|
||||||
|
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
|
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -269,16 +269,13 @@ void InsetListings::setButtonLabel()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetListings::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetListings::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font tmpfont = mi.base.font;
|
Font tmpfont = mi.base.font;
|
||||||
getDrawFont(mi.base.font);
|
getDrawFont(mi.base.font);
|
||||||
mi.base.font.realize(tmpfont);
|
mi.base.font.realize(tmpfont);
|
||||||
InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
mi.base.font = tmpfont;
|
mi.base.font = tmpfont;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures &) const;
|
void validate(LaTeXFeatures &) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -38,15 +38,12 @@ void InsetNewline::write(Buffer const &, ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
|
frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
|
||||||
dim.asc = fm.maxAscent();
|
dim.asc = fm.maxAscent();
|
||||||
dim.des = fm.maxDescent();
|
dim.des = fm.maxDescent();
|
||||||
dim.wid = fm.width('n');
|
dim.wid = fm.width('n');
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
Inset::Code lyxCode() const { return Inset::NEWLINE_CODE; }
|
Inset::Code lyxCode() const { return Inset::NEWLINE_CODE; }
|
||||||
|
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
|
|
||||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -41,14 +41,11 @@ void InsetPagebreak::write(Buffer const &, std::ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
dim.asc = defaultRowHeight();
|
dim.asc = defaultRowHeight();
|
||||||
dim.des = defaultRowHeight();
|
dim.des = defaultRowHeight();
|
||||||
dim.wid = mi.base.textwidth;
|
dim.wid = mi.base.textwidth;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -63,7 +60,7 @@ void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const
|
|||||||
int d = 0;
|
int d = 0;
|
||||||
theFontMetrics(font).rectText(insetLabel(), w, a, d);
|
theFontMetrics(font).rectText(insetLabel(), w, a, d);
|
||||||
|
|
||||||
int const text_start = int(x + (dim_.wid - w) / 2);
|
int const text_start = int(x + (pi.base.textwidth - w) / 2);
|
||||||
int const text_end = text_start + w;
|
int const text_end = text_start + w;
|
||||||
|
|
||||||
pi.pain.rectText(text_start, y + d, insetLabel(), font,
|
pi.pain.rectText(text_start, y + d, insetLabel(), font,
|
||||||
@ -71,7 +68,7 @@ void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const
|
|||||||
|
|
||||||
pi.pain.line(x, y, text_start, y,
|
pi.pain.line(x, y, text_start, y,
|
||||||
Color::pagebreak, Painter::line_onoffdash);
|
Color::pagebreak, Painter::line_onoffdash);
|
||||||
pi.pain.line(text_end, y, int(x + dim_.wid), y,
|
pi.pain.line(text_end, y, int(x + pi.base.textwidth), y,
|
||||||
Color::pagebreak, Painter::line_onoffdash);
|
Color::pagebreak, Painter::line_onoffdash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
Inset::Code lyxCode() const { return Inset::PAGEBREAK_CODE; }
|
Inset::Code lyxCode() const { return Inset::PAGEBREAK_CODE; }
|
||||||
|
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
|
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ docstring const InsetQuotes::dispString(Language const * loclang) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font & font = mi.base.font;
|
Font & font = mi.base.font;
|
||||||
frontend::FontMetrics const & fm =
|
frontend::FontMetrics const & fm =
|
||||||
@ -232,9 +232,6 @@ bool InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
else
|
else
|
||||||
dim.wid += fm.width(',');
|
dim.wid += fm.width(',');
|
||||||
}
|
}
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ public:
|
|||||||
///
|
///
|
||||||
docstring name() const { return from_ascii("Quotes"); }
|
docstring name() const { return from_ascii("Quotes"); }
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -47,7 +47,7 @@ InsetSpace::Kind InsetSpace::kind() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
frontend::FontMetrics const & fm =
|
frontend::FontMetrics const & fm =
|
||||||
theFontMetrics(mi.base.font);
|
theFontMetrics(mi.base.font);
|
||||||
@ -74,15 +74,12 @@ bool InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = 10;
|
dim.wid = 10;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetSpace::draw(PainterInfo & pi, int x, int y) const
|
void InsetSpace::draw(PainterInfo & pi, int x, int y) const
|
||||||
{
|
{
|
||||||
int const w = width();
|
int const w = dim_.wid;
|
||||||
int const h = theFontMetrics(pi.base.font)
|
int const h = theFontMetrics(pi.base.font)
|
||||||
.ascent('x');
|
.ascent('x');
|
||||||
int xp[4], yp[4];
|
int xp[4], yp[4];
|
||||||
|
@ -56,7 +56,9 @@ public:
|
|||||||
///
|
///
|
||||||
Kind kind() const;
|
Kind kind() const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
|
///
|
||||||
|
Dimension const dimension(BufferView const &) const { return dim_; };
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
@ -92,6 +94,8 @@ private:
|
|||||||
|
|
||||||
/// And which kind is this?
|
/// And which kind is this?
|
||||||
Kind kind_;
|
Kind kind_;
|
||||||
|
///
|
||||||
|
mutable Dimension dim_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ InsetSpecialChar::Kind InsetSpecialChar::kind() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
frontend::FontMetrics const & fm =
|
frontend::FontMetrics const & fm =
|
||||||
theFontMetrics(mi.base.font);
|
theFontMetrics(mi.base.font);
|
||||||
@ -60,9 +60,6 @@ bool InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = fm.width(ds);
|
dim.wid = fm.width(ds);
|
||||||
if (kind_ == HYPHENATION && dim.wid > 5)
|
if (kind_ == HYPHENATION && dim.wid > 5)
|
||||||
dim.wid -= 2; // to make it look shorter
|
dim.wid -= 2; // to make it look shorter
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
///
|
///
|
||||||
Kind kind() const;
|
Kind kind() const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -2932,7 +2932,7 @@ void InsetTabular::read(Buffer const & buf, Lexer & lex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
//lyxerr << "InsetTabular::metrics: " << mi.base.bv << " width: " <<
|
//lyxerr << "InsetTabular::metrics: " << mi.base.bv << " width: " <<
|
||||||
// mi.base.textwidth << "\n";
|
// mi.base.textwidth << "\n";
|
||||||
@ -2986,9 +2986,6 @@ bool InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.asc = tabular.rowAscent(0);
|
dim.asc = tabular.rowAscent(0);
|
||||||
dim.des = tabular.height() - dim.asc;
|
dim.des = tabular.height() - dim.asc;
|
||||||
dim.wid = tabular.width() + 2 * ADD_TO_TABULAR_WIDTH;
|
dim.wid = tabular.width() + 2 * ADD_TO_TABULAR_WIDTH;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -667,7 +667,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const &, std::ostream &) const;
|
void write(Buffer const &, std::ostream &) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -166,7 +166,7 @@ void InsetText::read(Buffer const & buf, Lexer & lex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
TextMetrics & tm = mi.base.bv->textMetrics(&text_);
|
TextMetrics & tm = mi.base.bv->textMetrics(&text_);
|
||||||
|
|
||||||
@ -183,9 +183,6 @@ bool InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.asc += TEXT_TO_INSET_OFFSET;
|
dim.asc += TEXT_TO_INSET_OFFSET;
|
||||||
dim.des += TEXT_TO_INSET_OFFSET;
|
dim.des += TEXT_TO_INSET_OFFSET;
|
||||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const & buf, std::ostream & os) const;
|
void write(Buffer const & buf, std::ostream & os) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -67,14 +67,11 @@ Inset * InsetTheorem::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Inset.heorem::metrics(MetricsInfo & mi, Dimension & dim) const
|
void Inset.heorem::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
center_indent_ = (mi.base.textwidth - dim.wid) / 2;
|
center_indent_ = (mi.base.textwidth - dim.wid) / 2;
|
||||||
dim.wid = mi.base.textwidth;
|
dim.wid = mi.base.textwidth;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
///
|
///
|
||||||
Inset::Code lyxCode() const { return Inset::THEOREM_CODE; }
|
Inset::Code lyxCode() const { return Inset::THEOREM_CODE; }
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo &, Dimension &) const;
|
void metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -118,7 +118,7 @@ int const arrow_size = 4;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
int height = 3 * arrow_size;
|
int height = 3 * arrow_size;
|
||||||
if (space_.length().len().value() >= 0.0)
|
if (space_.length().len().value() >= 0.0)
|
||||||
@ -138,9 +138,7 @@ bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.asc = height / 2 + (a - d) / 2; // align cursor with the
|
dim.asc = height / 2 + (a - d) / 2; // align cursor with the
|
||||||
dim.des = height - dim.asc; // label text
|
dim.des = height - dim.asc; // label text
|
||||||
dim.wid = ADD_TO_VSPACE_WIDTH + 2 * arrow_size + 5 + w;
|
dim.wid = ADD_TO_VSPACE_WIDTH + 2 * arrow_size + 5 + w;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,9 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetVSpace();
|
~InsetVSpace();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
|
///
|
||||||
|
Dimension const dimension(BufferView const &) const { return dim_; };
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
@ -61,6 +63,8 @@ private:
|
|||||||
|
|
||||||
///
|
///
|
||||||
VSpace space_;
|
VSpace space_;
|
||||||
|
///
|
||||||
|
mutable Dimension dim_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,9 +36,12 @@ public:
|
|||||||
|
|
||||||
/// compute the size of the object returned in dim.
|
/// compute the size of the object returned in dim.
|
||||||
/// \retval true if the metrics has changed.
|
/// \retval true if the metrics has changed.
|
||||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||||
/// draw inset and update (xo, yo)-cache
|
/// draw inset and update (xo, yo)-cache
|
||||||
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
||||||
|
///
|
||||||
|
Dimension const & dimension() const { return dim_; };
|
||||||
|
|
||||||
/// render state, exact meaning of state is render-specific
|
/// render state, exact meaning of state is render-specific
|
||||||
void setRenderState(int state) { state_ = state; }
|
void setRenderState(int state) { state_ = state; }
|
||||||
/// get render state
|
/// get render state
|
||||||
|
@ -40,7 +40,7 @@ void RenderButton::update(docstring const & text, bool editable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
void RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
||||||
{
|
{
|
||||||
Font font(Font::ALL_SANE);
|
Font font(Font::ALL_SANE);
|
||||||
font.decSize();
|
font.decSize();
|
||||||
@ -53,10 +53,7 @@ bool RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
|||||||
fm.rectText(text_, dim.wid, dim.asc, dim.des);
|
fm.rectText(text_, dim.wid, dim.asc, dim.des);
|
||||||
|
|
||||||
dim.wid += 4;
|
dim.wid += 4;
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
RenderBase * clone(Inset const *) const;
|
RenderBase * clone(Inset const *) const;
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// compute the size of the object returned in dim
|
||||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
virtual void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
/// draw inset and update (xo, yo)-cache
|
/// draw inset and update (xo, yo)-cache
|
||||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ bool readyToDisplay(graphics::Loader const & loader)
|
|||||||
} // namespace anon
|
} // namespace anon
|
||||||
|
|
||||||
|
|
||||||
bool RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
void RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
bool image_ready = displayGraphic(params_) && readyToDisplay(loader_);
|
bool image_ready = displayGraphic(params_) && readyToDisplay(loader_);
|
||||||
|
|
||||||
@ -174,9 +174,7 @@ bool RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = std::max(50, font_width + 15);
|
dim.wid = std::max(50, font_width + 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
RenderBase * clone(Inset const *) const;
|
RenderBase * clone(Inset const *) const;
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// compute the size of the object returned in dim
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
/// draw inset
|
/// draw inset
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ RenderPreview::getPreviewImage(Buffer const & buffer) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
void RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(mi.base.bv);
|
BOOST_ASSERT(mi.base.bv);
|
||||||
|
|
||||||
@ -141,9 +141,7 @@ bool RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = 15 + theFontMetrics(font).width(stat);
|
dim.wid = 15 + theFontMetrics(font).width(stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public:
|
|||||||
RenderBase * clone(Inset const *) const;
|
RenderBase * clone(Inset const *) const;
|
||||||
|
|
||||||
/// Compute the size of the object, returned in dim
|
/// Compute the size of the object, returned in dim
|
||||||
bool metrics(MetricsInfo &, Dimension & dim) const;
|
void metrics(MetricsInfo &, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -36,17 +36,14 @@ Inset * CommandInset::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CommandInset::metrics(MetricsInfo & mi, Dimension & dim) const
|
void CommandInset::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
if (!set_label_) {
|
if (!set_label_) {
|
||||||
set_label_ = true;
|
set_label_ = true;
|
||||||
button_.update(screenLabel(), true);
|
button_.update(screenLabel(), true);
|
||||||
}
|
}
|
||||||
button_.metrics(mi, dim);
|
button_.metrics(mi, dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit CommandInset(docstring const & name);
|
explicit CommandInset(docstring const & name);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -124,16 +124,14 @@ string InsetFormulaMacro::prefix() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
//lyxerr << "InsetFormulaMacro: " << this << " -- " << &tmpl() << endl;
|
//lyxerr << "InsetFormulaMacro: " << this << " -- " << &tmpl() << endl;
|
||||||
tmpl()->metrics(mi, dim);
|
tmpl()->metrics(mi, dim);
|
||||||
dim.asc += 5;
|
dim.asc += 5;
|
||||||
dim.des += 5;
|
dim.des += 5;
|
||||||
dim.wid += 10 + theFontMetrics(mi.base.font).width(prefix());
|
dim.wid += 10 + theFontMetrics(mi.base.font).width(prefix());
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
/// constructs a mocro from its LaTeX definition
|
/// constructs a mocro from its LaTeX definition
|
||||||
explicit InsetFormulaMacro(docstring const & s);
|
explicit InsetFormulaMacro(docstring const & s);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -78,14 +78,12 @@ char const * InsetMathAMSArray::name_right() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathAMSArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathAMSArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
ArrayChanger dummy(mi.base);
|
ArrayChanger dummy(mi.base);
|
||||||
InsetMathGrid::metrics(mi, dim);
|
InsetMathGrid::metrics(mi, dim);
|
||||||
dim.wid += 14;
|
dim.wid += 14;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetMathAMSArray(docstring const & name);
|
InsetMathAMSArray(docstring const & name);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pain, int x, int y) const;
|
void draw(PainterInfo & pain, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -78,14 +78,12 @@ Inset * InsetMathArray::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
ArrayChanger dummy(mi.base);
|
ArrayChanger dummy(mi.base);
|
||||||
InsetMathGrid::metrics(mi, dim);
|
InsetMathGrid::metrics(mi, dim);
|
||||||
dim.wid += 6;
|
dim.wid += 6;
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
/// convenience constructor from whitespace/newline separated data
|
/// convenience constructor from whitespace/newline separated data
|
||||||
InsetMathArray(docstring const &, docstring const & str);
|
InsetMathArray(docstring const &, docstring const & str);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -60,17 +60,14 @@ double InsetMathBig::increase() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBig::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBig::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
double const h = theFontMetrics(mi.base.font).ascent('I');
|
double const h = theFontMetrics(mi.base.font).ascent('I');
|
||||||
double const f = increase();
|
double const f = increase();
|
||||||
dim.wid = 6;
|
dim.wid = 6;
|
||||||
dim.asc = int(h + f * h);
|
dim.asc = int(h + f * h);
|
||||||
dim.des = int(f * h);
|
dim.des = int(f * h);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,9 @@ public:
|
|||||||
///
|
///
|
||||||
docstring name() const;
|
docstring name() const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
|
///
|
||||||
|
Dimension const dimension(BufferView const &) const { return dim_; };
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
@ -50,6 +52,8 @@ private:
|
|||||||
docstring const name_;
|
docstring const name_;
|
||||||
/// ( or [ or \\Vert...
|
/// ( or [ or \\Vert...
|
||||||
docstring const delim_;
|
docstring const delim_;
|
||||||
|
///
|
||||||
|
mutable Dimension dim_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ int InsetMathBinom::dw() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
ScriptChanger dummy(mi.base);
|
ScriptChanger dummy(mi.base);
|
||||||
cell(0).metrics(mi);
|
cell(0).metrics(mi);
|
||||||
@ -49,9 +49,7 @@ bool InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des = cell(1).height() + 4 - 5;
|
dim.des = cell(1).height() + 4 - 5;
|
||||||
dim.wid = std::max(cell(0).width(), cell(1).width()) + 2 * dw() + 4;
|
dim.wid = std::max(cell(0).width(), cell(1).width()) + 2 * dw() + 4;
|
||||||
metricsMarkers2(dim);
|
metricsMarkers2(dim);
|
||||||
bool const changed = dim_ != dim;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
///
|
///
|
||||||
void normalize(NormalStream &) const;
|
void normalize(NormalStream &) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) const;
|
void draw(PainterInfo &, int x, int y) const;
|
||||||
/// draw decorations.
|
/// draw decorations.
|
||||||
|
@ -30,16 +30,13 @@ Inset * InsetMathBoldSymbol::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBoldSymbol::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBoldSymbol::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
//FontSetChanger dummy(mi.base, "mathbf");
|
//FontSetChanger dummy(mi.base, "mathbf");
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
++dim.wid; // for 'double stroke'
|
++dim.wid; // for 'double stroke'
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetMathBoldSymbol();
|
InsetMathBoldSymbol();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -44,15 +44,12 @@ void InsetMathBox::normalize(NormalStream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBox::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBox::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
FontSetChanger dummy(mi.base, "textnormal");
|
FontSetChanger dummy(mi.base, "textnormal");
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
///
|
///
|
||||||
mode_type currentMode() const { return TEXT_MODE; }
|
mode_type currentMode() const { return TEXT_MODE; }
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -33,14 +33,11 @@ Inset * InsetMathBoxed::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBoxed::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBoxed::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers2(dim, 3); // 1 pixel space, 1 frame, 1 space
|
metricsMarkers2(dim, 3); // 1 pixel space, 1 frame, 1 space
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures & features) const;
|
void validate(LaTeXFeatures & features) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -41,7 +41,7 @@ Inset * InsetMathBrace::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi);
|
cell(0).metrics(mi);
|
||||||
Dimension t = theFontMetrics(mi.base.font).dimension('{');
|
Dimension t = theFontMetrics(mi.base.font).dimension('{');
|
||||||
@ -49,10 +49,7 @@ bool InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des = std::max(cell(0).descent(), t.des);
|
dim.des = std::max(cell(0).descent(), t.des);
|
||||||
dim.wid = cell(0).width() + 2 * t.wid;
|
dim.wid = cell(0).width() + 2 * t.wid;
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
/// we write extra braces in any case...
|
/// we write extra braces in any case...
|
||||||
bool extraBraces() const { return true; }
|
bool extraBraces() const { return true; }
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) const;
|
void draw(PainterInfo &, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -43,16 +43,11 @@ Inset * InsetMathCases::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathCases::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathCases::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
dim = dim_;
|
|
||||||
InsetMathGrid::metrics(mi);
|
InsetMathGrid::metrics(mi);
|
||||||
dim_.wid += 8;
|
dim_.wid += 8;
|
||||||
|
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim = dim_;
|
dim = dim_;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathCases(row_type rows = 1u);
|
explicit InsetMathCases(row_type rows = 1u);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -56,7 +56,7 @@ Inset * InsetMathChar::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
#if 1
|
#if 1
|
||||||
if (char_ == '=' && has_math_fonts) {
|
if (char_ == '=' && has_math_fonts) {
|
||||||
@ -85,12 +85,6 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid += 2 * theFontMetrics(font_).width(' ');
|
dim.wid += 2 * theFontMetrics(font_).width(' ');
|
||||||
lyxerr << "InsetMathChar::metrics: " << dim << endl;
|
lyxerr << "InsetMathChar::metrics: " << dim << endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
dim_ = dim;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathChar(char_type c);
|
explicit InsetMathChar(char_type c);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -38,14 +38,11 @@ Inset * InsetMathColor::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathColor::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathColor::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
/// Create a color inset from LaTeX color name
|
/// Create a color inset from LaTeX color name
|
||||||
explicit InsetMathColor(bool oldstyle, docstring const & color);
|
explicit InsetMathColor(bool oldstyle, docstring const & color);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
/// we write extra braces in any case...
|
/// we write extra braces in any case...
|
||||||
/// FIXME Why? Are they necessary if oldstyle_ == false?
|
/// FIXME Why? Are they necessary if oldstyle_ == false?
|
||||||
bool extraBraces() const { return true; }
|
bool extraBraces() const { return true; }
|
||||||
|
@ -38,14 +38,11 @@ Inset * InsetMathComment::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathComment::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathComment::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathComment(docstring const &);
|
explicit InsetMathComment(docstring const &);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -31,17 +31,14 @@ Inset * InsetMathDFrac::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathDFrac::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathDFrac::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi);
|
cell(0).metrics(mi);
|
||||||
cell(1).metrics(mi);
|
cell(1).metrics(mi);
|
||||||
dim.wid = std::max(cell(0).width(), cell(1).width()) + 2;
|
dim.wid = std::max(cell(0).width(), cell(1).width()) + 2;
|
||||||
dim.asc = cell(0).height() + 2 + 5;
|
dim.asc = cell(0).height() + 2 + 5;
|
||||||
dim.des = cell(1).height() + 2 - 5;
|
dim.des = cell(1).height() + 2 - 5;
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetMathDFrac();
|
InsetMathDFrac();
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) const;
|
void draw(PainterInfo &, int x, int y) const;
|
||||||
///
|
///
|
||||||
|
@ -101,7 +101,7 @@ bool InsetMathDecoration::ams() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
|
|
||||||
@ -117,10 +117,7 @@ bool InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(WriteStream & os) const;
|
void write(WriteStream & os) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void normalize(NormalStream & os) const;
|
void normalize(NormalStream & os) const;
|
||||||
///
|
///
|
||||||
|
@ -67,7 +67,7 @@ void InsetMathDelim::normalize(NormalStream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
using std::max;
|
using std::max;
|
||||||
cell(0).metrics(mi);
|
cell(0).metrics(mi);
|
||||||
@ -83,10 +83,7 @@ bool InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = cell(0).width() + 2 * dw_ + 8;
|
dim.wid = cell(0).width() + 2 * dw_ + 8;
|
||||||
dim.asc = max(a0, d0) + h0;
|
dim.asc = max(a0, d0) + h0;
|
||||||
dim.des = max(a0, d0) - h0;
|
dim.des = max(a0, d0) - h0;
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
///
|
///
|
||||||
mode_type currentMode() const { return MATH_MODE; }
|
mode_type currentMode() const { return MATH_MODE; }
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) const;
|
void draw(PainterInfo &, int x, int y) const;
|
||||||
|
|
||||||
|
@ -47,10 +47,9 @@ void InsetMathDiff::normalize(NormalStream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathDiff::metrics(MetricsInfo &, Dimension &) const
|
void InsetMathDiff::metrics(MetricsInfo &, Dimension &) const
|
||||||
{
|
{
|
||||||
lyxerr << "should not happen" << endl;
|
lyxerr << "should not happen" << endl;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
///
|
///
|
||||||
void addDer(MathData const & der);
|
void addDer(MathData const & der);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ Inset * InsetMathDots::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
dim = theFontMetrics(mi.base.font).dimension('M');
|
dim = theFontMetrics(mi.base.font).dimension('M');
|
||||||
dh_ = 0;
|
dh_ = 0;
|
||||||
@ -47,10 +47,7 @@ bool InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
}
|
}
|
||||||
else if (key_->name == "ddots")
|
else if (key_->name == "ddots")
|
||||||
dh_ = dim.asc;
|
dh_ = dim.asc;
|
||||||
if (dim_ == dim)
|
dim = dim_;
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,9 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathDots(latexkeys const * l);
|
explicit InsetMathDots(latexkeys const * l);
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
|
///
|
||||||
|
Dimension const dimension(BufferView const &) const { return dim_; };
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
///
|
///
|
||||||
@ -37,6 +39,8 @@ protected:
|
|||||||
latexkeys const * key_;
|
latexkeys const * key_;
|
||||||
private:
|
private:
|
||||||
virtual Inset * clone() const;
|
virtual Inset * clone() const;
|
||||||
|
///
|
||||||
|
mutable Dimension dim_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -30,14 +30,11 @@ Inset * InsetMathEnv::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathEnv::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathEnv::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
cell(0).metrics(mi, dim);
|
cell(0).metrics(mi, dim);
|
||||||
metricsMarkers(dim);
|
metricsMarkers(dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public:
|
|||||||
/// write normalized content
|
/// write normalized content
|
||||||
void normalize(NormalStream & ns) const;
|
void normalize(NormalStream & ns) const;
|
||||||
///
|
///
|
||||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void infoize(odocstream & os) const;
|
void infoize(odocstream & os) const;
|
||||||
|
|
||||||
|
@ -40,13 +40,10 @@ Inset * InsetMathExFunc::clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathExFunc::metrics(MetricsInfo & mi, Dimension & dim) const
|
void InsetMathExFunc::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||||
{
|
{
|
||||||
mathed_string_dim(mi.base.font, name_, dim);
|
mathed_string_dim(mi.base.font, name_, dim);
|
||||||
if (dim_ == dim)
|
|
||||||
return false;
|
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user