+ dim.asc = dy1() + (hasUp() ? up().ascent() : 0);
+ dim.des = dy0() + (hasDown() ? down().descent() : 0);
+ metricsMarkers(dim);
+ dim_ = dim;
+}
+
+
+void MathScriptInset::draw(PainterInfo & pi, int x, int y) const
+{
+ if (nuc().size())
+ nuc().draw(pi, x + dxx(), y);
+ else {
+ nuc().setXY(x + dxx(), y);
+ if (editing(pi.base.bv))
+ drawStr(pi, pi.base.font, x + dxx(), y, ".");
+ }
+ ScriptChanger dummy(pi.base);
+ if (hasUp())
+ up().draw(pi, x + dx1(), y - dy1());
+ if (hasDown())
+ down().draw(pi, x + dx0(), y + dy0());
+ drawMarkers(pi, x, y);
+}
+
+
+void MathScriptInset::metricsT(TextMetricsInfo const & mi, Dimension & dim) const
+{
+ if (hasUp())
+ up().metricsT(mi, dim);
+ if (hasDown())
+ down().metricsT(mi, dim);
+ nuc().metricsT(mi, dim);