mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 13:46:43 +00:00
85a5ea7bfc
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2150 a592a061-630c-0410-9148-cb99ea01b6c8
71 lines
1.2 KiB
C
71 lines
1.2 KiB
C
#include <config.h>
|
|
|
|
#ifdef __GNUG__
|
|
#pragma implementation
|
|
#endif
|
|
|
|
#include "math_macrotemplate.h"
|
|
#include "Painter.h"
|
|
#include "debug.h"
|
|
|
|
|
|
MathMacroTemplate::MathMacroTemplate() :
|
|
MathInset("undefined", LM_OT_MACRO, 1), numargs_(0), users_()
|
|
{}
|
|
|
|
|
|
MathMacroTemplate::MathMacroTemplate(string const & nm, int numargs) :
|
|
MathInset(nm, LM_OT_MACRO, 1), numargs_(numargs), users_()
|
|
{}
|
|
|
|
|
|
MathInset * MathMacroTemplate::clone() const
|
|
{
|
|
lyxerr << "cloning MacroTemplate!\n";
|
|
return new MathMacroTemplate(*this);
|
|
}
|
|
|
|
|
|
int MathMacroTemplate::numargs() const
|
|
{
|
|
return numargs_;
|
|
}
|
|
|
|
|
|
void MathMacroTemplate::numargs(int numargs)
|
|
{
|
|
numargs_ = numargs;
|
|
}
|
|
|
|
|
|
void MathMacroTemplate::Write(std::ostream & os, bool fragile) const
|
|
{
|
|
os << "\n\\newcommand{\\" << name_ << "}";
|
|
|
|
if (numargs_ > 0)
|
|
os << "[" << numargs_ << "]";
|
|
|
|
os << "{";
|
|
cell(0).Write(os, fragile);
|
|
os << "}\n";
|
|
}
|
|
|
|
|
|
void MathMacroTemplate::Metrics(MathStyles st)
|
|
{
|
|
xcell(0).Metrics(st);
|
|
size_ = st;
|
|
width_ = xcell(0).width() + 4;
|
|
ascent_ = xcell(0).ascent() + 2;
|
|
descent_ = xcell(0).descent() + 2;
|
|
}
|
|
|
|
|
|
void MathMacroTemplate::draw(Painter & pain, int x, int y)
|
|
{
|
|
xo(x);
|
|
yo(y);
|
|
xcell(0).draw(pain, x + 2, y + 1);
|
|
pain.rectangle(x, y - ascent(), width(), height(), LColor::blue);
|
|
}
|