1 /* Lasem
2  *
3  * Copyright © 2007-2008 Emmanuel Pacaud
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General
16  * Public License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18  * Boston, MA 02111-1307, USA.
19  *
20  * Author:
21  * 	Emmanuel Pacaud <emmanuel@gnome.org>
22  */
23 
24 #ifndef LSM_MATHML_ENUMS_H
25 #define LSM_MATHML_ENUMS_H
26 
27 #include <glib-object.h>
28 
29 G_BEGIN_DECLS
30 
31 typedef enum {
32 	LSM_MATHML_CSS_TYPE_USER,
33 	LSM_MATHML_CSS_TYPE_AUTHOR,
34 	LSM_MATHML_CSS_TYPE_AUTHOR_IMPORTANT,
35 	LSM_MATHML_CSS_TYPE_USER_IMPORTANT
36 } LsmMathmlCssType;
37 
38 typedef enum {
39 	LSM_MATHML_MODE_ERROR = -1,
40 	LSM_MATHML_MODE_DISPLAY,
41 	LSM_MATHML_MODE_INLINE
42 } LsmMathmlMode;
43 
44 const char *		lsm_mathml_mode_to_string		(LsmMathmlMode mode);
45 LsmMathmlMode		lsm_mathml_mode_from_string		(const char *string);
46 
47 typedef enum {
48 	LSM_MATHML_DISPLAY_ERROR = -1,
49 	LSM_MATHML_DISPLAY_BLOCK,
50 	LSM_MATHML_DISPLAY_INLINE
51 } LsmMathmlDisplay;
52 
53 const char *		lsm_mathml_display_to_string		(LsmMathmlDisplay display);
54 LsmMathmlDisplay	lsm_mathml_display_from_string		(const char *string);
55 
56 typedef enum {
57 	LSM_MATHML_SPACE_NAME_ERROR = -1,
58 	LSM_MATHML_SPACE_NAME_NEGATIVE_VERY_VERY_THIN,
59 	LSM_MATHML_SPACE_NAME_NEGATIVE_VERY_THIN,
60 	LSM_MATHML_SPACE_NAME_NEGATIVE_THIN,
61 	LSM_MATHML_SPACE_NAME_NEGATIVE_MEDIUM,
62 	LSM_MATHML_SPACE_NAME_NEGATIVE_THICK,
63 	LSM_MATHML_SPACE_NAME_NEGATIVE_VERY_THICK,
64 	LSM_MATHML_SPACE_NAME_NEGATIVE_VERY_VERY_THICK,
65 	LSM_MATHML_SPACE_NAME_VERY_VERY_THIN,
66 	LSM_MATHML_SPACE_NAME_VERY_THIN,
67 	LSM_MATHML_SPACE_NAME_THIN,
68 	LSM_MATHML_SPACE_NAME_MEDIUM,
69 	LSM_MATHML_SPACE_NAME_THICK,
70 	LSM_MATHML_SPACE_NAME_VERY_THICK,
71 	LSM_MATHML_SPACE_NAME_VERY_VERY_THICK,
72 	LSM_MATHML_SPACE_NAME_INFINITY
73 } LsmMathmlSpaceName;
74 
75 const char * 		lsm_mathml_space_name_to_string 		(LsmMathmlSpaceName name);
76 LsmMathmlSpaceName 	lsm_mathml_space_name_from_string 		(const char *string);
77 
78 typedef enum {
79 	LSM_MATHML_UNIT_ERROR = -1,
80 	LSM_MATHML_UNIT_NONE,
81 	LSM_MATHML_UNIT_EM,
82 	LSM_MATHML_UNIT_EX,
83 	LSM_MATHML_UNIT_IN,
84 	LSM_MATHML_UNIT_CM,
85 	LSM_MATHML_UNIT_MM,
86 	LSM_MATHML_UNIT_PT,
87 	LSM_MATHML_UNIT_PX,
88 	LSM_MATHML_UNIT_PC,
89 	LSM_MATHML_UNIT_PERCENT
90 } LsmMathmlUnit;
91 
92 const char * 		lsm_mathml_unit_to_string 		(LsmMathmlUnit unit);
93 LsmMathmlUnit 		lsm_mathml_unit_from_string 		(const char *string);
94 
95 typedef enum {
96 	LSM_MATHML_FONT_STYLE_ERROR = -1,
97 	LSM_MATHML_FONT_STYLE_NORMAL,
98 	LSM_MATHML_FONT_STYLE_ITALIC
99 } LsmMathmlFontStyle;
100 
101 const char * 		lsm_mathml_font_style_to_string 	(LsmMathmlFontStyle font_style);
102 LsmMathmlFontStyle 	lsm_mathml_font_style_from_string 	(const char *string);
103 
104 typedef enum {
105 	LSM_MATHML_FONT_WEIGHT_ERROR = -1,
106 	LSM_MATHML_FONT_WEIGHT_NORMAL,
107 	LSM_MATHML_FONT_WEIGHT_BOLD
108 } LsmMathmlFontWeight;
109 
110 const char * 		lsm_mathml_font_weight_to_string 	(LsmMathmlFontWeight font_weight);
111 LsmMathmlFontWeight 	lsm_mathml_font_weight_from_string 	(const char *string);
112 
113 /* Keep in sync with lsm_mathml_pango_options in lsm_mathml_view */
114 typedef enum {
115 	LSM_MATHML_VARIANT_ERROR = -1,
116 	LSM_MATHML_VARIANT_NORMAL,
117 	LSM_MATHML_VARIANT_BOLD,
118 	LSM_MATHML_VARIANT_ITALIC,
119 	LSM_MATHML_VARIANT_BOLD_ITALIC,
120 	LSM_MATHML_VARIANT_DOUBLE_STRUCK,
121 	LSM_MATHML_VARIANT_FRAKTUR_BOLD,
122 	LSM_MATHML_VARIANT_SCRIPT,
123 	LSM_MATHML_VARIANT_SCRIPT_BOLD,
124 	LSM_MATHML_VARIANT_FRAKTUR,
125 	LSM_MATHML_VARIANT_SANS_SERIF,
126 	LSM_MATHML_VARIANT_SANS_SERIF_BOLD,
127 	LSM_MATHML_VARIANT_SANS_SERIF_ITALIC,
128 	LSM_MATHML_VARIANT_SANS_SERIF_BOLD_ITALIC,
129 	LSM_MATHML_VARIANT_MONOSPACE
130 } LsmMathmlVariant;
131 
132 const char * 		lsm_mathml_variant_to_string 		(LsmMathmlVariant variant);
133 LsmMathmlVariant 	lsm_mathml_variant_from_string 		(const char *string);
134 void	 		lsm_mathml_variant_set_font_style	(LsmMathmlVariant *variant, LsmMathmlFontStyle style);
135 void 			lsm_mathml_variant_set_font_weight	(LsmMathmlVariant *variant, LsmMathmlFontWeight weight);
136 
137 typedef enum {
138 	LSM_MATHML_FORM_ERROR = -1,
139 	LSM_MATHML_FORM_PREFIX,
140 	LSM_MATHML_FORM_POSTFIX,
141 	LSM_MATHML_FORM_INFIX
142 } LsmMathmlForm;
143 
144 const char *		lsm_mathml_form_to_string 			(LsmMathmlForm form);
145 LsmMathmlForm 		lsm_mathml_form_from_string 		(const char *string);
146 
147 typedef enum {
148 	LSM_MATHML_ROW_ALIGN_ERROR = -1,
149 	LSM_MATHML_ROW_ALIGN_BASELINE,
150 	LSM_MATHML_ROW_ALIGN_TOP,
151 	LSM_MATHML_ROW_ALIGN_BOTTOM,
152 	LSM_MATHML_ROW_ALIGN_CENTER,
153 	LSM_MATHML_ROW_ALIGN_AXIS
154 } LsmMathmlRowAlign;
155 
156 const char *		lsm_mathml_row_align_to_string		(LsmMathmlRowAlign row_align);
157 LsmMathmlRowAlign		lsm_mathml_row_align_from_string		(const char *string);
158 
159 typedef enum {
160 	LSM_MATHML_COLUMN_ALIGN_ERROR = -1,
161 	LSM_MATHML_COLUMN_ALIGN_CENTER,
162 	LSM_MATHML_COLUMN_ALIGN_LEFT,
163 	LSM_MATHML_COLUMN_ALIGN_RIGHT
164 } LsmMathmlColumnAlign;
165 
166 const char *		lsm_mathml_column_align_to_string		(LsmMathmlColumnAlign column_align);
167 LsmMathmlColumnAlign	lsm_mathml_column_align_from_string	(const char *string);
168 
169 typedef enum {
170 	LSM_MATHML_LINE_ERROR = -1,
171 	LSM_MATHML_LINE_NONE,
172 	LSM_MATHML_LINE_SOLID,
173 	LSM_MATHML_LINE_DASHED
174 } LsmMathmlLine;
175 
176 const char *		lsm_mathml_line_to_string		(LsmMathmlLine line);
177 LsmMathmlLine		lsm_mathml_line_from_string		(const char *string);
178 
179 typedef enum {
180 	LSM_MATHML_SCRIPT_LEVEL_SIGN_ERROR = -1,
181 	LSM_MATHML_SCRIPT_LEVEL_SIGN_NONE,
182 	LSM_MATHML_SCRIPT_LEVEL_SIGN_PLUS,
183 	LSM_MATHML_SCRIPT_LEVEL_SIGN_MINUS
184 } LsmMathmlScriptLevelSign;
185 
186 typedef enum {
187 	LSM_MATHML_NOTATION_ERROR = -1,
188 	LSM_MATHML_NOTATION_LONGDIV,
189 	LSM_MATHML_NOTATION_ACTUARIAL,
190 	LSM_MATHML_NOTATION_RADICAL,
191 	LSM_MATHML_NOTATION_BOX,
192 	LSM_MATHML_NOTATION_ROUNDED_BOX,
193 	LSM_MATHML_NOTATION_CIRCLE,
194 	LSM_MATHML_NOTATION_LEFT,
195 	LSM_MATHML_NOTATION_RIGHT,
196 	LSM_MATHML_NOTATION_TOP,
197 	LSM_MATHML_NOTATION_BOTTOM,
198 	LSM_MATHML_NOTATION_UP_DIAGONAL_STRIKE,
199 	LSM_MATHML_NOTATION_DOWN_DIAGONAL_STRIKE,
200 	LSM_MATHML_NOTATION_VERTICAL_STRIKE,
201 	LSM_MATHML_NOTATION_HORIZONTAL_STRIKE,
202 	LSM_MATHML_NOTATION_MADRUWB,
203 	LSM_MATHML_NOTATION_UP_DIAGONAL_ARROW,
204 	LSM_MATHML_NOTATION_LAST
205 } LsmMathmlNotation;
206 
207 const char *		lsm_mathml_notation_to_string		(LsmMathmlNotation notation);
208 LsmMathmlNotation	lsm_mathml_notation_from_string		(const char *string);
209 
210 typedef enum {
211 	LSM_MATHML_LINEBREAK_ERROR = -1,
212 	LSM_MATHML_LINEBREAK_AUTO,
213 	LSM_MATHML_LINEBREAK_NEWLINE,
214 	LSM_MATHML_LINEBREAK_NOBREAK,
215 	LSM_MATHML_LINEBREAK_GOODBREAK,
216 	LSM_MATHML_LINEBREAK_BADBREAK
217 } LsmMathmlLinebreak;
218 
219 const char * 		lsm_mathml_linebreak_to_string 		(LsmMathmlLinebreak linebreak);
220 LsmMathmlLinebreak 		lsm_mathml_linebreak_from_string 		(const char *string);
221 
222 G_END_DECLS
223 
224 #endif
225