using std::string;
using std::max;
-using std::auto_ptr;
using std::ostream;
}
-bool InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
+void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const
{
frontend::FontMetrics const & fm =
theFontMetrics(mi.base.font);
switch (kind_) {
case THIN:
case NEGTHIN:
- dim.wid = fm.width(char_type('x')) / 3;
+ dim.wid = fm.width(char_type('x')) / 3;
break;
case PROTECTED:
case NORMAL:
- dim.wid = fm.width(char_type('x'));
+ dim.wid = fm.width(char_type('x'));
break;
case QUAD:
dim.wid = 20;
dim.wid = 10;
break;
}
- bool const changed = dim_ != dim;
- dim_ = dim;
- return changed;
+ // Cache the inset dimension.
+ setDimCache(mi, dim);
}
void InsetSpace::draw(PainterInfo & pi, int x, int y) const
{
- int const w = width();
+ Dimension const dim = dimension(*pi.base.bv);
+ int const w = dim.wid;
int const h = theFontMetrics(pi.base.font)
.ascent('x');
int xp[4], yp[4];
int InsetSpace::latex(Buffer const &, odocstream & os,
- OutputParams const & runparams) const
+ OutputParams const & runparams) const
{
switch (kind_) {
case NORMAL:
int InsetSpace::plaintext(Buffer const &, odocstream & os,
- OutputParams const &) const
+ OutputParams const &) const
{
os << ' ';
return 1;
int InsetSpace::docbook(Buffer const &, odocstream & os,
- OutputParams const &) const
+ OutputParams const &) const
{
switch (kind_) {
case NORMAL:
}
-auto_ptr<Inset> InsetSpace::doClone() const
+Inset * InsetSpace::clone() const
{
- return auto_ptr<Inset>(new InsetSpace(kind_));
+ return new InsetSpace(kind_);
}