1 // -*- C++ -*-
2 /**
3  * \file Layout.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Lars Gullik Bjønnes
8  * \author Jean-Marc Lasgouttes
9  * \author André Pönitz
10  *
11  * Full author contact details are available in file CREDITS.
12  */
13 
14 #ifndef LAYOUTENUMS_H
15 #define LAYOUTENUMS_H
16 
17 // Do not include anything here
18 
19 namespace lyx {
20 
21 /// The different output types
22 enum OutputType {
23 	///
24 	LATEX = 1,
25 	///
26 	DOCBOOK,
27 	///
28 	LITERATE
29 };
30 
31 
32 /// The different margin types
33 enum MarginType {
34 	///
35 	MARGIN_MANUAL = 1,
36 	///
37 	MARGIN_FIRST_DYNAMIC,
38 	///
39 	MARGIN_DYNAMIC,
40 	///
41 	MARGIN_STATIC,
42 	///
43 	MARGIN_RIGHT_ADDRESS_BOX
44 };
45 
46 
47 ///
48 enum LyXAlignment {
49 	///
50 	LYX_ALIGN_NONE = 0,
51 	///
52 	LYX_ALIGN_BLOCK = 1,
53 	///
54 	LYX_ALIGN_LEFT = 2,
55 	///
56 	LYX_ALIGN_RIGHT = 4,
57 	///
58 	LYX_ALIGN_CENTER = 8,
59 	///
60 	LYX_ALIGN_LAYOUT = 16,
61 	///
62 	LYX_ALIGN_SPECIAL = 32,
63 	///
64 	LYX_ALIGN_DECIMAL = 64
65 };
66 
67 
68 /// Paragraph indendation control
69 enum ToggleIndentation {
70 	/// Indentation can be toggled if document uses "indent" paragraph style
71 	ITOGGLE_DOCUMENT_DEFAULT = 1,
72 	/// Indentation cannot be toggled
73 	ITOGGLE_NEVER,
74 	/// Indentation can always be toggled
75 	ITOGGLE_ALWAYS
76 };
77 
78 ///
79 inline void operator|=(LyXAlignment & la1, LyXAlignment la2)
80 {
81 	la1 = static_cast<LyXAlignment>(la1 | la2);
82 }
83 
84 
85 ///
86 inline LyXAlignment operator|(LyXAlignment la1, LyXAlignment la2)
87 {
88 	return static_cast<LyXAlignment>(int(la1) | int(la2));
89 }
90 
91 
92 /// The different LaTeX-Types
93 enum LatexType {
94 	///
95 	LATEX_PARAGRAPH = 1,
96 	///
97 	LATEX_COMMAND,
98 	///
99 	LATEX_ENVIRONMENT,
100 	///
101 	LATEX_ITEM_ENVIRONMENT,
102 	///
103 	LATEX_BIB_ENVIRONMENT,
104 	///
105 	LATEX_LIST_ENVIRONMENT
106 };
107 
108 
109 /// The different title types
110 enum TitleLatexType {
111 	///
112 	TITLE_COMMAND_AFTER = 1,
113 	///
114 	TITLE_ENVIRONMENT
115 };
116 
117 
118 /// The different label types
119 enum LabelType {
120 	///
121 	LABEL_NO_LABEL,
122 	///
123 	LABEL_MANUAL,
124 	///
125 	LABEL_BIBLIO,
126 	///
127 	LABEL_ABOVE,
128 	///
129 	LABEL_CENTERED,
130 	///
131 	LABEL_STATIC,
132 	///
133 	LABEL_SENSITIVE,
134 	///
135 	LABEL_ENUMERATE,
136 	///
137 	LABEL_ITEMIZE
138 };
139 
140 
141 ///
142 enum EndLabelType {
143 	///
144 	END_LABEL_NO_LABEL,
145 	///
146 	END_LABEL_BOX,
147 	///
148 	END_LABEL_FILLED_BOX,
149 	///
150 	END_LABEL_STATIC
151 };
152 
153 ///
154 enum ArgPassThru {
155 	///
156 	PT_INHERITED,
157 	///
158 	PT_FALSE,
159 	///
160 	PT_TRUE
161 };
162 
163 } // namespace lyx
164 
165 #endif
166