]> git.lyx.org Git - lyx.git/blob - src/insets/insetnote.C
dont use pragma impementation and interface anymore
[lyx.git] / src / insets / insetnote.C
1 /**
2  * \file insetnote.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Angus Leeming
7  *
8  * Full author contact details are available in file CREDITS
9  */
10
11 #include <config.h>
12
13
14 #include "insetnote.h"
15 #include "gettext.h"
16 #include "lyxfont.h"
17 #include "language.h"
18 #include "buffer.h"
19 #include "BufferView.h"
20 #include "lyxtext.h"
21 #include "insets/insettext.h"
22 #include "support/LOstream.h"
23 #include "support/lstrings.h"
24 #include "debug.h"
25
26 using std::ostream;
27
28
29 void InsetNote::init()
30 {
31         LyXFont font(LyXFont::ALL_SANE);
32         font.decSize();
33         font.decSize();
34         font.setColor(LColor::note);
35         setLabelFont(font);
36         setBackgroundColor(LColor::notebg);
37         setLabel(_("note"));
38         setInsetName("Note");
39 }
40
41
42 InsetNote::InsetNote(BufferParams const & bp)
43         : InsetCollapsable(bp)
44 {
45         init();
46 }
47
48
49 InsetNote::InsetNote(InsetNote const & in, bool same_id)
50         : InsetCollapsable(in, same_id)
51 {
52         init();
53 }
54
55
56 Inset * InsetNote::clone(Buffer const &, bool same_id) const
57 {
58         return new InsetNote(*const_cast<InsetNote *>(this), same_id);
59 }
60
61
62 // This constructor is used for reading old InsetInfo
63 InsetNote::InsetNote(Buffer const * buf, string const & contents,
64                      bool collapsed)
65         : InsetCollapsable(buf->params, collapsed)
66 {
67         init();
68
69         Paragraph * par = inset.paragraph();
70         LyXFont font(LyXFont::ALL_INHERIT, buf->params.language);
71
72         // Since XForms doesn't support RTL, we can assume that old notes
73         // in RTL documents are written in English.
74         if (font.language()->RightToLeft())
75                 font.setLanguage(default_language);
76
77         lyx::pos_type pos = 0;
78         buf->insertStringAsLines(par, pos, font, rtrim(contents, "\n"));
79 }
80
81
82 string const InsetNote::editMessage() const
83 {
84         return _("Opened Note Inset");
85 }
86
87
88 void InsetNote::write(Buffer const *buf, ostream & os) const
89 {
90         os << getInsetName() << "\n";
91         InsetCollapsable::write(buf, os);
92 }