#include "math_support.h"
#include "math_mathmlstream.h"
#include "textpainter.h"
-#include "Lsstream.h"
#include "BufferView.h"
#include "gettext.h"
using std::ostream;
using std::vector;
+using std::auto_ptr;
+using std::endl;
-class InsetFormula::PreviewImpl : public grfx::PreviewedInset {
+class InsetFormula::PreviewImpl : public lyx::graphics::PreviewedInset {
public:
///
PreviewImpl(InsetFormula & p) : PreviewedInset(p) {}
{}
-InsetFormula::InsetFormula(BufferView * bv)
+InsetFormula::InsetFormula(BufferView *)
: par_(MathAtom(new MathHullInset)),
preview_(new PreviewImpl(*this))
{
- view_ = bv->owner()->view();
+ //view_ = bv->owner()->view();
}
if (!data.size())
return;
if (!mathed_parse_normal(par_, data))
- lyxerr << "cannot interpret '" << data << "' as math\n";
+ lyxerr << "cannot interpret '" << data << "' as math" << endl;
}
{}
-Inset * InsetFormula::clone(Buffer const &) const
+auto_ptr<InsetBase> InsetFormula::clone() const
{
- return new InsetFormula(*this);
+ return auto_ptr<InsetBase>(new InsetFormula(*this));
}
-// Inset * InsetFormula::clone(Buffer const &, bool) const
-// {
-// return new InsetFormula(*this);
-// }
-
-
void InsetFormula::write(Buffer const *, ostream & os) const
{
WriteStream wi(os, false, false);
par()->drawT(tpain, 0, dim.ascent());
tpain.show(os, 3);
// reset metrics cache to "real" values
- metrics();
+ //metrics();
return tpain.textheight();
} else {
WriteStream wi(os, false, true);
// remove extra 'mathrm' for chemistry stuff.
// will be re-added on write
if (par_->asHullInset()->getType() =="chemistry") {
- lyxerr << "this is chemistry\n";
+ lyxerr << "this is chemistry" << endl;
if (par_->cell(0).size() == 1) {
- lyxerr << "this is size 1\n";
- if (par_->cell(0)[0]->asFontInset()) {
- lyxerr << "this is a font inset \n";
- lyxerr << "replacing " << par_.nucleus()->cell(0) <<
- " with " << par_->cell(0)[0]->cell(0) << "\n";
+ lyxerr << "this is size 1" << endl;
+ if (par_->cell(0)[0]->asFontInset()) {
+ lyxerr << "this is a font inset "
+ << "replacing " << par_.nucleus()->cell(0) <<
+ " with " << par_->cell(0)[0]->cell(0) << endl;
}
}
}
- metrics();
+ //metrics();
}
// before the metrics are computed.
bool const use_preview = preview_->previewReady();
- Dimension dim;
- dimension(pi.base.bv, pi.base.font, dim);
- int const w = dim.wid;
- int const d = dim.des;
- int const a = dim.asc;
+ int const w = dim_.wid;
+ int const d = dim_.des;
+ int const a = dim_.asc;
int const h = a + d;
if (use_preview) {
}
-vector<string> const InsetFormula::getLabelList() const
+void InsetFormula::getLabelList(vector<string> & res) const
{
- vector<string> res;
par()->getLabelList(res);
- return res;
}
-Inset::Code InsetFormula::lyxCode() const
+InsetOld::Code InsetFormula::lyxCode() const
{
- return Inset::MATH_CODE;
+ return InsetOld::MATH_CODE;
}
}
-bool InsetFormula::insetAllowed(Inset::Code code) const
+bool InsetFormula::insetAllowed(InsetOld::Code code) const
{
return
- code == Inset::LABEL_CODE
- || code == Inset::REF_CODE
- || code == Inset::ERT_CODE;
+ code == InsetOld::LABEL_CODE
+ || code == InsetOld::REF_CODE
+ || code == InsetOld::ERT_CODE;
}
-void InsetFormula::dimension(BufferView * bv, LyXFont const & font,
- Dimension & dim) const
+void InsetFormula::metrics(MetricsInfo & m, Dimension & dim) const
{
- metrics(bv, font, dim);
+ view_ = m.base.bv;
if (preview_->previewReady()) {
dim.asc = preview_->pimage()->ascent();
- int const descent = preview_->pimage()->descent();
- dim.des = display() ? descent + 12 : descent;
+ dim.des = preview_->pimage()->descent();
// insert a one pixel gap in front of the formula
dim.wid = 1 + preview_->pimage()->width();
+ if (display())
+ dim.des += 12;
} else {
- MetricsInfo mi;
- mi.base.bv = bv;
- dim = par()->metrics(mi);
+ MetricsInfo mi = m;
+ mi.base.style = LM_ST_TEXT;
+ mi.base.font.setColor(LColor::math);
+ par()->metrics(mi, dim);
dim.asc += 1;
dim.des += 1;
}
+ dim_ = dim;
}
// preview stuff
//
-void InsetFormula::addPreview(grfx::PreviewLoader & ploader) const
+void InsetFormula::addPreview(lyx::graphics::PreviewLoader & ploader) const
{
preview_->addPreview(ploader);
}