scramble email addresses
[lyx.git] / src / ParagraphParameters.h
blob977049d202518be3c4731309abd50d8f713d2318
1 // -*- C++ -*-
2 /**
3 * \file ParagraphParameters.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
8 * \author Angus Leeming
9 * \author John Levon
11 * Full author contact details are available in file CREDITS.
14 #ifndef PARAGRAPHPARAMETERS_H
15 #define PARAGRAPHPARAMETERS_H
17 #include "LayoutEnums.h"
18 #include "Length.h"
19 #include "Spacing.h"
21 #include "support/types.h"
22 #include "support/docstring.h"
24 #include <iosfwd>
25 #include <string>
28 namespace lyx {
30 class BufferView;
31 class Layout;
32 class Length;
33 class Lexer;
34 class Paragraph;
35 class Spacing;
38 ///
39 class ParagraphParameters {
40 public:
41 ///
42 ParagraphParameters();
43 ///
44 void clear();
45 ///
46 bool sameLayout(ParagraphParameters const &) const;
47 ///
48 Spacing const & spacing() const;
49 ///
50 void spacing(Spacing const &);
51 ///
52 bool noindent() const;
53 ///
54 void noindent(bool);
55 ///
56 LyXAlignment align() const;
57 ///
58 void align(LyXAlignment);
59 ///
60 depth_type depth() const;
61 ///
62 void depth(depth_type);
63 ///
64 bool startOfAppendix() const;
65 ///
66 void startOfAppendix(bool);
67 ///
68 bool appendix() const;
69 ///
70 void appendix(bool);
71 ///
72 docstring const & labelString() const;
73 ///
74 void labelString(docstring const &);
75 ///
76 docstring const & labelWidthString() const;
77 ///
78 void labelWidthString(docstring const &);
79 ///
80 Length const & leftIndent() const;
81 ///
82 void leftIndent(Length const &);
84 /// read the parameters from a string
85 void read (std::string str, bool merge = true);
87 /// read the parameters from a lex
88 void read(Lexer & lex, bool merge = true);
90 ///
91 void apply(ParagraphParameters const & params, Layout const & layout);
93 ///
94 bool canApply(ParagraphParameters const & params, Layout const & layout);
96 /// write out the parameters to a stream
97 void write(std::ostream & os) const;
99 //friend bool operator==(ParameterStruct const & ps1,
100 //ParameterStruct const & ps2);
102 private:
104 Spacing spacing_;
106 bool noindent_;
108 bool start_of_appendix_;
110 bool appendix_;
112 LyXAlignment align_;
114 depth_type depth_;
116 docstring labelstring_;
118 docstring labelwidthstring_;
120 Length leftindent_;
125 /** Generate a string \param data from \param par's ParagraphParameters.
126 The function also generates some additional info needed by the
127 Paragraph dialog.
129 void params2string(Paragraph const & par, std::string & data);
132 } // namespace lyx
134 #endif