]> git.lyx.org Git - lyx.git/blob - src/insets/InsetMarginal.cpp
Remove TextClassPtr without losing the type safety it provided.
[lyx.git] / src / insets / InsetMarginal.cpp
1 /**
2  * \file InsetMarginal.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Jürgen Vigna
7  * \author Lars Gullik Bjønnes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #include <config.h>
13
14 #include "InsetMarginal.h"
15
16 #include "Buffer.h"
17 #include "OutputParams.h"
18 #include "TocBackend.h"
19
20 #include "support/gettext.h"
21
22 #include <ostream>
23
24
25 namespace lyx {
26
27
28 InsetMarginal::InsetMarginal(BufferParams const & bp)
29         : InsetFootlike(bp)
30 {}
31
32
33 InsetMarginal::InsetMarginal(InsetMarginal const & in)
34         : InsetFootlike(in)
35 {}
36
37
38 Inset * InsetMarginal::clone() const
39 {
40         return new InsetMarginal(*this);
41 }
42
43
44 docstring InsetMarginal::editMessage() const
45 {
46         return _("Opened Marginal Note Inset");
47 }
48
49
50 int InsetMarginal::latex(odocstream & os, OutputParams const & runparams) const
51 {
52         os << "%\n\\marginpar{";
53         int const i = InsetText::latex(os, runparams);
54         os << "%\n}";
55         return i + 2;
56 }
57
58
59 int InsetMarginal::plaintext(odocstream & os,
60                              OutputParams const & runparams) const
61 {
62         os << '[' << buffer().B_("margin") << ":\n";
63         InsetText::plaintext(os, runparams);
64         os << "\n]";
65
66         return PLAINTEXT_NEWLINE + 1; // one char on a separate line
67 }
68
69
70 int InsetMarginal::docbook(odocstream & os,
71                            OutputParams const & runparams) const
72 {
73         os << "<note role=\"margin\">";
74         int const i = InsetText::docbook(os, runparams);
75         os << "</note>";
76
77         return i;
78 }
79
80
81 void InsetMarginal::addToToc(ParConstIterator const & cpit) const
82 {
83         ParConstIterator pit = cpit;
84         pit.push_back(*this);
85
86         Toc & toc = buffer().tocBackend().toc("marginalnote");
87         docstring str;
88         str = getNewLabel(str);
89         toc.push_back(TocItem(pit, 0, str));
90 }
91
92 } // namespace lyx