3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Lars Gullik Bjønnes
8 * Full author contact details are available in file CREDITS.
14 #include "insettheorem.h"
15 #include "metricsinfo.h"
18 #include "BufferView.h"
20 #include "support/LOstream.h"
22 #include "insets/insettext.h"
28 The intention is to be able to create arbitrary theorem like environments
29 sing this class and some helper/container classes. It should be possible
30 to create these theorems both from layout file and interactively by the
34 InsetTheorem::InsetTheorem()
37 setLabel(_("theorem"));
38 LyXFont font(LyXFont::ALL_SANE);
41 font.setColor(LColor::collapsable);
44 setAutoCollapse(false);
46 setInsetName("Theorem");
50 void InsetTheorem::write(Buffer const * buf, ostream & os) const
52 os << getInsetName() << "\n";
53 InsetCollapsable::write(buf, os);
57 InsetBase * InsetTheorem::clone() const
60 #warning Is this inset used? If YES this is WRONG!!! (Jug)
62 InsetTheorem * result = new InsetTheorem;
64 result->collapsed_ = collapsed_;
68 void InsetTheorem::metrics(MetricsInfo & mi, Dimension & dim) const
70 InsetCollapsable::metrics(mi, dim);
71 center_indent_ = (mi.base.textwidth - dim.wid) / 2;
72 dim.wid = mi.base.textwidth;
77 void InsetTOC::draw(PainterInfo & pi, int x, int y) const
79 InsetCollapsable::draw(pi, x + center_indent_, y);
83 string const InsetTheorem::editMessage() const
85 return _("Opened Theorem Inset");
89 int InsetTheorem::latex(Buffer const * buf, ostream & os,
90 LatexRunParams const & runparams) const
92 os << "\\begin{theorem}%\n";
94 int i = inset.latex(buf, os, runparams);
95 os << "\\end{theorem}%\n";