]> git.lyx.org Git - lyx.git/blob - src/insets/insetenv.C
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insetenv.C
1 /**
2  * \file insetenv.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author André Pönitz
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "insetenv.h"
14
15 #include "bufferparams.h"
16 #include "gettext.h"
17 #include "paragraph.h"
18 #include "output_latex.h"
19 #include "texrow.h"
20
21
22 namespace lyx {
23
24 using std::string;
25 using std::auto_ptr;
26 using std::ostream;
27
28
29 InsetEnvironment::InsetEnvironment
30                 (BufferParams const & bp, string const & name)
31         : InsetText(bp), layout_(bp.getLyXTextClass()[name])
32 {
33         setInsetName(from_utf8(name));
34         setAutoBreakRows(true);
35         setDrawFrame(true);
36 }
37
38
39 InsetEnvironment::InsetEnvironment(InsetEnvironment const & in)
40         : InsetText(in), layout_(in.layout_)
41 {}
42
43
44 auto_ptr<InsetBase> InsetEnvironment::doClone() const
45 {
46         return auto_ptr<InsetBase>(new InsetEnvironment(*this));
47 }
48
49
50 void InsetEnvironment::write(Buffer const & buf, ostream & os) const
51 {
52         os << "Environment " << to_utf8(getInsetName()) << "\n";
53         InsetText::write(buf, os);
54 }
55
56
57 void InsetEnvironment::read(Buffer const & buf, LyXLex & lex)
58 {
59         InsetText::read(buf, lex);
60 }
61
62
63 docstring const InsetEnvironment::editMessage() const
64 {
65         return _("Opened Environment Inset: ") + getInsetName();
66 }
67
68
69 int InsetEnvironment::latex(Buffer const & buf, odocstream & os,
70                             OutputParams const & runparams) const
71 {
72         // FIXME UNICODE
73         os << from_utf8(layout_->latexheader);
74         TexRow texrow;
75         latexParagraphs(buf, paragraphs(), os, texrow, runparams,
76                         layout_->latexparagraph);
77         // FIXME UNICODE
78         os << from_utf8(layout_->latexfooter);
79         return texrow.rows();
80 }
81
82
83 LyXLayout_ptr const & InsetEnvironment::layout() const
84 {
85         return layout_;
86 }
87
88
89 } // namespace lyx