#include "Lsstream.h"
#include "lyxlex.h"
#include "lyxrc.h"
-#include "Lsstream.h"
+#include "metricsinfo.h"
+#include "dimension.h"
#include "frontends/Dialogs.h"
#include "frontends/LyXView.h"
}
-Inset * InsetInclude::clone(Buffer const & buffer) const
+Inset * InsetInclude::clone() const
{
- Params p(params_);
- p.masterFilename_ = buffer.fileName();
+ //Params p(params_);
+ //p.masterFilename_ = buffer.fileName();
+#warning FIXME: broken cross-doc copy/paste - must fix
- return new InsetInclude(p);
+ return new InsetInclude(params_);
}
-// Inset * InsetInclude::clone(Buffer const & buffer, bool) const
-// {
-// Params p(params_);
-// p.masterFilename_ = buffer.fileName();
-
-// return new InsetInclude(p);
-// }
-
-
void InsetInclude::write(Buffer const *, ostream & os) const
{
os << "Include " << params_.cparams.getCommand() << '\n'
}
-int InsetInclude::ascent(BufferView * bv, LyXFont const & font) const
-{
- return preview_->previewReady() ?
- preview_->pimage()->ascent() : InsetButton::ascent(bv, font);
-}
-
-
-int InsetInclude::descent(BufferView * bv, LyXFont const & font) const
+void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
{
- return preview_->previewReady() ?
- preview_->pimage()->descent() : InsetButton::descent(bv, font);
-}
-
-
-int InsetInclude::width(BufferView * bv, LyXFont const & font) const
-{
- return preview_->previewReady() ?
- preview_->pimage()->width() : InsetButton::width(bv, font);
+ if (preview_->previewReady()) {
+ dim.asc = preview_->pimage()->ascent();
+ dim.des = preview_->pimage()->descent();
+ dim.wid = preview_->pimage()->width();
+ } else {
+ InsetButton::metrics(mi, dim);
+ }
+ dim_ = dim;
}
-void InsetInclude::draw(BufferView * bv, LyXFont const & font, int y,
- float & xx) const
+void InsetInclude::draw(PainterInfo & pi, int x, int y) const
{
- cache(bv);
+ cache(pi.base.bv);
if (!preview_->previewReady()) {
- InsetButton::draw(bv, font, y, xx);
+ InsetButton::draw(pi, x, y);
return;
}
if (!preview_->monitoring())
preview_->startMonitoring();
- int const x = int(xx);
- int const w = width(bv, font);
- int const d = descent(bv, font);
- int const a = ascent(bv, font);
- int const h = a + d;
-
- bv->painter().image(x, y - a, w, h,
+ pi.pain.image(x, y - dim_.asc, dim_.wid, dim_.height(),
*(preview_->pimage()->image()));
-
- xx += w;
}