move LyXerr QString specialisation to support/qstring_helpers
[lyx.git] / src / ParagraphParameters.h
blob9c5a52df3e483462999179dc857b6bb58a1ad9bd
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"
25 namespace lyx {
27 class BufferView;
28 class Layout;
29 class Length;
30 class Lexer;
31 class Paragraph;
32 class Spacing;
35 ///
36 class ParagraphParameters {
37 public:
38 ///
39 ParagraphParameters();
40 ///
41 void clear();
42 ///
43 bool sameLayout(ParagraphParameters const &) const;
44 ///
45 Spacing const & spacing() const;
46 ///
47 void spacing(Spacing const &);
48 ///
49 bool noindent() const;
50 ///
51 void noindent(bool);
52 ///
53 LyXAlignment align() const;
54 ///
55 void align(LyXAlignment);
56 ///
57 depth_type depth() const;
58 ///
59 void depth(depth_type);
60 ///
61 bool startOfAppendix() const;
62 ///
63 void startOfAppendix(bool);
64 ///
65 bool appendix() const;
66 ///
67 void appendix(bool);
68 ///
69 docstring const & labelString() const;
70 ///
71 void labelString(docstring const &);
72 ///
73 docstring const & labelWidthString() const;
74 ///
75 void labelWidthString(docstring const &);
76 ///
77 Length const & leftIndent() const;
78 ///
79 void leftIndent(Length const &);
81 /// read the parameters from a string
82 void read (std::string str, bool merge = true);
84 /// read the parameters from a lex
85 void read(Lexer & lex, bool merge = true);
87 ///
88 void apply(ParagraphParameters const & params, Layout const & layout);
90 ///
91 bool canApply(ParagraphParameters const & params, Layout const & layout);
93 /// write out the parameters to a stream
94 void write(std::ostream & os) const;
96 //friend bool operator==(ParameterStruct const & ps1,
97 //ParameterStruct const & ps2);
99 private:
101 Spacing spacing_;
103 bool noindent_;
105 bool start_of_appendix_;
107 bool appendix_;
109 LyXAlignment align_;
111 depth_type depth_;
113 docstring labelstring_;
115 docstring labelwidthstring_;
117 Length leftindent_;
122 /** Generate a string \param data from \param par's ParagraphParameters.
123 The function also generates some additional info needed by the
124 Paragraph dialog.
126 void params2string(Paragraph const & par, std::string & data);
129 } // namespace lyx
131 #endif