2001-02-13 17:08:51 +00:00
|
|
|
#include <config.h>
|
|
|
|
|
|
|
|
#include "math_macroarg.h"
|
|
|
|
#include "mathed/support.h"
|
|
|
|
#include "debug.h"
|
|
|
|
|
|
|
|
|
|
|
|
MathMacroArgument::MathMacroArgument()
|
|
|
|
: expnd_mode_(false), number_(1)
|
|
|
|
{
|
|
|
|
SetType(LM_OT_MACRO_ARG);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MathMacroArgument::MathMacroArgument(int n)
|
|
|
|
: expnd_mode_(false), number_(n)
|
|
|
|
{
|
|
|
|
SetType(LM_OT_MACRO_ARG);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MathMacroArgument::~MathMacroArgument()
|
|
|
|
{
|
|
|
|
lyxerr << "help, destroyme!" << std::endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MathedInset * MathMacroArgument::Clone()
|
|
|
|
{
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MathMacroArgument::setNumber(int n)
|
|
|
|
{
|
|
|
|
number_ = n;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MathMacroArgument::setExpand(bool e)
|
|
|
|
{
|
|
|
|
expnd_mode_ = e;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool MathMacroArgument::getExpand() const
|
|
|
|
{
|
|
|
|
return expnd_mode_;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MathMacroArgument::draw(Painter & pain, int x, int baseline)
|
|
|
|
{
|
|
|
|
if (expnd_mode_) {
|
|
|
|
MathParInset::draw(pain, x, baseline);
|
2001-02-15 12:22:01 +00:00
|
|
|
} else {
|
2001-02-13 17:08:51 +00:00
|
|
|
std::ostringstream ost;
|
|
|
|
ost << '#' << number_;
|
2001-02-15 12:22:01 +00:00
|
|
|
drawStr(pain, LM_TC_TEX, size(), x, baseline, ost.str().c_str());
|
2001-02-13 17:08:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MathMacroArgument::Metrics()
|
|
|
|
{
|
|
|
|
if (expnd_mode_) {
|
|
|
|
MathParInset::Metrics();
|
|
|
|
} else {
|
|
|
|
std::ostringstream ost;
|
|
|
|
ost << '#' << number_;
|
2001-02-15 12:22:01 +00:00
|
|
|
width = mathed_string_width(LM_TC_TEX, size(), ost.str().c_str());
|
|
|
|
mathed_string_height(LM_TC_TEX, size(), ost.str().c_str(),
|
2001-02-13 17:08:51 +00:00
|
|
|
ascent, descent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MathMacroArgument::Write(ostream & os, bool fragile)
|
|
|
|
{
|
|
|
|
if (expnd_mode_) {
|
|
|
|
MathParInset::Write(os, fragile);
|
|
|
|
} else {
|
|
|
|
os << '#' << number_ << ' ';
|
|
|
|
}
|
|
|
|
}
|