mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 23:07:43 +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
|
/// initialize data
|
||||||
Dimension(int w, int a, int d) : wid(w), asc(a), des(d) {}
|
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
|
/// glue horizontally
|
||||||
void operator+=(Dimension const & dim);
|
void operator+=(Dimension const & dim);
|
||||||
/// set to empty box
|
/// set to empty box
|
||||||
@ -66,7 +72,14 @@ public:
|
|||||||
inline
|
inline
|
||||||
bool operator==(Dimension const & a, Dimension const & b)
|
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:
|
protected:
|
||||||
///
|
///
|
||||||
InsetOld(InsetOld const & in);
|
InsetOld(InsetOld const & in);
|
||||||
///
|
|
||||||
mutable Dimension dim_;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
InsetOld & operator=(InsetOld const &) const;
|
InsetOld & operator=(InsetOld const &) const;
|
||||||
|
@ -12,9 +12,10 @@
|
|||||||
#ifndef INSETBASE_H
|
#ifndef INSETBASE_H
|
||||||
#define INSETBASE_H
|
#define INSETBASE_H
|
||||||
|
|
||||||
#include "support/docstream.h"
|
|
||||||
|
|
||||||
#include "changes.h"
|
#include "changes.h"
|
||||||
|
#include "dimension.h"
|
||||||
|
|
||||||
|
#include "support/docstream.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -103,7 +104,8 @@ public:
|
|||||||
virtual InsetBase * editXY(LCursor & cur, int x, int y);
|
virtual InsetBase * editXY(LCursor & cur, int x, int y);
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// 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
|
/// 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
|
||||||
@ -443,6 +445,9 @@ protected:
|
|||||||
* \sa getStatus
|
* \sa getStatus
|
||||||
*/
|
*/
|
||||||
virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
|
virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
|
||||||
|
|
||||||
|
/// Cached dimensions of the inset.
|
||||||
|
mutable Dimension dim_;
|
||||||
private:
|
private:
|
||||||
virtual std::auto_ptr<InsetBase> doClone() const = 0;
|
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;
|
MetricsInfo mi = m;
|
||||||
if (params_.inner_box || params_.special != "width")
|
if (params_.inner_box || params_.special != "width")
|
||||||
mi.base.textwidth = params_.width.inPixels(m.base.textwidth);
|
mi.base.textwidth = params_.width.inPixels(m.base.textwidth);
|
||||||
InsetCollapsable::metrics(mi, dim);
|
InsetCollapsable::metrics(mi, dim);
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public:
|
|||||||
///
|
///
|
||||||
void setButtonLabel();
|
void setButtonLabel();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
/// show the Box dialog
|
/// show the Box dialog
|
||||||
bool showInsetDialog(BufferView * bv) const;
|
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;
|
mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
|
||||||
LCursor cur = mi.base.bv->cursor();
|
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.des += TEXT_TO_INSET_OFFSET;
|
||||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
///
|
///
|
||||||
bool descendable() const { return true; }
|
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;
|
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;
|
LyXFont tmpfont = mi.base.font;
|
||||||
getDrawFont(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.des += TEXT_TO_INSET_OFFSET;
|
||||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
dim_ = dim;
|
|
||||||
if (params_.show_label)
|
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 read(Buffer const & buf, LyXLex & lex);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int, int) 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);
|
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
||||||
mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
|
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.des += TEXT_TO_INSET_OFFSET;
|
||||||
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const &, std::ostream &) const;
|
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;
|
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_) {
|
if (updateButtonLabel_) {
|
||||||
updateButtonLabel_ = false;
|
updateButtonLabel_ = false;
|
||||||
@ -54,7 +54,9 @@ void 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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetCommand();
|
~InsetCommand();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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;
|
LyXFont 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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures &) const {}
|
void validate(LaTeXFeatures &) const {}
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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);
|
renderer_->metrics(mi, dim);
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ public:
|
|||||||
virtual EDITABLE editable() const { return IS_EDITABLE; }
|
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;
|
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;
|
LyXFont 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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetFootlike(InsetFootlike const &);
|
InsetFootlike(InsetFootlike const &);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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);
|
graphic_->metrics(mi, dim);
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetGraphics();
|
~InsetGraphics();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
EDITABLE editable() 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.wid = 3;
|
||||||
dim.asc = 3;
|
dim.asc = 3;
|
||||||
dim.des = 3;
|
dim.des = 3;
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetHFill();
|
InsetHFill();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
docstring const getScreenLabel(Buffer const &) 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());
|
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);
|
Box b(0, dim.wid, -dim.asc, dim.des);
|
||||||
button_.setBox(b);
|
button_.setBox(b);
|
||||||
|
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
~InsetInclude();
|
~InsetInclude();
|
||||||
|
|
||||||
/// Override these InsetButton methods if Previewing
|
/// 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;
|
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;
|
LyXFont & font = mi.base.font;
|
||||||
frontend::FontMetrics const & fm = theFontMetrics(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());
|
docstring dcon(contents.begin(), contents.end());
|
||||||
dim.wid = fm.width(dcon) + 4;
|
dim.wid = fm.width(dcon) + 4;
|
||||||
}
|
}
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetLatexAccent(std::string const & str);
|
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;
|
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.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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
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;
|
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);
|
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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
InsetBase::Code lyxCode() const { return InsetBase::NEWLINE_CODE; }
|
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;
|
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.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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
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;
|
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;
|
LyXFont & font = mi.base.font;
|
||||||
frontend::FontMetrics const & fm =
|
frontend::FontMetrics const & fm =
|
||||||
@ -239,7 +239,9 @@ void InsetQuotes::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
else
|
else
|
||||||
dim.wid += fm.width(',');
|
dim.wid += fm.width(',');
|
||||||
}
|
}
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ public:
|
|||||||
/// Direct access to inner/outer quotation marks
|
/// Direct access to inner/outer quotation marks
|
||||||
InsetQuotes(char_type c, quote_language l, quote_times t);
|
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;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
#if 0
|
#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 =
|
frontend::FontMetrics const & fm =
|
||||||
theFontMetrics(mi.base.font);
|
theFontMetrics(mi.base.font);
|
||||||
@ -75,7 +75,9 @@ void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.wid = 10;
|
dim.wid = 10;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public:
|
|||||||
///
|
///
|
||||||
Kind kind() const;
|
Kind kind() const;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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 =
|
frontend::FontMetrics const & fm =
|
||||||
theFontMetrics(mi.base.font);
|
theFontMetrics(mi.base.font);
|
||||||
@ -61,7 +61,9 @@ void 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;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
///
|
///
|
||||||
Kind kind() const;
|
Kind kind() const;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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: " <<
|
//lyxerr << "InsetTabular::metrics: " << mi.base.bv << " width: " <<
|
||||||
// mi.base.textwidth << "\n";
|
// mi.base.textwidth << "\n";
|
||||||
@ -300,7 +300,9 @@ void InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.asc = tabular.getAscentOfRow(0);
|
dim.asc = tabular.getAscentOfRow(0);
|
||||||
dim.des = tabular.getHeightOfTabular() - dim.asc;
|
dim.des = tabular.getHeightOfTabular() - dim.asc;
|
||||||
dim.wid = tabular.getWidthOfTabular() + 2 * ADD_TO_TABULAR_WIDTH;
|
dim.wid = tabular.getWidthOfTabular() + 2 * ADD_TO_TABULAR_WIDTH;
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const &, std::ostream &) const;
|
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;
|
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;
|
//lyxerr << "InsetText::metrics: width: " << mi.base.textwidth << endl;
|
||||||
mi.base.textwidth -= 2 * border_;
|
mi.base.textwidth -= 2 * border_;
|
||||||
@ -176,7 +176,9 @@ void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des += border_;
|
dim.des += border_;
|
||||||
dim.wid += 2 * border_;
|
dim.wid += 2 * border_;
|
||||||
mi.base.textwidth += 2 * border_;
|
mi.base.textwidth += 2 * border_;
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const & buf, std::ostream & os) const;
|
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;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
/// draw inset selection
|
/// draw inset selection
|
||||||
|
@ -69,12 +69,14 @@ auto_ptr<InsetBase> InsetTheorem::doClone() const
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InsetTheorem::metrics(MetricsInfo & mi, Dimension & dim) const
|
bool InsetTheorem::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;
|
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; }
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
bool metrics(MetricsInfo &, Dimension &) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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;
|
int height = 3 * arrow_size;
|
||||||
if (space_.length().len().value() >= 0.0)
|
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.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,7 @@ public:
|
|||||||
///
|
///
|
||||||
~InsetVSpace();
|
~InsetVSpace();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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;
|
virtual std::auto_ptr<RenderBase> clone(InsetBase const *) const = 0;
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// compute the size of the object returned in dim.
|
||||||
virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
|
/// \retval true if the metrics has changed.
|
||||||
|
virtual bool 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;
|
||||||
|
|
||||||
|
@ -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);
|
LyXFont font(LyXFont::ALL_SANE);
|
||||||
font.decSize();
|
font.decSize();
|
||||||
@ -56,6 +56,10 @@ void 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;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// 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
|
/// 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;
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ bool readyToDisplay(graphics::Loader const & loader)
|
|||||||
} // namespace anon
|
} // 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_);
|
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);
|
dim.wid = std::max(50, font_width + 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||||
|
|
||||||
/// compute the size of the object returned in dim
|
/// 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
|
/// draw inset
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
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());
|
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);
|
dim.wid = 15 + theFontMetrics(font).width(stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool const changed = dim_ != dim;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ public:
|
|||||||
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
std::auto_ptr<RenderBase> clone(InsetBase const *) const;
|
||||||
|
|
||||||
/// Compute the size of the object, returned in dim
|
/// 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;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -116,8 +116,8 @@ public:
|
|||||||
/// insert an inset at cursor position
|
/// insert an inset at cursor position
|
||||||
void insertInset(LCursor & cur, InsetBase * inset);
|
void insertInset(LCursor & cur, InsetBase * inset);
|
||||||
|
|
||||||
/// compute text metrics
|
/// compute text metrics.
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim);
|
bool metrics(MetricsInfo & mi, Dimension & dim);
|
||||||
/// draw text (only used for insets)
|
/// draw text (only used for insets)
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
/// draw textselection
|
/// 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;
|
//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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -84,7 +84,6 @@ class InfoStream;
|
|||||||
class MathMacroTemplate;
|
class MathMacroTemplate;
|
||||||
class MathMacro;
|
class MathMacro;
|
||||||
class MathPosFinder;
|
class MathPosFinder;
|
||||||
class Dimension;
|
|
||||||
class LCursor;
|
class LCursor;
|
||||||
class TextPainter;
|
class TextPainter;
|
||||||
class TextMetricsInfo;
|
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);
|
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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pain, int x, int y) 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);
|
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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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 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);
|
||||||
dim = dim_;
|
if (dim_ == dim)
|
||||||
|
return false;
|
||||||
|
dim_ = dim;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
///
|
///
|
||||||
docstring name() const;
|
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;
|
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);
|
ScriptChanger dummy(mi.base);
|
||||||
cell(0).metrics(mi);
|
cell(0).metrics(mi);
|
||||||
@ -54,7 +54,9 @@ void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des = cell(1).height() + 4 - 5;
|
dim.des = cell(1).height() + 4 - 5;
|
||||||
dim.wid = max(cell(0).width(), cell(1).width()) + 2 * dw() + 4;
|
dim.wid = 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;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) 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");
|
//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();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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");
|
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; }
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool 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,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);
|
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;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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);
|
cell(0).metrics(mi);
|
||||||
Dimension t;
|
Dimension t;
|
||||||
@ -52,7 +52,10 @@ void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dim.des = max(cell(0).descent(), t.des);
|
dim.des = 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; }
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) 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);
|
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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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 1
|
||||||
if (char_ == '=' && has_math_fonts) {
|
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);
|
dim.wid += static_cast<int>(0.1667*em+0.5);
|
||||||
#else
|
#else
|
||||||
whichFont(font_, code_, mi);
|
whichFont(font_, code_, mi);
|
||||||
mathed_char_dim(font_, char_, dim_);
|
mathed_char_dim(font_, char_, dim);
|
||||||
if (isBinaryOp(char_, code_))
|
if (isBinaryOp(char_, code_))
|
||||||
width_ += 2 * theFontMetrics(font_).width(' ');
|
width_ += 2 * theFontMetrics(font_).width(' ');
|
||||||
lyxerr << "InsetMathChar::metrics: " << dim << endl;
|
lyxerr << "InsetMathChar::metrics: " << dim << endl;
|
||||||
#endif
|
#endif
|
||||||
width_ = dim.wid;
|
width_ = dim.wid;
|
||||||
|
if (dim_ == dim)
|
||||||
|
return false;
|
||||||
|
dim_ = dim;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathChar(char_type c);
|
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;
|
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);
|
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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool 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; }
|
||||||
|
@ -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_) {
|
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);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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);
|
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 &);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo & pi, int x, int y) 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(0).metrics(mi);
|
||||||
cell(1).metrics(mi);
|
cell(1).metrics(mi);
|
||||||
dim_.wid = max(cell(0).width(), cell(1).width()) + 2;
|
dim.wid = 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;
|
||||||
dim = dim_;
|
if (dim_ == dim)
|
||||||
|
return false;
|
||||||
|
dim_ = dim;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
///
|
///
|
||||||
InsetMathDFrac();
|
InsetMathDFrac();
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) 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);
|
cell(0).metrics(mi, dim);
|
||||||
|
|
||||||
@ -118,7 +118,10 @@ void 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;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void normalize(NormalStream & os) 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);
|
cell(0).metrics(mi);
|
||||||
Dimension t;
|
Dimension t;
|
||||||
@ -84,10 +84,13 @@ void InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
dw_ = 8;
|
dw_ = 8;
|
||||||
if (dw_ < 4)
|
if (dw_ < 4)
|
||||||
dw_ = 4;
|
dw_ = 4;
|
||||||
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;
|
||||||
dim = dim_;
|
if (dim_ == dim)
|
||||||
|
return false;
|
||||||
|
dim_ = dim;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
///
|
///
|
||||||
mode_type currentMode() const { return MATH_MODE; }
|
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;
|
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;
|
lyxerr << "should not happen" << endl;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
///
|
///
|
||||||
void addDer(MathArray const & der);
|
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;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
|
@ -13,8 +13,6 @@
|
|||||||
#define MATH_DIMINSET_H
|
#define MATH_DIMINSET_H
|
||||||
|
|
||||||
#include "InsetMath.h"
|
#include "InsetMath.h"
|
||||||
#include "dimension.h"
|
|
||||||
|
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
|
||||||
@ -38,10 +36,6 @@ public:
|
|||||||
|
|
||||||
///
|
///
|
||||||
void setPosCache(PainterInfo const & pi, int x, int y) const;
|
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);
|
mathed_char_dim(mi.base.font, 'M', dim);
|
||||||
dh_ = 0;
|
dh_ = 0;
|
||||||
@ -50,7 +50,10 @@ void 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)
|
||||||
|
return false;
|
||||||
dim_ = dim;
|
dim_ = dim;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
///
|
///
|
||||||
explicit InsetMathDots(latexkeys const * l);
|
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;
|
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);
|
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;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
bool metrics(MetricsInfo & mi, Dimension & dim) const;
|
||||||
///
|
///
|
||||||
void infoize(odocstream & os) 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);
|
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;
|
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;
|
lyxerr << "should not happen" << endl;
|
||||||
|
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