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
11 * Full author contact details are available in file CREDITS.
14 #ifndef PARAGRAPHPARAMETERS_H
15 #define PARAGRAPHPARAMETERS_H
17 #include "LayoutEnums.h"
20 #include "support/types.h"
21 #include "support/strfwd.h"
22 #include "support/Length.h"
30 namespace support { class Lexer; }
34 class ParagraphParameters {
37 ParagraphParameters();
41 bool sameLayout(ParagraphParameters const &) const;
43 Spacing const & spacing() const;
45 void spacing(Spacing const &);
47 bool noindent() const;
51 LyXAlignment align() const;
53 void align(LyXAlignment);
55 depth_type depth() const;
57 void depth(depth_type);
59 bool startOfAppendix() const;
61 void startOfAppendix(bool);
63 bool appendix() const;
67 docstring const & labelString() const;
69 void labelString(docstring const &);
71 docstring const & labelWidthString() const;
73 void labelWidthString(docstring const &);
75 Length const & leftIndent() const;
77 void leftIndent(Length const &);
79 /// read the parameters from a string
80 void read (std::string const & str, bool merge = true);
82 /// read the parameters from a lex
83 void read(support::Lexer & lex, bool merge = true);
86 void apply(ParagraphParameters const & params, Layout const & layout);
88 // It would be nice to have a working version of this method, so that
89 // getStatus() could return information about what was possible.
90 // bool canApply(ParagraphParameters const & params, Layout const & layout)
93 /// write out the parameters to a stream
94 void write(std::ostream & os) const;
102 bool start_of_appendix_;
110 docstring labelstring_;
112 docstring labelwidthstring_;
119 /** Generate a string \param data from \param par's ParagraphParameters.
120 The function also generates some additional info needed by the
123 void params2string(Paragraph const & par, std::string & data);