lyx_mirror/src/mathed/math_sizeinset.C

71 lines
1.1 KiB
C++
Raw Normal View History

#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "math_sizeinset.h"
#include "support/LOstream.h"
MathSizeInset::MathSizeInset(MathStyles st)
: MathInset("", LM_OT_SIMPLE, 1), style_(st)
{
name_ = verbose();
}
char const * MathSizeInset::verbose() const
{
switch (style_) {
case LM_ST_DISPLAY:
return "displaystyle";
case LM_ST_TEXT:
return "textstyle";
case LM_ST_SCRIPT:
return "scriptstyle";
case LM_ST_SCRIPTSCRIPT:
return "scriptscriptstyle";
}
return "unknownstyle";
}
MathInset * MathSizeInset::Clone() const
{
return new MathSizeInset(*this);
}
void MathSizeInset::draw(Painter & pain, int x, int y)
{
xo(x);
yo(y);
xcell(0).draw(pain, x, y);
}
void MathSizeInset::Metrics(MathStyles /* st */)
{
xcell(0).Metrics(style_);
ascent_ = xcell(0).ascent_;
descent_ = xcell(0).descent_;
width_ = xcell(0).width_;
}
void MathSizeInset::Write(std::ostream & os, bool fragile) const
{
os << "{\\" << name() << " ";
cell(0).Write(os, fragile);
os << "}";
}
void MathSizeInset::WriteNormal(std::ostream & os) const
{
os << "[" << name() << " ";
cell(0).WriteNormal(os);
os << "]";
}