File: ParagraphParameters.h

package info (click to toggle)
lyx 2.3.6-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 121,196 kB
  • sloc: cpp: 405,401; ansic: 106,819; python: 27,007; sh: 6,826; makefile: 5,497; pascal: 2,055; perl: 1,523; objc: 1,025; tcl: 163; xml: 153; sed: 16
file content (130 lines) | stat: -rw-r--r-- 2,487 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// -*- C++ -*-
/**
 * \file ParagraphParameters.h
 * This file is part of LyX, the document processor.
 * Licence details can be found in the file COPYING.
 *
 * \author Lars Gullik Bjønnes
 * \author Angus Leeming
 * \author John Levon
 *
 * Full author contact details are available in file CREDITS.
 */

#ifndef PARAGRAPHPARAMETERS_H
#define PARAGRAPHPARAMETERS_H

#include "LayoutEnums.h"
#include "Length.h"
#include "Spacing.h"

#include "support/types.h"
#include "support/docstring.h"


namespace lyx {

class BufferView;
class Layout;
class Length;
class Lexer;
class Paragraph;
class Spacing;


///
class ParagraphParameters {
public:
	///
	ParagraphParameters();
	///
	void clear();
	///
	bool sameLayout(ParagraphParameters const &) const;
	///
	Spacing const & spacing() const;
	///
	void spacing(Spacing const &);
	///
	bool noindent() const;
	///
	void noindent(bool);
	///
	LyXAlignment align() const;
	///
	void align(LyXAlignment);
	///
	depth_type depth() const;
	///
	void depth(depth_type);
	///
	bool startOfAppendix() const;
	///
	void startOfAppendix(bool);
	///
	bool appendix() const;
	///
	void appendix(bool);
	///
	docstring const & labelString() const;
	///
	void labelString(docstring const &);
	///
	docstring const & labelWidthString() const;
	///
	void labelWidthString(docstring const &);
	///
	Length const & leftIndent() const;
	///
	void leftIndent(Length const &);

	/// read the parameters from a string
	void read (std::string str, bool merge = true);

	/// read the parameters from a lex
	void read(Lexer & lex, bool merge = true);

	///
	void apply(ParagraphParameters const & params, Layout const & layout);

	// It would be nice to have a working version of this method, so that
	// getStatus() could return information about what was possible.
	// bool canApply(ParagraphParameters const & params, Layout const & layout)
	// 	{ return true; }

	/// write out the parameters to a stream
	void write(std::ostream & os) const;

private:
	///
	Spacing spacing_;
	///
	bool noindent_;
	///
	bool start_of_appendix_;
	///
	bool appendix_;
	///
	LyXAlignment align_;
	///
	depth_type depth_;
	///
	docstring labelstring_;
	///
	docstring labelwidthstring_;
	///
	Length leftindent_;
};



/** Generate a string \param data from \param par's ParagraphParameters.
    The function also generates some additional info needed by the
    Paragraph dialog.
 */
void params2string(Paragraph const & par, std::string & data);


} // namespace lyx

#endif