Bump version to 21.06.18.1
[LibreOffice.git] / starmath / source / mathmlattr.hxx
blob104495d2c87804409ab48986e5868aa995f90eca
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #ifndef INCLUDED_STARMATH_SOURCE_MATHMLATTR_HXX
11 #define INCLUDED_STARMATH_SOURCE_MATHMLATTR_HXX
13 #include <rtl/ustring.hxx>
14 #include <sal/types.h>
15 #include <tools/fract.hxx>
17 // MathML 3: 2.1.5.1 Syntax notation used in the MathML specification
18 // <https://www.w3.org/TR/MathML/chapter2.html#id.2.1.5.1>
19 // MathML 2: 2.4.4.2 Attributes with units
20 // <https://www.w3.org/TR/MathML2/chapter2.html#fund.attval>
21 // MathML 3: 2.1.5.2 Length Valued Attributes
22 // <https://www.w3.org/TR/MathML/chapter2.html#fund.units>
24 enum class MathMLLengthUnit
26 None,
27 Em,
28 Ex,
29 Px,
30 In,
31 Cm,
32 Mm,
33 Pt,
34 Pc,
35 Percent
38 struct MathMLAttributeLengthValue
40 Fraction aNumber;
41 MathMLLengthUnit eUnit;
42 MathMLAttributeLengthValue()
43 : eUnit(MathMLLengthUnit::None)
48 sal_Int32 ParseMathMLAttributeLengthValue(const OUString& rStr, MathMLAttributeLengthValue& rV);
50 // MathML 3: 3.2.2 Mathematics style attributes common to token elements
51 // <https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt>
53 enum class MathMLMathvariantValue
55 Normal,
56 Bold,
57 Italic,
58 BoldItalic,
59 DoubleStruck,
60 BoldFraktur,
61 Script,
62 BoldScript,
63 Fraktur,
64 SansSerif,
65 BoldSansSerif,
66 SansSerifItalic,
67 SansSerifBoldItalic,
68 Monospace,
69 Initial,
70 Tailed,
71 Looped,
72 Stretched
75 bool GetMathMLMathvariantValue(const OUString& rStr, MathMLMathvariantValue& rV);
77 #endif
79 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */