mathematical 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/mathematical/extconf.rb +14 -0
- data/ext/mathematical/itex2MML.h +63 -0
- data/ext/mathematical/lasemrender.c +257 -0
- data/ext/mathematical/lex.yy.c +6548 -0
- data/ext/mathematical/lsm.c +31 -0
- data/ext/mathematical/lsm.h +39 -0
- data/ext/mathematical/lsmattributes.c +279 -0
- data/ext/mathematical/lsmattributes.h +75 -0
- data/ext/mathematical/lsmcairo.c +598 -0
- data/ext/mathematical/lsmcairo.h +51 -0
- data/ext/mathematical/lsmdebug.c +183 -0
- data/ext/mathematical/lsmdebug.h +73 -0
- data/ext/mathematical/lsmdom.h +43 -0
- data/ext/mathematical/lsmdomcharacterdata.c +114 -0
- data/ext/mathematical/lsmdomcharacterdata.h +59 -0
- data/ext/mathematical/lsmdomdocument.c +255 -0
- data/ext/mathematical/lsmdomdocument.h +75 -0
- data/ext/mathematical/lsmdomdocumentfragment.c +81 -0
- data/ext/mathematical/lsmdomdocumentfragment.h +55 -0
- data/ext/mathematical/lsmdomelement.c +148 -0
- data/ext/mathematical/lsmdomelement.h +62 -0
- data/ext/mathematical/lsmdomentities.c +2166 -0
- data/ext/mathematical/lsmdomentities.h +35 -0
- data/ext/mathematical/lsmdomenumtypes.c +99 -0
- data/ext/mathematical/lsmdomenumtypes.h +26 -0
- data/ext/mathematical/lsmdomimplementation.c +82 -0
- data/ext/mathematical/lsmdomimplementation.h +41 -0
- data/ext/mathematical/lsmdomnamednodemap.c +118 -0
- data/ext/mathematical/lsmdomnamednodemap.h +64 -0
- data/ext/mathematical/lsmdomnode.c +737 -0
- data/ext/mathematical/lsmdomnode.h +122 -0
- data/ext/mathematical/lsmdomnodelist.c +70 -0
- data/ext/mathematical/lsmdomnodelist.h +58 -0
- data/ext/mathematical/lsmdomparser.c +461 -0
- data/ext/mathematical/lsmdomparser.h +54 -0
- data/ext/mathematical/lsmdomtext.c +82 -0
- data/ext/mathematical/lsmdomtext.h +55 -0
- data/ext/mathematical/lsmdomtypes.h +44 -0
- data/ext/mathematical/lsmdomview.c +422 -0
- data/ext/mathematical/lsmdomview.h +94 -0
- data/ext/mathematical/lsmitex.c +76 -0
- data/ext/mathematical/lsmitex.h +36 -0
- data/ext/mathematical/lsmmathml.h +66 -0
- data/ext/mathematical/lsmmathmlactionelement.c +93 -0
- data/ext/mathematical/lsmmathmlactionelement.h +57 -0
- data/ext/mathematical/lsmmathmlaligngroupelement.c +102 -0
- data/ext/mathematical/lsmmathmlaligngroupelement.h +56 -0
- data/ext/mathematical/lsmmathmlalignmarkelement.c +102 -0
- data/ext/mathematical/lsmmathmlalignmarkelement.h +56 -0
- data/ext/mathematical/lsmmathmlattributes.c +197 -0
- data/ext/mathematical/lsmmathmlattributes.h +126 -0
- data/ext/mathematical/lsmmathmldocument.c +304 -0
- data/ext/mathematical/lsmmathmldocument.h +61 -0
- data/ext/mathematical/lsmmathmlelement.c +491 -0
- data/ext/mathematical/lsmmathmlelement.h +107 -0
- data/ext/mathematical/lsmmathmlenums.c +429 -0
- data/ext/mathematical/lsmmathmlenums.h +182 -0
- data/ext/mathematical/lsmmathmlenumtypes.c +666 -0
- data/ext/mathematical/lsmmathmlenumtypes.h +90 -0
- data/ext/mathematical/lsmmathmlerrorelement.c +58 -0
- data/ext/mathematical/lsmmathmlerrorelement.h +56 -0
- data/ext/mathematical/lsmmathmlfencedelement.c +178 -0
- data/ext/mathematical/lsmmathmlfencedelement.h +65 -0
- data/ext/mathematical/lsmmathmlfractionelement.c +253 -0
- data/ext/mathematical/lsmmathmlfractionelement.h +62 -0
- data/ext/mathematical/lsmmathmlglyphtableams.c +597 -0
- data/ext/mathematical/lsmmathmlglyphtableams.h +45 -0
- data/ext/mathematical/lsmmathmlitexelement.c +187 -0
- data/ext/mathematical/lsmmathmlitexelement.h +60 -0
- data/ext/mathematical/lsmmathmllayoututils.c +191 -0
- data/ext/mathematical/lsmmathmllayoututils.h +58 -0
- data/ext/mathematical/lsmmathmlmathelement.c +204 -0
- data/ext/mathematical/lsmmathmlmathelement.h +81 -0
- data/ext/mathematical/lsmmathmloperatordictionary.c +3332 -0
- data/ext/mathematical/lsmmathmloperatordictionary.h +54 -0
- data/ext/mathematical/lsmmathmloperatorelement.c +307 -0
- data/ext/mathematical/lsmmathmloperatorelement.h +73 -0
- data/ext/mathematical/lsmmathmlpaddedelement.c +58 -0
- data/ext/mathematical/lsmmathmlpaddedelement.h +56 -0
- data/ext/mathematical/lsmmathmlphantomelement.c +71 -0
- data/ext/mathematical/lsmmathmlphantomelement.h +56 -0
- data/ext/mathematical/lsmmathmlpresentationcontainer.c +43 -0
- data/ext/mathematical/lsmmathmlpresentationcontainer.h +54 -0
- data/ext/mathematical/lsmmathmlpresentationtoken.c +303 -0
- data/ext/mathematical/lsmmathmlpresentationtoken.h +83 -0
- data/ext/mathematical/lsmmathmlradicalelement.c +266 -0
- data/ext/mathematical/lsmmathmlradicalelement.h +71 -0
- data/ext/mathematical/lsmmathmlrowelement.c +58 -0
- data/ext/mathematical/lsmmathmlrowelement.h +56 -0
- data/ext/mathematical/lsmmathmlscriptelement.c +282 -0
- data/ext/mathematical/lsmmathmlscriptelement.h +78 -0
- data/ext/mathematical/lsmmathmlsemanticselement.c +84 -0
- data/ext/mathematical/lsmmathmlsemanticselement.h +56 -0
- data/ext/mathematical/lsmmathmlspaceelement.c +142 -0
- data/ext/mathematical/lsmmathmlspaceelement.h +60 -0
- data/ext/mathematical/lsmmathmlstringelement.c +123 -0
- data/ext/mathematical/lsmmathmlstringelement.h +58 -0
- data/ext/mathematical/lsmmathmlstyle.c +130 -0
- data/ext/mathematical/lsmmathmlstyle.h +81 -0
- data/ext/mathematical/lsmmathmlstyleelement.c +307 -0
- data/ext/mathematical/lsmmathmlstyleelement.h +87 -0
- data/ext/mathematical/lsmmathmltablecellelement.c +122 -0
- data/ext/mathematical/lsmmathmltablecellelement.h +62 -0
- data/ext/mathematical/lsmmathmltableelement.c +545 -0
- data/ext/mathematical/lsmmathmltableelement.h +78 -0
- data/ext/mathematical/lsmmathmltablerowelement.c +120 -0
- data/ext/mathematical/lsmmathmltablerowelement.h +64 -0
- data/ext/mathematical/lsmmathmltraits.c +819 -0
- data/ext/mathematical/lsmmathmltraits.h +119 -0
- data/ext/mathematical/lsmmathmltypes.h +66 -0
- data/ext/mathematical/lsmmathmlunderoverelement.c +485 -0
- data/ext/mathematical/lsmmathmlunderoverelement.h +82 -0
- data/ext/mathematical/lsmmathmlutils.c +170 -0
- data/ext/mathematical/lsmmathmlutils.h +50 -0
- data/ext/mathematical/lsmmathmlview.c +1048 -0
- data/ext/mathematical/lsmmathmlview.h +164 -0
- data/ext/mathematical/lsmproperties.c +418 -0
- data/ext/mathematical/lsmproperties.h +85 -0
- data/ext/mathematical/lsmstr.c +231 -0
- data/ext/mathematical/lsmstr.h +114 -0
- data/ext/mathematical/lsmsvg.h +67 -0
- data/ext/mathematical/lsmsvgaelement.c +73 -0
- data/ext/mathematical/lsmsvgaelement.h +55 -0
- data/ext/mathematical/lsmsvgattributes.h +118 -0
- data/ext/mathematical/lsmsvgcircleelement.c +153 -0
- data/ext/mathematical/lsmsvgcircleelement.h +59 -0
- data/ext/mathematical/lsmsvgclippathelement.c +134 -0
- data/ext/mathematical/lsmsvgclippathelement.h +59 -0
- data/ext/mathematical/lsmsvgcolors.c +212 -0
- data/ext/mathematical/lsmsvgcolors.h +39 -0
- data/ext/mathematical/lsmsvgdefselement.c +74 -0
- data/ext/mathematical/lsmsvgdefselement.h +55 -0
- data/ext/mathematical/lsmsvgdocument.c +288 -0
- data/ext/mathematical/lsmsvgdocument.h +64 -0
- data/ext/mathematical/lsmsvgelement.c +373 -0
- data/ext/mathematical/lsmsvgelement.h +81 -0
- data/ext/mathematical/lsmsvgellipseelement.c +158 -0
- data/ext/mathematical/lsmsvgellipseelement.h +60 -0
- data/ext/mathematical/lsmsvgenums.c +544 -0
- data/ext/mathematical/lsmsvgenums.h +357 -0
- data/ext/mathematical/lsmsvgenumtypes.c +1083 -0
- data/ext/mathematical/lsmsvgenumtypes.h +111 -0
- data/ext/mathematical/lsmsvgfilterblend.c +105 -0
- data/ext/mathematical/lsmsvgfilterblend.h +58 -0
- data/ext/mathematical/lsmsvgfiltercomposite.c +109 -0
- data/ext/mathematical/lsmsvgfiltercomposite.h +58 -0
- data/ext/mathematical/lsmsvgfilterelement.c +266 -0
- data/ext/mathematical/lsmsvgfilterelement.h +66 -0
- data/ext/mathematical/lsmsvgfilterflood.c +86 -0
- data/ext/mathematical/lsmsvgfilterflood.h +55 -0
- data/ext/mathematical/lsmsvgfiltergaussianblur.c +114 -0
- data/ext/mathematical/lsmsvgfiltergaussianblur.h +57 -0
- data/ext/mathematical/lsmsvgfiltermerge.c +98 -0
- data/ext/mathematical/lsmsvgfiltermerge.h +55 -0
- data/ext/mathematical/lsmsvgfiltermergenode.c +87 -0
- data/ext/mathematical/lsmsvgfiltermergenode.h +57 -0
- data/ext/mathematical/lsmsvgfilteroffset.c +112 -0
- data/ext/mathematical/lsmsvgfilteroffset.h +58 -0
- data/ext/mathematical/lsmsvgfilterprimitive.c +168 -0
- data/ext/mathematical/lsmsvgfilterprimitive.h +66 -0
- data/ext/mathematical/lsmsvgfilterspecularlighting.c +127 -0
- data/ext/mathematical/lsmsvgfilterspecularlighting.h +60 -0
- data/ext/mathematical/lsmsvgfiltersurface.c +455 -0
- data/ext/mathematical/lsmsvgfiltersurface.h +66 -0
- data/ext/mathematical/lsmsvgfiltertile.c +102 -0
- data/ext/mathematical/lsmsvgfiltertile.h +57 -0
- data/ext/mathematical/lsmsvggelement.c +73 -0
- data/ext/mathematical/lsmsvggelement.h +55 -0
- data/ext/mathematical/lsmsvggradientelement.c +151 -0
- data/ext/mathematical/lsmsvggradientelement.h +68 -0
- data/ext/mathematical/lsmsvgimageelement.c +261 -0
- data/ext/mathematical/lsmsvgimageelement.h +67 -0
- data/ext/mathematical/lsmsvglength.c +152 -0
- data/ext/mathematical/lsmsvglength.h +65 -0
- data/ext/mathematical/lsmsvglineargradientelement.c +271 -0
- data/ext/mathematical/lsmsvglineargradientelement.h +60 -0
- data/ext/mathematical/lsmsvglineelement.c +153 -0
- data/ext/mathematical/lsmsvglineelement.h +60 -0
- data/ext/mathematical/lsmsvgmarkerelement.c +266 -0
- data/ext/mathematical/lsmsvgmarkerelement.h +74 -0
- data/ext/mathematical/lsmsvgmaskelement.c +232 -0
- data/ext/mathematical/lsmsvgmaskelement.h +64 -0
- data/ext/mathematical/lsmsvgmatrix.c +205 -0
- data/ext/mathematical/lsmsvgmatrix.h +59 -0
- data/ext/mathematical/lsmsvgpathelement.c +115 -0
- data/ext/mathematical/lsmsvgpathelement.h +59 -0
- data/ext/mathematical/lsmsvgpatternelement.c +398 -0
- data/ext/mathematical/lsmsvgpatternelement.h +69 -0
- data/ext/mathematical/lsmsvgpolygonelement.c +106 -0
- data/ext/mathematical/lsmsvgpolygonelement.h +57 -0
- data/ext/mathematical/lsmsvgpolylineelement.c +106 -0
- data/ext/mathematical/lsmsvgpolylineelement.h +57 -0
- data/ext/mathematical/lsmsvgradialgradientelement.c +323 -0
- data/ext/mathematical/lsmsvgradialgradientelement.h +61 -0
- data/ext/mathematical/lsmsvgrectelement.c +184 -0
- data/ext/mathematical/lsmsvgrectelement.h +62 -0
- data/ext/mathematical/lsmsvgstopelement.c +106 -0
- data/ext/mathematical/lsmsvgstopelement.h +57 -0
- data/ext/mathematical/lsmsvgstyle.c +560 -0
- data/ext/mathematical/lsmsvgstyle.h +217 -0
- data/ext/mathematical/lsmsvgsvgelement.c +260 -0
- data/ext/mathematical/lsmsvgsvgelement.h +71 -0
- data/ext/mathematical/lsmsvgswitchelement.c +103 -0
- data/ext/mathematical/lsmsvgswitchelement.h +55 -0
- data/ext/mathematical/lsmsvgsymbolelement.c +74 -0
- data/ext/mathematical/lsmsvgsymbolelement.h +55 -0
- data/ext/mathematical/lsmsvgtextelement.c +203 -0
- data/ext/mathematical/lsmsvgtextelement.h +60 -0
- data/ext/mathematical/lsmsvgtraits.c +1232 -0
- data/ext/mathematical/lsmsvgtraits.h +104 -0
- data/ext/mathematical/lsmsvgtransformable.c +106 -0
- data/ext/mathematical/lsmsvgtransformable.h +54 -0
- data/ext/mathematical/lsmsvgtspanelement.c +174 -0
- data/ext/mathematical/lsmsvgtspanelement.h +60 -0
- data/ext/mathematical/lsmsvgtypes.h +77 -0
- data/ext/mathematical/lsmsvguseelement.c +237 -0
- data/ext/mathematical/lsmsvguseelement.h +69 -0
- data/ext/mathematical/lsmsvgview.c +2583 -0
- data/ext/mathematical/lsmsvgview.h +179 -0
- data/ext/mathematical/lsmtraits.c +119 -0
- data/ext/mathematical/lsmtraits.h +49 -0
- data/ext/mathematical/lsmtypes.h +36 -0
- data/ext/mathematical/lsmutils.c +54 -0
- data/ext/mathematical/lsmutils.h +56 -0
- data/ext/mathematical/mathematical.c +145 -0
- data/ext/mathematical/y.tab.c +6179 -0
- data/ext/mathematical/y.tab.h +389 -0
- data/lib/mathematical/version.rb +1 -1
- data/mathematical.gemspec +8 -6
- data/test/mathematical/basic_test.rb +9 -0
- data/test/mathematical/fixtures/after/brackets_display.html +1 -0
- data/test/mathematical/fixtures/after/compliance_accents.html +17 -0
- data/test/mathematical/fixtures/after/compliance_arrows.html +71 -0
- data/test/mathematical/fixtures/after/compliance_colors.html +4 -0
- data/test/mathematical/fixtures/after/compliance_greek_letters.html +42 -0
- data/test/mathematical/fixtures/after/compliance_large_math.html +19 -0
- data/test/mathematical/fixtures/after/compliance_log_symbols.html +34 -0
- data/test/mathematical/fixtures/after/compliance_operators.html +262 -0
- data/test/mathematical/fixtures/after/dollar_sign_inline.html +1 -0
- data/test/mathematical/fixtures/after/equation_display.html +1 -0
- data/test/mathematical/fixtures/after/multiple_dollar_inline.html +1 -0
- data/test/mathematical/fixtures/after/parens_inline.html +1 -0
- data/test/mathematical/fixtures/before/brackets_display.text +1 -0
- data/test/mathematical/fixtures/before/compliance_accents.text +17 -0
- data/test/mathematical/fixtures/before/compliance_arrows.text +71 -0
- data/test/mathematical/fixtures/before/compliance_colors.text +4 -0
- data/test/mathematical/fixtures/before/compliance_greek_letters.text +42 -0
- data/test/mathematical/fixtures/before/compliance_large_math.text +19 -0
- data/test/mathematical/fixtures/before/compliance_log_symbols.text +34 -0
- data/test/mathematical/fixtures/before/compliance_operators.text +262 -0
- data/test/mathematical/fixtures/before/dollar_sign_inline.text +1 -0
- data/test/mathematical/fixtures/before/equation_display.text +1 -0
- data/test/mathematical/fixtures/before/multiple_dollar_inline.text +1 -0
- data/test/mathematical/fixtures/before/parens_inline.text +1 -0
- data/test/mathematical/fixtures/performance/big_file.text +1767 -0
- data/test/mathematical/fixtures_test.rb +45 -0
- data/test/mathematical/maliciousness_test.rb +45 -0
- data/test/mathematical/performance_test.rb +15 -0
- data/test/test_helper.rb +5 -0
- metadata +301 -14
- data/lib/mathematical.bundle +0 -0
- data/lib/mathematical/mathematical.bundle +0 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
/* Lasem
|
2
|
+
*
|
3
|
+
* Copyright © 2011 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_SEMANTICS_ELEMENT_H
|
25
|
+
#define LSM_MATHML_SEMANTICS_ELEMENT_H
|
26
|
+
|
27
|
+
#include <lsmmathmltypes.h>
|
28
|
+
#include <lsmmathmlelement.h>
|
29
|
+
|
30
|
+
G_BEGIN_DECLS
|
31
|
+
|
32
|
+
#define LSM_TYPE_MATHML_SEMANTICS_ELEMENT (lsm_mathml_semantics_element_get_type ())
|
33
|
+
#define LSM_MATHML_SEMANTICS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_MATHML_SEMANTICS_ELEMENT, LsmMathmlSemanticsElement))
|
34
|
+
#define LSM_MATHML_SEMANTICS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_MATHML_SEMANTICS_ELEMENT, LsmMathmlSemanticsElementClass))
|
35
|
+
#define LSM_IS_MATHML_SEMANTICS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_MATHML_SEMANTICS_ELEMENT))
|
36
|
+
#define LSM_IS_MATHML_SEMANTICS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_MATHML_SEMANTICS_ELEMENT))
|
37
|
+
#define LSM_MATHML_SEMANTICS_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_MATHML_SEMANTICS_ELEMENT, LsmMathmlSemanticsElementClass))
|
38
|
+
|
39
|
+
typedef struct _LsmMathmlSemanticsElementClass LsmMathmlSemanticsElementClass;
|
40
|
+
|
41
|
+
struct _LsmMathmlSemanticsElement {
|
42
|
+
LsmMathmlElement element;
|
43
|
+
};
|
44
|
+
|
45
|
+
struct _LsmMathmlSemanticsElementClass {
|
46
|
+
LsmMathmlElementClass parent_class;
|
47
|
+
};
|
48
|
+
|
49
|
+
GType lsm_mathml_semantics_element_get_type (void);
|
50
|
+
|
51
|
+
LsmDomNode * lsm_mathml_semantics_element_new (void);
|
52
|
+
|
53
|
+
G_END_DECLS
|
54
|
+
|
55
|
+
#endif
|
56
|
+
|
@@ -0,0 +1,142 @@
|
|
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
|
+
#include <lsmmathmlspaceelement.h>
|
25
|
+
#include <lsmmathmlview.h>
|
26
|
+
|
27
|
+
static GObjectClass *parent_class;
|
28
|
+
|
29
|
+
/* GdomNode implementation */
|
30
|
+
|
31
|
+
static const char *
|
32
|
+
lsm_mathml_space_get_node_name (LsmDomNode *node)
|
33
|
+
{
|
34
|
+
return "mspace";
|
35
|
+
}
|
36
|
+
|
37
|
+
static gboolean
|
38
|
+
lsm_mathml_space_element_can_append_child (LsmDomNode *self, LsmDomNode *child)
|
39
|
+
{
|
40
|
+
return FALSE;
|
41
|
+
}
|
42
|
+
|
43
|
+
/* LsmMathmlElement implementation */
|
44
|
+
|
45
|
+
static void
|
46
|
+
lsm_mathml_space_element_update (LsmMathmlElement *self, LsmMathmlStyle *style)
|
47
|
+
{
|
48
|
+
LsmMathmlSpaceElement *space_element = LSM_MATHML_SPACE_ELEMENT (self);
|
49
|
+
static LsmMathmlSpace space = {.name = LSM_MATHML_SPACE_NAME_ERROR,
|
50
|
+
{ .unit = LSM_MATHML_UNIT_PX, .value = 0.0}};
|
51
|
+
static LsmMathmlLength length = {.unit = LSM_MATHML_UNIT_PX, .value = 0.0};
|
52
|
+
|
53
|
+
lsm_mathml_space_attribute_normalize (&space_element->width, 0.0, &space, style);
|
54
|
+
lsm_mathml_length_attribute_normalize (&space_element->height, 0.0, &length, style);
|
55
|
+
lsm_mathml_length_attribute_normalize (&space_element->depth, 0.0, &length, style);
|
56
|
+
}
|
57
|
+
|
58
|
+
static const LsmMathmlBbox *
|
59
|
+
lsm_mathml_space_element_measure (LsmMathmlElement *self, LsmMathmlView *view, const LsmMathmlBbox *bbox)
|
60
|
+
{
|
61
|
+
LsmMathmlSpaceElement *space_element = LSM_MATHML_SPACE_ELEMENT (self);
|
62
|
+
|
63
|
+
self->bbox.width = space_element->width.value;
|
64
|
+
self->bbox.height = space_element->height.value;
|
65
|
+
self->bbox.depth = space_element->depth.value;
|
66
|
+
self->bbox.is_defined = TRUE;
|
67
|
+
|
68
|
+
return &self->bbox;
|
69
|
+
}
|
70
|
+
|
71
|
+
static void
|
72
|
+
lsm_mathml_space_element_layout (LsmMathmlElement *self, LsmMathmlView *view,
|
73
|
+
double x, double y, const LsmMathmlBbox *bbox)
|
74
|
+
{
|
75
|
+
LSM_MATHML_ELEMENT_CLASS (parent_class)->layout (self, view, x, y, bbox);
|
76
|
+
}
|
77
|
+
|
78
|
+
/* LsmMathmlSpaceElement implementation */
|
79
|
+
|
80
|
+
LsmDomNode *
|
81
|
+
lsm_mathml_space_element_new (void)
|
82
|
+
{
|
83
|
+
return g_object_new (LSM_TYPE_MATHML_SPACE_ELEMENT, NULL);
|
84
|
+
}
|
85
|
+
|
86
|
+
static const LsmMathmlSpace space_default = {LSM_MATHML_SPACE_NAME_ERROR, {0.0, LSM_MATHML_UNIT_EM}};
|
87
|
+
static const LsmMathmlLength length_default = {1.0, LSM_MATHML_UNIT_NONE};
|
88
|
+
|
89
|
+
static void
|
90
|
+
lsm_mathml_space_element_init (LsmMathmlSpaceElement *self)
|
91
|
+
{
|
92
|
+
self->width.space = space_default;
|
93
|
+
self->height.length = length_default;
|
94
|
+
self->depth.length = length_default;
|
95
|
+
}
|
96
|
+
|
97
|
+
/* LsmMathmlSpaceElement class */
|
98
|
+
|
99
|
+
static const LsmAttributeInfos _attribute_infos[] = {
|
100
|
+
{
|
101
|
+
.name = "width",
|
102
|
+
.attribute_offset = offsetof (LsmMathmlSpaceElement, width),
|
103
|
+
.trait_class = &lsm_mathml_space_trait_class,
|
104
|
+
.trait_default = &space_default
|
105
|
+
},
|
106
|
+
{
|
107
|
+
.name = "depth",
|
108
|
+
.attribute_offset = offsetof (LsmMathmlSpaceElement, depth),
|
109
|
+
.trait_class = &lsm_mathml_length_trait_class,
|
110
|
+
.trait_default = &length_default
|
111
|
+
},
|
112
|
+
{
|
113
|
+
.name = "height",
|
114
|
+
.attribute_offset = offsetof (LsmMathmlSpaceElement, height),
|
115
|
+
.trait_class = &lsm_mathml_length_trait_class,
|
116
|
+
.trait_default = &length_default
|
117
|
+
}
|
118
|
+
};
|
119
|
+
|
120
|
+
static void
|
121
|
+
lsm_mathml_space_element_class_init (LsmMathmlSpaceElementClass *space_class)
|
122
|
+
{
|
123
|
+
LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (space_class);
|
124
|
+
LsmMathmlElementClass *m_element_class = LSM_MATHML_ELEMENT_CLASS (space_class);
|
125
|
+
|
126
|
+
parent_class = g_type_class_peek_parent (space_class);
|
127
|
+
|
128
|
+
d_node_class->get_node_name = lsm_mathml_space_get_node_name;
|
129
|
+
d_node_class->can_append_child = lsm_mathml_space_element_can_append_child;
|
130
|
+
|
131
|
+
m_element_class->update = lsm_mathml_space_element_update;
|
132
|
+
m_element_class->measure = lsm_mathml_space_element_measure;
|
133
|
+
m_element_class->layout = lsm_mathml_space_element_layout;
|
134
|
+
m_element_class->is_inferred_row = NULL;
|
135
|
+
m_element_class->attribute_manager = lsm_attribute_manager_duplicate (m_element_class->attribute_manager);
|
136
|
+
|
137
|
+
lsm_attribute_manager_add_attributes (m_element_class->attribute_manager,
|
138
|
+
G_N_ELEMENTS (_attribute_infos),
|
139
|
+
_attribute_infos);
|
140
|
+
}
|
141
|
+
|
142
|
+
G_DEFINE_TYPE (LsmMathmlSpaceElement, lsm_mathml_space_element, LSM_TYPE_MATHML_ELEMENT)
|
@@ -0,0 +1,60 @@
|
|
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_SPACE_ELEMENT_H
|
25
|
+
#define LSM_MATHML_SPACE_ELEMENT_H
|
26
|
+
|
27
|
+
#include <lsmmathmltypes.h>
|
28
|
+
#include <lsmmathmlelement.h>
|
29
|
+
|
30
|
+
G_BEGIN_DECLS
|
31
|
+
|
32
|
+
#define LSM_TYPE_MATHML_SPACE_ELEMENT (lsm_mathml_space_element_get_type ())
|
33
|
+
#define LSM_MATHML_SPACE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_MATHML_SPACE_ELEMENT, LsmMathmlSpaceElement))
|
34
|
+
#define LSM_MATHML_SPACE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_MATHML_SPACE_ELEMENT, LsmMathmlSpaceElementClass))
|
35
|
+
#define LSM_IS_MATHML_SPACE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_MATHML_SPACE_ELEMENT))
|
36
|
+
#define LSM_IS_MATHML_SPACE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_MATHML_SPACE_ELEMENT))
|
37
|
+
#define LSM_MATHML_SPACE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_MATHML_SPACE_ELEMENT, LsmMathmlSpaceElementClass))
|
38
|
+
|
39
|
+
typedef struct _LsmMathmlSpaceElementClass LsmMathmlSpaceElementClass;
|
40
|
+
|
41
|
+
struct _LsmMathmlSpaceElement {
|
42
|
+
LsmMathmlElement element;
|
43
|
+
|
44
|
+
LsmMathmlSpaceAttribute width;
|
45
|
+
LsmMathmlLengthAttribute height;
|
46
|
+
LsmMathmlLengthAttribute depth;
|
47
|
+
};
|
48
|
+
|
49
|
+
struct _LsmMathmlSpaceElementClass {
|
50
|
+
LsmMathmlElementClass parent_class;
|
51
|
+
};
|
52
|
+
|
53
|
+
GType lsm_mathml_space_element_get_type (void);
|
54
|
+
|
55
|
+
LsmDomNode * lsm_mathml_space_element_new (void);
|
56
|
+
|
57
|
+
G_END_DECLS
|
58
|
+
|
59
|
+
#endif
|
60
|
+
|
@@ -0,0 +1,123 @@
|
|
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
|
+
#include <lsmdebug.h>
|
25
|
+
#include <lsmmathmlstringelement.h>
|
26
|
+
#include <lsmmathmlview.h>
|
27
|
+
|
28
|
+
static GObject *parent_class;
|
29
|
+
|
30
|
+
/* LsmDomNode implementation */
|
31
|
+
|
32
|
+
static const char *
|
33
|
+
lsm_mathml_string_element_get_node_name (LsmDomNode *node)
|
34
|
+
{
|
35
|
+
return "ms";
|
36
|
+
}
|
37
|
+
|
38
|
+
/* LsmMathmlElement implementation */
|
39
|
+
|
40
|
+
static void
|
41
|
+
lsm_mathml_string_element_update (LsmMathmlElement *self, LsmMathmlStyle *style)
|
42
|
+
{
|
43
|
+
LSM_MATHML_ELEMENT_CLASS (parent_class)->update (self, style);
|
44
|
+
}
|
45
|
+
|
46
|
+
/* LsmMathmlPresentationToken implementation */
|
47
|
+
|
48
|
+
static char *
|
49
|
+
lsm_mathml_string_element_get_text (LsmMathmlPresentationToken *token)
|
50
|
+
{
|
51
|
+
LsmMathmlStringElement *string = LSM_MATHML_STRING_ELEMENT (token);
|
52
|
+
char *token_text;
|
53
|
+
char *text;
|
54
|
+
|
55
|
+
token_text = LSM_MATHML_PRESENTATION_TOKEN_CLASS (parent_class)->get_text (token);
|
56
|
+
|
57
|
+
text = g_strdup_printf ("%s%s%s",
|
58
|
+
string->left_quote.value != NULL ? string->left_quote.value : "",
|
59
|
+
token_text != NULL ? token_text : "",
|
60
|
+
string->right_quote.value != NULL ? string->right_quote.value : "");
|
61
|
+
|
62
|
+
g_free (token_text);
|
63
|
+
|
64
|
+
return text;
|
65
|
+
}
|
66
|
+
|
67
|
+
/* LsmMathmlStringElement implementation */
|
68
|
+
|
69
|
+
static const char *quote_default = "\"";
|
70
|
+
|
71
|
+
LsmDomNode *
|
72
|
+
lsm_mathml_string_element_new (void)
|
73
|
+
{
|
74
|
+
return g_object_new (LSM_TYPE_MATHML_STRING_ELEMENT, NULL);
|
75
|
+
}
|
76
|
+
|
77
|
+
static void
|
78
|
+
lsm_mathml_string_element_init (LsmMathmlStringElement *self)
|
79
|
+
{
|
80
|
+
self->left_quote.value = g_strdup (quote_default);
|
81
|
+
self->right_quote.value = g_strdup (quote_default);
|
82
|
+
}
|
83
|
+
|
84
|
+
/* LsmMathmlStringElement class */
|
85
|
+
|
86
|
+
static const LsmAttributeInfos _attribute_infos[] = {
|
87
|
+
{
|
88
|
+
.name = "lquote",
|
89
|
+
.attribute_offset = offsetof (LsmMathmlStringElement, left_quote),
|
90
|
+
.trait_class = &lsm_mathml_string_trait_class,
|
91
|
+
.trait_default = "e_default
|
92
|
+
},
|
93
|
+
{
|
94
|
+
.name = "rquote",
|
95
|
+
.attribute_offset = offsetof (LsmMathmlStringElement, right_quote),
|
96
|
+
.trait_class = &lsm_mathml_string_trait_class,
|
97
|
+
.trait_default = "e_default
|
98
|
+
}
|
99
|
+
};
|
100
|
+
|
101
|
+
static void
|
102
|
+
lsm_mathml_string_element_class_init (LsmMathmlStringElementClass *string_class)
|
103
|
+
{
|
104
|
+
LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (string_class);
|
105
|
+
LsmMathmlElementClass *m_element_class = LSM_MATHML_ELEMENT_CLASS (string_class);
|
106
|
+
LsmMathmlPresentationTokenClass *m_token_class = LSM_MATHML_PRESENTATION_TOKEN_CLASS (string_class);
|
107
|
+
|
108
|
+
parent_class = g_type_class_peek_parent (string_class);
|
109
|
+
|
110
|
+
d_node_class->get_node_name = lsm_mathml_string_element_get_node_name;
|
111
|
+
|
112
|
+
m_element_class->update = lsm_mathml_string_element_update;
|
113
|
+
m_element_class->attribute_manager = lsm_attribute_manager_duplicate (m_element_class->attribute_manager);
|
114
|
+
|
115
|
+
lsm_attribute_manager_add_attributes (m_element_class->attribute_manager,
|
116
|
+
G_N_ELEMENTS (_attribute_infos),
|
117
|
+
_attribute_infos);
|
118
|
+
|
119
|
+
m_token_class->get_text = lsm_mathml_string_element_get_text;
|
120
|
+
}
|
121
|
+
|
122
|
+
G_DEFINE_TYPE (LsmMathmlStringElement, lsm_mathml_string_element, LSM_TYPE_MATHML_PRESENTATION_TOKEN)
|
123
|
+
|
@@ -0,0 +1,58 @@
|
|
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_STRING_ELEMENT_H
|
25
|
+
#define LSM_MATHML_STRING_ELEMENT_H
|
26
|
+
|
27
|
+
#include <lsmmathmltypes.h>
|
28
|
+
#include <lsmmathmlpresentationtoken.h>
|
29
|
+
|
30
|
+
G_BEGIN_DECLS
|
31
|
+
|
32
|
+
#define LSM_TYPE_MATHML_STRING_ELEMENT (lsm_mathml_string_element_get_type ())
|
33
|
+
#define LSM_MATHML_STRING_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_MATHML_STRING_ELEMENT, LsmMathmlStringElement))
|
34
|
+
#define LSM_MATHML_STRING_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_MATHML_STRING_ELEMENT, LsmMathmlStringElementClass))
|
35
|
+
#define LSM_IS_MATHML_STRING_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_MATHML_STRING_ELEMENT))
|
36
|
+
#define LSM_IS_MATHML_STRING_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_MATHML_STRING_ELEMENT))
|
37
|
+
#define LSM_MATHML_STRING_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_MATHML_STRING_ELEMENT, LsmMathmlStringElementClass))
|
38
|
+
|
39
|
+
typedef struct _LsmMathmlStringElementClass LsmMathmlStringElementClass;
|
40
|
+
|
41
|
+
struct _LsmMathmlStringElement {
|
42
|
+
LsmMathmlPresentationToken presentation_token;
|
43
|
+
|
44
|
+
LsmMathmlStringAttribute left_quote;
|
45
|
+
LsmMathmlStringAttribute right_quote;
|
46
|
+
};
|
47
|
+
|
48
|
+
struct _LsmMathmlStringElementClass {
|
49
|
+
LsmMathmlPresentationTokenClass parent_class;
|
50
|
+
};
|
51
|
+
|
52
|
+
GType lsm_mathml_string_element_get_type (void);
|
53
|
+
|
54
|
+
LsmDomNode * lsm_mathml_string_element_new (void);
|
55
|
+
|
56
|
+
G_END_DECLS
|
57
|
+
|
58
|
+
#endif
|
@@ -0,0 +1,130 @@
|
|
1
|
+
/* Lasem
|
2
|
+
*
|
3
|
+
* Copyright © 2007-2009 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
|
+
#include <lsmmathmlstyle.h>
|
25
|
+
#include <string.h>
|
26
|
+
#include <stdio.h>
|
27
|
+
#include <math.h>
|
28
|
+
|
29
|
+
GType
|
30
|
+
lsm_mathml_style_get_type (void)
|
31
|
+
{
|
32
|
+
static GType our_type = 0;
|
33
|
+
if (our_type == 0)
|
34
|
+
our_type = g_boxed_type_register_static
|
35
|
+
("LsmMathmlStyle",
|
36
|
+
(GBoxedCopyFunc) lsm_mathml_style_duplicate,
|
37
|
+
(GBoxedFreeFunc) lsm_mathml_style_free);
|
38
|
+
return our_type;
|
39
|
+
}
|
40
|
+
|
41
|
+
LsmMathmlStyle *
|
42
|
+
lsm_mathml_style_new (void)
|
43
|
+
{
|
44
|
+
LsmMathmlStyle *style = g_new0 (LsmMathmlStyle, 1);
|
45
|
+
|
46
|
+
return style;
|
47
|
+
}
|
48
|
+
|
49
|
+
void
|
50
|
+
lsm_mathml_style_free (LsmMathmlStyle *style)
|
51
|
+
{
|
52
|
+
g_return_if_fail (style != NULL);
|
53
|
+
|
54
|
+
g_free (style->math_family);
|
55
|
+
g_free (style);
|
56
|
+
}
|
57
|
+
|
58
|
+
LsmMathmlStyle *
|
59
|
+
lsm_mathml_style_duplicate (const LsmMathmlStyle *from)
|
60
|
+
{
|
61
|
+
LsmMathmlStyle *style;
|
62
|
+
|
63
|
+
g_return_val_if_fail (from != NULL, NULL);
|
64
|
+
|
65
|
+
style = g_new (LsmMathmlStyle, 1);
|
66
|
+
g_return_val_if_fail (style != NULL, NULL);
|
67
|
+
|
68
|
+
memcpy (style, from, sizeof (LsmMathmlStyle));
|
69
|
+
|
70
|
+
style->math_family = g_strdup (from->math_family);
|
71
|
+
|
72
|
+
return style;
|
73
|
+
}
|
74
|
+
|
75
|
+
void
|
76
|
+
lsm_mathml_style_change_script_level (LsmMathmlStyle *style, int increment)
|
77
|
+
{
|
78
|
+
g_return_if_fail (style != NULL);
|
79
|
+
|
80
|
+
style->math_size = style->math_size * pow (style->script_size_multiplier, increment);
|
81
|
+
style->script_level += increment;
|
82
|
+
|
83
|
+
if (style->math_size < style->script_min_size)
|
84
|
+
style->math_size = style->script_min_size;
|
85
|
+
}
|
86
|
+
|
87
|
+
void
|
88
|
+
lsm_mathml_style_set_math_size_pt (LsmMathmlStyle *style, double math_size)
|
89
|
+
{
|
90
|
+
g_return_if_fail (style != NULL);
|
91
|
+
|
92
|
+
style->math_size = math_size;
|
93
|
+
}
|
94
|
+
|
95
|
+
void
|
96
|
+
lsm_mathml_style_set_script_min_size_pt (LsmMathmlStyle *style, double script_min_size)
|
97
|
+
{
|
98
|
+
g_return_if_fail (style != NULL);
|
99
|
+
|
100
|
+
style->script_min_size = script_min_size;
|
101
|
+
}
|
102
|
+
|
103
|
+
void
|
104
|
+
lsm_mathml_style_set_math_family (LsmMathmlStyle *style, const char *math_family)
|
105
|
+
{
|
106
|
+
g_return_if_fail (style != NULL);
|
107
|
+
g_return_if_fail (math_family != NULL);
|
108
|
+
|
109
|
+
g_free (style->math_family);
|
110
|
+
style->math_family = g_strdup (math_family);
|
111
|
+
}
|
112
|
+
|
113
|
+
void
|
114
|
+
lsm_mathml_style_set_math_variant (LsmMathmlStyle *style, LsmMathmlVariant math_variant)
|
115
|
+
{
|
116
|
+
g_return_if_fail (style != NULL);
|
117
|
+
|
118
|
+
style->math_variant = math_variant;
|
119
|
+
}
|
120
|
+
|
121
|
+
void
|
122
|
+
lsm_mathml_style_set_math_color (LsmMathmlStyle *style, double red, double green, double blue, double alpha)
|
123
|
+
{
|
124
|
+
g_return_if_fail (style != NULL);
|
125
|
+
|
126
|
+
style->math_color.red = red;
|
127
|
+
style->math_color.green = green;
|
128
|
+
style->math_color.blue = blue;
|
129
|
+
style->math_color.alpha = alpha;
|
130
|
+
}
|