mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-21 23:09:40 +00:00
* dimension.h: new operator!=() and operator=()
* InsetBase and all derivates: - metrics(MetricsInfo & mi, Dimension & dim) now returns a bool (true if metrics changed). * MathData and all derivates: - metrics(MetricsInfo & mi, Dimension & dim): ditto. * RenderBase and all derivates: - metrics(MetricsInfo & mi, Dimension & dim): ditto. * lyxtext.h/text.C: - LyXText::metrics(MetricsInfo & mi, Dimension & dim): ditto. - LyXText::redoParagraph(): take into account potential change in inset metrics. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16091 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
0748904328
commit
e24bf64c68
@ -25,6 +25,12 @@ public:
|
||||
/// initialize data
|
||||
Dimension(int w, int a, int d) : wid(w), asc(a), des(d) {}
|
||||
|
||||
Dimension & operator=(Dimension const & dim) {
|
||||
wid = dim.wid;
|
||||
asc = dim.asc;
|
||||
des = dim.des;
|
||||
return *this;
|
||||
}
|
||||
/// glue horizontally
|
||||
void operator+=(Dimension const & dim);
|
||||
/// set to empty box
|
||||
@ -66,7 +72,14 @@ public:
|
||||
inline
|
||||
bool operator==(Dimension const & a, Dimension const & b)
|
||||
{
|
||||
return a.wid == b.wid && a.asc == b.asc && a.des ==b.des ;
|
||||
return a.wid == b.wid && a.asc == b.asc && a.des == b.des ;
|
||||
}
|
||||
|
||||
|
||||
inline
|
||||
bool operator!=(Dimension const & a, Dimension const & b)
|
||||
{
|
||||
return a.wid != b.wid || a.asc != b.asc || a.des != b.des ;
|
||||
}
|
||||
|
||||
|
||||
|
@ -56,8 +56,6 @@ public:
|
||||
protected:
|
||||
///
|
||||
InsetOld(InsetOld const & in);
|
||||
///
|
||||
mutable Dimension dim_;
|
||||
|
||||
private:
|
||||
InsetOld & operator=(InsetOld const &) const;
|
||||
|
@ -12,9 +12,10 @@
|
||||
#ifndef INSETBASE_H
|
||||
#define INSETBASE_H
|
||||
|
||||
#include "support/docstream.h"
|
||||
|
||||
#include "changes.h"
|
||||
#include "dimension.h"
|
||||
|
||||
#include "support/docstream.h"
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
@ -103,7 +104,8 @@ public:
|
||||
virtual InsetBase * editXY(LCursor & cur, int x, int y);
|
||||
|
||||
/// compute the size of the object returned in dim
|
||||
virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||
/// \retval true if metrics changed.
|
||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||
/// draw inset and update (xo, yo)-cache
|
||||
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
||||
/// draw inset selection if necessary
|
||||
@ -443,6 +445,9 @@ protected:
|
||||
* \sa getStatus
|
||||
*/
|
||||
virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
|
||||
|
||||
/// Cached dimensions of the inset.
|
||||
mutable Dimension dim_;
|
||||
private:
|
||||
virtual std::auto_ptr<InsetBase> doClone() const = 0;
|
||||
};
|
||||
|
@ -169,13 +169,15 @@ void InsetBox::setButtonLabel()
|
||||
}
|
||||
|
||||
|
||||
void InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
|
||||
bool InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
|
||||
{
|
||||
MetricsInfo mi = m;
|
||||
if (params_.inner_box || params_.special != "width")
|
||||
mi.base.textwidth = params_.width.inPixels(m.base.textwidth);
|
||||
InsetCollapsable::metrics(mi, dim);
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,7 +72,7 @@ public:
|
||||
///
|
||||
void setButtonLabel();
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
/// show the Box dialog
|
||||
bool showInsetDialog(BufferView * bv) const;
|
||||
///
|
||||
|
@ -119,7 +119,7 @@ void InsetCaption::setLabel(LCursor & cur) const
|
||||
}
|
||||
|
||||
|
||||
void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
|
||||
LCursor cur = mi.base.bv->cursor();
|
||||
@ -135,7 +135,9 @@ void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des += TEXT_TO_INSET_OFFSET;
|
||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -43,7 +43,7 @@ public:
|
||||
///
|
||||
bool descendable() const { return true; }
|
||||
///
|
||||
virtual void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -139,7 +139,7 @@ void InsetCharStyle::read(Buffer const & buf, LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
void InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
LyXFont tmpfont = mi.base.font;
|
||||
getDrawFont(mi.base.font);
|
||||
@ -168,9 +168,11 @@ void InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des += TEXT_TO_INSET_OFFSET;
|
||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||
dim_ = dim;
|
||||
if (params_.show_label)
|
||||
dim_.des += ascent();
|
||||
dim.des += ascent();
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
///
|
||||
void read(Buffer const & buf, LyXLex & lex);
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo &, int, int) const;
|
||||
///
|
||||
|
@ -132,7 +132,7 @@ Dimension InsetCollapsable::dimensionCollapsed() const
|
||||
}
|
||||
|
||||
|
||||
void InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
||||
mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
|
||||
@ -162,7 +162,9 @@ void InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des += TEXT_TO_INSET_OFFSET;
|
||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
///
|
||||
void write(Buffer const &, std::ostream &) const;
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -46,7 +46,7 @@ InsetCommand::~InsetCommand()
|
||||
}
|
||||
|
||||
|
||||
void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
if (updateButtonLabel_) {
|
||||
updateButtonLabel_ = false;
|
||||
@ -54,7 +54,9 @@ void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
editable() != NOT_EDITABLE);
|
||||
}
|
||||
button_.metrics(mi, dim);
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
///
|
||||
~InsetCommand();
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -397,14 +397,16 @@ bool InsetERT::insetAllowed(InsetBase::Code /* code */) const
|
||||
}
|
||||
|
||||
|
||||
void InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
LyXFont tmpfont = mi.base.font;
|
||||
getDrawFont(mi.base.font);
|
||||
mi.base.font.realize(tmpfont);
|
||||
InsetCollapsable::metrics(mi, dim);
|
||||
mi.base.font = tmpfont;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,7 +63,7 @@ public:
|
||||
///
|
||||
void validate(LaTeXFeatures &) const {}
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -482,10 +482,12 @@ void InsetExternal::edit(LCursor & cur, bool)
|
||||
}
|
||||
|
||||
|
||||
void InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
renderer_->metrics(mi, dim);
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -116,7 +116,7 @@ public:
|
||||
virtual EDITABLE editable() const { return IS_EDITABLE; }
|
||||
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -44,13 +44,15 @@ InsetFootlike::InsetFootlike(InsetFootlike const & in)
|
||||
}
|
||||
|
||||
|
||||
void InsetFootlike::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetFootlike::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
LyXFont tmpfont = mi.base.font;
|
||||
mi.base.font = mi.base.bv->buffer()->params().getFont();
|
||||
InsetCollapsable::metrics(mi, dim);
|
||||
mi.base.font = tmpfont;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
///
|
||||
InsetFootlike(InsetFootlike const &);
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -234,10 +234,12 @@ void InsetGraphics::edit(LCursor & cur, bool)
|
||||
}
|
||||
|
||||
|
||||
void InsetGraphics::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetGraphics::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
graphic_->metrics(mi, dim);
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
///
|
||||
~InsetGraphics();
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
EDITABLE editable() const;
|
||||
///
|
||||
|
@ -32,12 +32,14 @@ std::auto_ptr<InsetBase> InsetHFill::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetHFill::metrics(MetricsInfo &, Dimension & dim) const
|
||||
bool InsetHFill::metrics(MetricsInfo &, Dimension & dim) const
|
||||
{
|
||||
dim.wid = 3;
|
||||
dim.asc = 3;
|
||||
dim.des = 3;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
///
|
||||
InsetHFill();
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
docstring const getScreenLabel(Buffer const &) const;
|
||||
///
|
||||
|
@ -648,7 +648,7 @@ InsetInclude::getBibfilesCache(Buffer const & buffer) const
|
||||
}
|
||||
|
||||
|
||||
void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
BOOST_ASSERT(mi.base.bv && mi.base.bv->buffer());
|
||||
|
||||
@ -673,7 +673,9 @@ void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
Box b(0, dim.wid, -dim.asc, dim.des);
|
||||
button_.setBox(b);
|
||||
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
~InsetInclude();
|
||||
|
||||
/// Override these InsetButton methods if Previewing
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -242,7 +242,7 @@ void InsetLatexAccent::checkContents()
|
||||
}
|
||||
|
||||
|
||||
void InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
LyXFont & font = mi.base.font;
|
||||
frontend::FontMetrics const & fm = theFontMetrics(font);
|
||||
@ -273,7 +273,9 @@ void InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
docstring dcon(contents.begin(), contents.end());
|
||||
dim.wid = fm.width(dcon) + 4;
|
||||
}
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
///
|
||||
explicit InsetLatexAccent(std::string const & str);
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -42,12 +42,14 @@ void InsetLine::write(Buffer const &, ostream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetLine::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetLine::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
dim.asc = 3;
|
||||
dim.des = 3;
|
||||
dim.wid = mi.base.textwidth;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
|
||||
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
||||
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -41,13 +41,15 @@ void InsetNewline::write(Buffer const &, ostream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
|
||||
dim.asc = fm.maxAscent();
|
||||
dim.des = fm.maxDescent();
|
||||
dim.wid = fm.width('n');
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
|
||||
InsetBase::Code lyxCode() const { return InsetBase::NEWLINE_CODE; }
|
||||
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
|
||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -42,12 +42,14 @@ void InsetPagebreak::write(Buffer const &, ostream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
dim.asc = defaultRowHeight();
|
||||
dim.des = defaultRowHeight();
|
||||
dim.wid = mi.base.textwidth;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
|
||||
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
||||
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -221,7 +221,7 @@ docstring const InsetQuotes::dispString(Language const * loclang) const
|
||||
}
|
||||
|
||||
|
||||
void InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
LyXFont & font = mi.base.font;
|
||||
frontend::FontMetrics const & fm =
|
||||
@ -239,7 +239,9 @@ void InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
else
|
||||
dim.wid += fm.width(',');
|
||||
}
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
/// Direct access to inner/outer quotation marks
|
||||
InsetQuotes(char_type c, quote_language l, quote_times t);
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
#if 0
|
||||
|
@ -48,7 +48,7 @@ InsetSpace::Kind InsetSpace::kind() const
|
||||
}
|
||||
|
||||
|
||||
void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
frontend::FontMetrics const & fm =
|
||||
theFontMetrics(mi.base.font);
|
||||
@ -75,7 +75,9 @@ void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.wid = 10;
|
||||
break;
|
||||
}
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
///
|
||||
Kind kind() const;
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -42,7 +42,7 @@ InsetSpecialChar::Kind InsetSpecialChar::kind() const
|
||||
}
|
||||
|
||||
|
||||
void InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
frontend::FontMetrics const & fm =
|
||||
theFontMetrics(mi.base.font);
|
||||
@ -61,7 +61,9 @@ void InsetSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.wid = fm.width(ds);
|
||||
if (kind_ == HYPHENATION && dim.wid > 5)
|
||||
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;
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -246,7 +246,7 @@ void InsetTabular::read(Buffer const & buf, LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
void InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
//lyxerr << "InsetTabular::metrics: " << mi.base.bv << " width: " <<
|
||||
// mi.base.textwidth << "\n";
|
||||
@ -300,7 +300,9 @@ void InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.asc = tabular.getAscentOfRow(0);
|
||||
dim.des = tabular.getHeightOfTabular() - dim.asc;
|
||||
dim.wid = tabular.getWidthOfTabular() + 2 * ADD_TO_TABULAR_WIDTH;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -60,7 +60,7 @@ public:
|
||||
///
|
||||
void write(Buffer const &, std::ostream &) const;
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -164,7 +164,7 @@ void InsetText::read(Buffer const & buf, LyXLex & lex)
|
||||
}
|
||||
|
||||
|
||||
void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
//lyxerr << "InsetText::metrics: width: " << mi.base.textwidth << endl;
|
||||
mi.base.textwidth -= 2 * border_;
|
||||
@ -176,7 +176,9 @@ void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des += border_;
|
||||
dim.wid += 2 * border_;
|
||||
mi.base.textwidth += 2 * border_;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
///
|
||||
void write(Buffer const & buf, std::ostream & os) const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
/// draw inset selection
|
||||
|
@ -69,12 +69,14 @@ auto_ptr<InsetBase> InsetTheorem::doClone() const
|
||||
return result;
|
||||
}
|
||||
|
||||
void InsetTheorem::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetTheorem::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
InsetCollapsable::metrics(mi, dim);
|
||||
center_indent_ = (mi.base.textwidth - dim.wid) / 2;
|
||||
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; }
|
||||
///
|
||||
void metrics(MetricsInfo &, Dimension &) const;
|
||||
bool metrics(MetricsInfo &, Dimension &) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -116,7 +116,7 @@ int const arrow_size = 4;
|
||||
}
|
||||
|
||||
|
||||
void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
int height = 3 * arrow_size;
|
||||
if (space_.length().len().value() >= 0.0)
|
||||
@ -136,7 +136,9 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.asc = height / 2 + (a - d) / 2; // align cursor with the
|
||||
dim.des = height - dim.asc; // label text
|
||||
dim.wid = ADD_TO_VSPACE_WIDTH + 2 * arrow_size + 5 + w;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
///
|
||||
~InsetVSpace();
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -34,8 +34,9 @@ public:
|
||||
|
||||
virtual std::auto_ptr<RenderBase> clone(InsetBase const *) const = 0;
|
||||
|
||||
/// compute the size of the object returned in dim
|
||||
virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||
/// compute the size of the object returned in dim.
|
||||
/// \retval true if the metrics has changed.
|
||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
||||
/// draw inset and update (xo, yo)-cache
|
||||
virtual void draw(PainterInfo & pi, int x, int y) const = 0;
|
||||
|
||||
|
@ -43,7 +43,7 @@ void RenderButton::update(docstring const & text, bool editable)
|
||||
}
|
||||
|
||||
|
||||
void RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
||||
bool RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
||||
{
|
||||
LyXFont font(LyXFont::ALL_SANE);
|
||||
font.decSize();
|
||||
@ -56,6 +56,10 @@ void RenderButton::metrics(MetricsInfo &, Dimension & dim) const
|
||||
fm.rectText(text_, dim.wid, dim.asc, dim.des);
|
||||
|
||||
dim.wid += 4;
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,7 +28,7 @@ public:
|
||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||
|
||||
/// compute the size of the object returned in dim
|
||||
virtual void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
virtual bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
/// draw inset and update (xo, yo)-cache
|
||||
virtual void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -140,7 +140,7 @@ bool readyToDisplay(graphics::Loader const & loader)
|
||||
} // namespace anon
|
||||
|
||||
|
||||
void RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
bool image_ready = displayGraphic(params_) && readyToDisplay(loader_);
|
||||
|
||||
@ -175,7 +175,9 @@ void RenderGraphic::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.wid = std::max(50, font_width + 15);
|
||||
}
|
||||
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||
|
||||
/// compute the size of the object returned in dim
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
/// draw inset
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -113,7 +113,7 @@ RenderPreview::getPreviewImage(Buffer const & buffer) const
|
||||
}
|
||||
|
||||
|
||||
void RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
BOOST_ASSERT(mi.base.bv && mi.base.bv->buffer());
|
||||
|
||||
@ -135,7 +135,9 @@ void RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.wid = 15 + theFontMetrics(font).width(stat);
|
||||
}
|
||||
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||
|
||||
/// Compute the size of the object, returned in dim
|
||||
void metrics(MetricsInfo &, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo &, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -116,8 +116,8 @@ public:
|
||||
/// insert an inset at cursor position
|
||||
void insertInset(LCursor & cur, InsetBase * inset);
|
||||
|
||||
/// compute text metrics
|
||||
void metrics(MetricsInfo & mi, Dimension & dim);
|
||||
/// compute text metrics.
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim);
|
||||
/// draw text (only used for insets)
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
/// draw textselection
|
||||
|
@ -124,14 +124,16 @@ string InsetFormulaMacro::prefix() const
|
||||
}
|
||||
|
||||
|
||||
void InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetFormulaMacro::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
//lyxerr << "InsetFormulaMacro: " << this << " -- " << &tmpl() << endl;
|
||||
tmpl()->metrics(mi, dim);
|
||||
dim.asc += 5;
|
||||
dim.des += 5;
|
||||
dim.wid += 10 + theFontMetrics(mi.base.font).width(prefix());
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
/// constructs a mocro from its LaTeX definition
|
||||
explicit InsetFormulaMacro(docstring const & s);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -84,7 +84,6 @@ class InfoStream;
|
||||
class MathMacroTemplate;
|
||||
class MathMacro;
|
||||
class MathPosFinder;
|
||||
class Dimension;
|
||||
class LCursor;
|
||||
class TextPainter;
|
||||
class TextMetricsInfo;
|
||||
|
@ -79,12 +79,14 @@ char const * InsetMathAMSArray::name_right() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathAMSArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathAMSArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
ArrayChanger dummy(mi.base);
|
||||
InsetMathGrid::metrics(mi, dim);
|
||||
dim.wid += 14;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
///
|
||||
InsetMathAMSArray(docstring const & name);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pain, int x, int y) const;
|
||||
///
|
||||
|
@ -80,12 +80,14 @@ auto_ptr<InsetBase> InsetMathArray::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathArray::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
ArrayChanger dummy(mi.base);
|
||||
InsetMathGrid::metrics(mi, dim);
|
||||
dim.wid += 6;
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
/// convenience constructor from whitespace/newline separated data
|
||||
InsetMathArray(docstring const &, docstring const & str);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -62,14 +62,17 @@ double InsetMathBig::increase() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBig::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBig::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
double const h = theFontMetrics(mi.base.font).ascent('I');
|
||||
double const f = increase();
|
||||
dim_.wid = 6;
|
||||
dim_.asc = int(h + f * h);
|
||||
dim_.des = int(f * h);
|
||||
dim = dim_;
|
||||
dim.wid = 6;
|
||||
dim.asc = int(h + f * h);
|
||||
dim.des = int(f * h);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
///
|
||||
docstring name() const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -45,7 +45,7 @@ int InsetMathBinom::dw() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
ScriptChanger dummy(mi.base);
|
||||
cell(0).metrics(mi);
|
||||
@ -54,7 +54,9 @@ void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des = cell(1).height() + 4 - 5;
|
||||
dim.wid = max(cell(0).width(), cell(1).width()) + 2 * dw() + 4;
|
||||
metricsMarkers2(dim);
|
||||
bool const changed = dim_ != dim;
|
||||
dim_ = dim;
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,7 +28,7 @@ public:
|
||||
///
|
||||
void normalize(NormalStream &) const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo &, int x, int y) const;
|
||||
///
|
||||
|
@ -33,13 +33,16 @@ auto_ptr<InsetBase> InsetMathBoldSymbol::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBoldSymbol::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBoldSymbol::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
//FontSetChanger dummy(mi.base, "mathbf");
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers(dim);
|
||||
++dim.wid; // for 'double stroke'
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
///
|
||||
InsetMathBoldSymbol();
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -48,12 +48,15 @@ void InsetMathBox::normalize(NormalStream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBox::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBox::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
FontSetChanger dummy(mi.base, "textnormal");
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
///
|
||||
mode_type currentMode() const { return TEXT_MODE; }
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -38,11 +38,14 @@ auto_ptr<InsetBase> InsetMathBoxed::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBoxed::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBoxed::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers2(dim, 3); // 1 pixel space, 1 frame, 1 space
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
///
|
||||
void validate(LaTeXFeatures & features) const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -43,7 +43,7 @@ auto_ptr<InsetBase> InsetMathBrace::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi);
|
||||
Dimension t;
|
||||
@ -52,7 +52,10 @@ void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.des = max(cell(0).descent(), t.des);
|
||||
dim.wid = cell(0).width() + 2 * t.wid;
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
/// we write extra braces in any case...
|
||||
bool extraBraces() const { return true; }
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo &, int x, int y) const;
|
||||
///
|
||||
|
@ -47,11 +47,16 @@ auto_ptr<InsetBase> InsetMathCases::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathCases::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathCases::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
dim = dim_;
|
||||
InsetMathGrid::metrics(mi);
|
||||
dim_.wid += 8;
|
||||
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim = dim_;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
///
|
||||
explicit InsetMathCases(row_type rows = 1u);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -57,7 +57,7 @@ auto_ptr<InsetBase> InsetMathChar::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
#if 1
|
||||
if (char_ == '=' && has_math_fonts) {
|
||||
@ -79,12 +79,16 @@ void InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dim.wid += static_cast<int>(0.1667*em+0.5);
|
||||
#else
|
||||
whichFont(font_, code_, mi);
|
||||
mathed_char_dim(font_, char_, dim_);
|
||||
mathed_char_dim(font_, char_, dim);
|
||||
if (isBinaryOp(char_, code_))
|
||||
width_ += 2 * theFontMetrics(font_).width(' ');
|
||||
lyxerr << "InsetMathChar::metrics: " << dim << endl;
|
||||
#endif
|
||||
width_ = dim.wid;
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
///
|
||||
explicit InsetMathChar(char_type c);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -41,11 +41,14 @@ auto_ptr<InsetBase> InsetMathColor::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathColor::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathColor::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
/// Create a color inset from LaTeX color name
|
||||
explicit InsetMathColor(bool oldstyle, docstring const & color);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
/// we write extra braces in any case...
|
||||
/// FIXME Why? Are they necessary if oldstyle_ == false?
|
||||
bool extraBraces() const { return true; }
|
||||
|
@ -37,14 +37,17 @@ auto_ptr<InsetBase> CommandInset::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void CommandInset::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool CommandInset::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
if (!set_label_) {
|
||||
set_label_ = true;
|
||||
button_.update(screenLabel(), true);
|
||||
}
|
||||
button_.metrics(mi, dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
///
|
||||
explicit CommandInset(docstring const & name);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -42,11 +42,14 @@ auto_ptr<InsetBase> InsetMathComment::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathComment::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathComment::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
///
|
||||
explicit InsetMathComment(docstring const &);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -37,14 +37,17 @@ auto_ptr<InsetBase> InsetMathDFrac::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathDFrac::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathDFrac::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi);
|
||||
cell(1).metrics(mi);
|
||||
dim_.wid = max(cell(0).width(), cell(1).width()) + 2;
|
||||
dim_.asc = cell(0).height() + 2 + 5;
|
||||
dim_.des = cell(1).height() + 2 - 5;
|
||||
dim = dim_;
|
||||
dim.wid = max(cell(0).width(), cell(1).width()) + 2;
|
||||
dim.asc = cell(0).height() + 2 + 5;
|
||||
dim.des = cell(1).height() + 2 - 5;
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
///
|
||||
InsetMathDFrac();
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo &, int x, int y) const;
|
||||
///
|
||||
|
@ -102,7 +102,7 @@ bool InsetMathDecoration::ams() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi, dim);
|
||||
|
||||
@ -118,7 +118,10 @@ void InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
}
|
||||
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
///
|
||||
void write(WriteStream & os) const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void normalize(NormalStream & os) const;
|
||||
///
|
||||
|
@ -71,7 +71,7 @@ void InsetMathDelim::normalize(NormalStream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi);
|
||||
Dimension t;
|
||||
@ -84,10 +84,13 @@ void InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
dw_ = 8;
|
||||
if (dw_ < 4)
|
||||
dw_ = 4;
|
||||
dim_.wid = cell(0).width() + 2 * dw_ + 8;
|
||||
dim_.asc = max(a0, d0) + h0;
|
||||
dim_.des = max(a0, d0) - h0;
|
||||
dim = dim_;
|
||||
dim.wid = cell(0).width() + 2 * dw_ + 8;
|
||||
dim.asc = max(a0, d0) + h0;
|
||||
dim.des = max(a0, d0) - h0;
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
///
|
||||
mode_type currentMode() const { return MATH_MODE; }
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo &, int x, int y) const;
|
||||
|
||||
|
@ -48,9 +48,10 @@ void InsetMathDiff::normalize(NormalStream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathDiff::metrics(MetricsInfo &, Dimension &) const
|
||||
bool InsetMathDiff::metrics(MetricsInfo &, Dimension &) const
|
||||
{
|
||||
lyxerr << "should not happen" << endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,7 +28,7 @@ public:
|
||||
///
|
||||
void addDer(MathArray const & der);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
|
||||
|
@ -13,8 +13,6 @@
|
||||
#define MATH_DIMINSET_H
|
||||
|
||||
#include "InsetMath.h"
|
||||
#include "dimension.h"
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
@ -38,10 +36,6 @@ public:
|
||||
|
||||
///
|
||||
void setPosCache(PainterInfo const & pi, int x, int y) const;
|
||||
|
||||
protected:
|
||||
///
|
||||
mutable Dimension dim_;
|
||||
};
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ auto_ptr<InsetBase> InsetMathDots::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
mathed_char_dim(mi.base.font, 'M', dim);
|
||||
dh_ = 0;
|
||||
@ -50,7 +50,10 @@ void InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
}
|
||||
else if (key_->name == "ddots")
|
||||
dh_ = dim.asc;
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
///
|
||||
explicit InsetMathDots(latexkeys const * l);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -35,11 +35,14 @@ auto_ptr<InsetBase> InsetMathEnv::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathEnv::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
bool InsetMathEnv::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
cell(0).metrics(mi, dim);
|
||||
metricsMarkers(dim);
|
||||
if (dim_ == dim)
|
||||
return false;
|
||||
dim_ = dim;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
/// write normalized content
|
||||
void normalize(NormalStream & ns) const;
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void infoize(odocstream & os) const;
|
||||
|
||||
|
@ -42,9 +42,13 @@ auto_ptr<InsetBase> InsetMathExFunc::doClone() const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathExFunc::metrics(MetricsInfo & mi, Dimension & /*dim*/) const
|
||||
bool 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;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
///
|
||||
InsetMathExFunc(docstring const & name, MathArray const & ar);
|
||||
///
|
||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||
///
|
||||
void draw(PainterInfo & pi, int x, int y) const;
|
||||
///
|
||||
|
@ -65,9 +65,10 @@ void InsetMathExInt::normalize(NormalStream & os) const
|
||||
}
|
||||
|
||||
|
||||
void InsetMathExInt::metrics(MetricsInfo &, Dimension &) const
|
||||
bool InsetMathExInt::metrics(MetricsInfo &, Dimension &) const
|
||||
{
|
||||
lyxerr << "should not happen" << endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user