]> git.lyx.org Git - lyx.git/blob - src/layout.h
go through horrendous contortions to work around font breakage in every
[lyx.git] / src / layout.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ======================================================
4  *
5  *           LyX, The Document Processor
6  *
7  *           Copyright 1995 Matthias Ettrich
8  *           Copyright 1995-2001 The LyX Team.
9  *
10  * ====================================================== */
11
12 #ifndef LAYOUT_H
13 #define LAYOUT_H
14
15 /// The different output types
16 enum OutputType {
17         ///
18         LATEX = 1,
19         ///
20         LINUXDOC,
21         ///
22         DOCBOOK,
23         ///
24         LITERATE
25 };
26
27
28 /// The different margin types
29 enum LYX_MARGIN_TYPE {
30         ///
31         MARGIN_MANUAL = 1,
32         ///
33         MARGIN_FIRST_DYNAMIC,
34         ///
35         MARGIN_DYNAMIC,
36         ///
37         MARGIN_STATIC,
38         ///
39         MARGIN_RIGHT_ADDRESS_BOX
40 };
41
42
43 ///
44 enum LyXAlignment {
45         ///
46         LYX_ALIGN_NONE = 0,
47         ///
48         LYX_ALIGN_BLOCK = 1,
49         ///
50         LYX_ALIGN_LEFT = 2,
51         ///
52         LYX_ALIGN_RIGHT = 4,
53         ///
54         LYX_ALIGN_CENTER = 8,
55         ///
56         LYX_ALIGN_LAYOUT = 16,
57         ///
58         LYX_ALIGN_SPECIAL = 32
59 };
60
61 ///
62 inline
63 void operator|=(LyXAlignment & la1, LyXAlignment la2) {
64         la1 = static_cast<LyXAlignment>(la1 | la2);
65 }
66
67
68 /// The different LaTeX-Types
69 enum LYX_LATEX_TYPES {
70         ///
71         LATEX_PARAGRAPH = 1,
72         ///
73         LATEX_COMMAND,
74         ///
75         LATEX_ENVIRONMENT,
76         ///
77         LATEX_ITEM_ENVIRONMENT,
78         ///
79         LATEX_BIB_ENVIRONMENT,
80         ///
81         LATEX_LIST_ENVIRONMENT
82 };
83
84
85 /// The different title types
86 enum LYX_TITLE_LATEX_TYPES {
87         ///
88         TITLE_COMMAND_AFTER = 1,
89         ///
90         TITLE_ENVIRONMENT
91 };
92
93
94 /// The different label types
95 enum LYX_LABEL_TYPES {
96         ///
97         LABEL_NO_LABEL,
98         ///
99         LABEL_MANUAL,
100         ///
101         LABEL_BIBLIO,
102         ///
103         LABEL_TOP_ENVIRONMENT,
104         ///
105         LABEL_CENTERED_TOP_ENVIRONMENT,
106
107         // the flushright labels following now must start with LABEL_STATIC
108         ///
109         LABEL_STATIC,
110         ///
111         LABEL_SENSITIVE,
112         ///
113         LABEL_COUNTER_CHAPTER,
114         ///
115         LABEL_COUNTER_SECTION,
116         ///
117         LABEL_COUNTER_SUBSECTION,
118         ///
119         LABEL_COUNTER_SUBSUBSECTION,
120         ///
121         LABEL_COUNTER_PARAGRAPH,
122         ///
123         LABEL_COUNTER_SUBPARAGRAPH,
124         ///
125         LABEL_COUNTER_ENUMI,
126         ///
127         LABEL_COUNTER_ENUMII,
128         ///
129         LABEL_COUNTER_ENUMIII,
130         ///
131         LABEL_COUNTER_ENUMIV
132 };
133
134
135 ///
136 enum LYX_END_LABEL_TYPES {
137         ///
138         END_LABEL_NO_LABEL,
139         ///
140         END_LABEL_BOX,
141         ///
142         END_LABEL_FILLED_BOX,
143         ///
144         END_LABEL_STATIC,
145         ///
146         END_LABEL_ENUM_FIRST = END_LABEL_NO_LABEL,
147         ///
148         END_LABEL_ENUM_LAST = END_LABEL_STATIC
149 };
150
151 /* Fix labels are printed flushright, manual labels flushleft.
152  * MARGIN_MANUAL and MARGIN_FIRST_DYNAMIC are *only* for LABEL_MANUAL,
153  * MARGIN_DYNAMIC and MARGIN_STATIC are *not* for LABEL_MANUAL.
154  * This seems a funny restriction, but I think other combinations are
155  * not needed, so I will not change it yet.
156  * Correction: MARGIN_FIRST_DYNAMIC also usable with LABEL_STATIC
157  */
158
159
160 /* There is a parindent and a parskip. Which one is used depends on the
161  * paragraph_separation-flag of the text-object.
162  * BUT: parindent is only thrown away, if a parskip is defined! So if you
163  * want a space between the paragraphs and a parindent at the same time,
164  * you should set parskip to zero and use topsep, parsep and bottomsep.
165  *
166  * The standard layout is an exception: its parindent is only set, if the
167  * previous paragraph is standard too. Well, this is LateX and it is good!
168  */
169
170
171 #endif