]> git.lyx.org Git - lyx.git/blob - src/insets/insetenv.C
The speed patch: redraw only rows that have changed
[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 #include "support/std_ostream.h"
22
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(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 " << 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 string const InsetEnvironment::editMessage() const
64 {
65         return _("Opened Environment Inset: ") + getInsetName();
66 }
67
68
69 int InsetEnvironment::latex(Buffer const & buf, ostream & os,
70                             OutputParams const & runparams) const
71 {
72         os << layout_->latexheader;
73         TexRow texrow;
74         latexParagraphs(buf, paragraphs(), os, texrow, runparams,
75                         layout_->latexparagraph);
76         os << layout_->latexfooter;
77         return texrow.rows();
78 }
79
80
81 LyXLayout_ptr const & InsetEnvironment::layout() const
82 {
83         return layout_;
84 }