+
+//////////////////////////////////////////////////////////////////////
+
+class DisplayLabelBox : public InsetLabelBox {
+public:
+ ///
+ DisplayLabelBox(Buffer * buf, MathAtom const & atom, docstring label,
+ MathMacroTemplate const & parent);
+
+ ///
+ void metrics(MetricsInfo & mi, Dimension & dim) const;
+ ///
+ void draw(PainterInfo &, int x, int y) const;
+
+protected:
+ ///
+ Inset * clone() const;
+};
+
+
+DisplayLabelBox::DisplayLabelBox(Buffer * buf, MathAtom const & atom,
+ docstring label,
+ MathMacroTemplate const & parent)
+ : InsetLabelBox(buf, atom, label, parent, true)
+{
+}
+
+
+
+Inset * DisplayLabelBox::clone() const
+{
+ return new DisplayLabelBox(*this);
+}
+
+
+void DisplayLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
+{
+ InsetLabelBox::metrics(mi, dim);
+ if (!parent_.editing(mi.base.bv)
+ && parent_.cell(parent_.displayIdx()).empty()) {
+ dim.wid = 0;
+ dim.asc = 0;
+ dim.des = 0;
+ }
+}
+
+
+void DisplayLabelBox::draw(PainterInfo & pi, int x, int y) const
+{
+ if (parent_.editing(pi.base.bv)
+ || !parent_.cell(parent_.displayIdx()).empty()) {
+ InsetLabelBox::draw(pi, x, y);
+ } else {
+ bool enabled = pi.pain.isDrawingEnabled();
+ pi.pain.setDrawingEnabled(false);
+ InsetLabelBox::draw(pi, x, y);
+ pi.pain.setDrawingEnabled(enabled);
+ }
+}
+
+