mathematical 0.0.2 → 0.0.3
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/README.md +52 -10
- data/Rakefile +42 -3
- data/lib/mathematical.rb +5 -4
- data/lib/mathematical/mathematical.bundle +0 -0
- data/lib/mathematical/render.rb +6 -5
- data/lib/mathematical/version.rb +1 -1
- data/mathematical.gemspec +5 -5
- metadata +14 -296
- data/.gitignore +0 -24
- data/.gitmodules +0 -0
- data/Gemfile +0 -4
- data/ext/mathematical/README.itex2MML.md +0 -11
- data/ext/mathematical/README.lasem.md +0 -11
- data/ext/mathematical/extconf.rb +0 -51
- data/ext/mathematical/itex2MML.h +0 -63
- data/ext/mathematical/lasemrender.c +0 -257
- data/ext/mathematical/lex.yy.c +0 -6548
- data/ext/mathematical/lsm.c +0 -30
- data/ext/mathematical/lsm.h +0 -36
- data/ext/mathematical/lsmattributes.c +0 -279
- data/ext/mathematical/lsmattributes.h +0 -75
- data/ext/mathematical/lsmcairo.c +0 -598
- data/ext/mathematical/lsmcairo.h +0 -51
- data/ext/mathematical/lsmdebug.c +0 -179
- data/ext/mathematical/lsmdebug.h +0 -76
- data/ext/mathematical/lsmdom.h +0 -43
- data/ext/mathematical/lsmdomcharacterdata.c +0 -114
- data/ext/mathematical/lsmdomcharacterdata.h +0 -59
- data/ext/mathematical/lsmdomdocument.c +0 -292
- data/ext/mathematical/lsmdomdocument.h +0 -82
- data/ext/mathematical/lsmdomdocumentfragment.c +0 -81
- data/ext/mathematical/lsmdomdocumentfragment.h +0 -55
- data/ext/mathematical/lsmdomelement.c +0 -148
- data/ext/mathematical/lsmdomelement.h +0 -62
- data/ext/mathematical/lsmdomentities.c +0 -2155
- data/ext/mathematical/lsmdomentities.h +0 -35
- data/ext/mathematical/lsmdomenumtypes.c +0 -99
- data/ext/mathematical/lsmdomenumtypes.c.template +0 -39
- data/ext/mathematical/lsmdomenumtypes.h +0 -26
- data/ext/mathematical/lsmdomenumtypes.h.template +0 -26
- data/ext/mathematical/lsmdomimplementation.c +0 -82
- data/ext/mathematical/lsmdomimplementation.h +0 -41
- data/ext/mathematical/lsmdomnamednodemap.c +0 -118
- data/ext/mathematical/lsmdomnamednodemap.h +0 -64
- data/ext/mathematical/lsmdomnode.c +0 -725
- data/ext/mathematical/lsmdomnode.h +0 -120
- data/ext/mathematical/lsmdomnodelist.c +0 -70
- data/ext/mathematical/lsmdomnodelist.h +0 -58
- data/ext/mathematical/lsmdomparser.c +0 -461
- data/ext/mathematical/lsmdomparser.h +0 -54
- data/ext/mathematical/lsmdomtext.c +0 -82
- data/ext/mathematical/lsmdomtext.h +0 -55
- data/ext/mathematical/lsmdomtypes.h +0 -44
- data/ext/mathematical/lsmdomview.c +0 -422
- data/ext/mathematical/lsmdomview.h +0 -94
- data/ext/mathematical/lsmmathml.h +0 -66
- data/ext/mathematical/lsmmathmlactionelement.c +0 -93
- data/ext/mathematical/lsmmathmlactionelement.h +0 -57
- data/ext/mathematical/lsmmathmlaligngroupelement.c +0 -102
- data/ext/mathematical/lsmmathmlaligngroupelement.h +0 -56
- data/ext/mathematical/lsmmathmlalignmarkelement.c +0 -102
- data/ext/mathematical/lsmmathmlalignmarkelement.h +0 -56
- data/ext/mathematical/lsmmathmlattributes.c +0 -197
- data/ext/mathematical/lsmmathmlattributes.h +0 -126
- data/ext/mathematical/lsmmathmldocument.c +0 -306
- data/ext/mathematical/lsmmathmldocument.h +0 -61
- data/ext/mathematical/lsmmathmlelement.c +0 -491
- data/ext/mathematical/lsmmathmlelement.h +0 -107
- data/ext/mathematical/lsmmathmlenums.c +0 -429
- data/ext/mathematical/lsmmathmlenums.h +0 -182
- data/ext/mathematical/lsmmathmlenumtypes.c +0 -666
- data/ext/mathematical/lsmmathmlenumtypes.c.template +0 -39
- data/ext/mathematical/lsmmathmlenumtypes.h +0 -90
- data/ext/mathematical/lsmmathmlenumtypes.h.template +0 -26
- data/ext/mathematical/lsmmathmlerrorelement.c +0 -58
- data/ext/mathematical/lsmmathmlerrorelement.h +0 -56
- data/ext/mathematical/lsmmathmlfencedelement.c +0 -178
- data/ext/mathematical/lsmmathmlfencedelement.h +0 -65
- data/ext/mathematical/lsmmathmlfractionelement.c +0 -253
- data/ext/mathematical/lsmmathmlfractionelement.h +0 -62
- data/ext/mathematical/lsmmathmlglyphtableams.c +0 -597
- data/ext/mathematical/lsmmathmlglyphtableams.h +0 -45
- data/ext/mathematical/lsmmathmlitexelement.c +0 -187
- data/ext/mathematical/lsmmathmlitexelement.h +0 -60
- data/ext/mathematical/lsmmathmllayoututils.c +0 -191
- data/ext/mathematical/lsmmathmllayoututils.h +0 -58
- data/ext/mathematical/lsmmathmlmathelement.c +0 -204
- data/ext/mathematical/lsmmathmlmathelement.h +0 -81
- data/ext/mathematical/lsmmathmloperatordictionary.c +0 -3332
- data/ext/mathematical/lsmmathmloperatordictionary.h +0 -54
- data/ext/mathematical/lsmmathmloperatorelement.c +0 -307
- data/ext/mathematical/lsmmathmloperatorelement.h +0 -73
- data/ext/mathematical/lsmmathmlpaddedelement.c +0 -58
- data/ext/mathematical/lsmmathmlpaddedelement.h +0 -56
- data/ext/mathematical/lsmmathmlphantomelement.c +0 -71
- data/ext/mathematical/lsmmathmlphantomelement.h +0 -56
- data/ext/mathematical/lsmmathmlpresentationcontainer.c +0 -43
- data/ext/mathematical/lsmmathmlpresentationcontainer.h +0 -54
- data/ext/mathematical/lsmmathmlpresentationtoken.c +0 -303
- data/ext/mathematical/lsmmathmlpresentationtoken.h +0 -83
- data/ext/mathematical/lsmmathmlradicalelement.c +0 -266
- data/ext/mathematical/lsmmathmlradicalelement.h +0 -71
- data/ext/mathematical/lsmmathmlrowelement.c +0 -58
- data/ext/mathematical/lsmmathmlrowelement.h +0 -56
- data/ext/mathematical/lsmmathmlscriptelement.c +0 -282
- data/ext/mathematical/lsmmathmlscriptelement.h +0 -78
- data/ext/mathematical/lsmmathmlsemanticselement.c +0 -82
- data/ext/mathematical/lsmmathmlsemanticselement.h +0 -56
- data/ext/mathematical/lsmmathmlspaceelement.c +0 -142
- data/ext/mathematical/lsmmathmlspaceelement.h +0 -60
- data/ext/mathematical/lsmmathmlstringelement.c +0 -123
- data/ext/mathematical/lsmmathmlstringelement.h +0 -58
- data/ext/mathematical/lsmmathmlstyle.c +0 -130
- data/ext/mathematical/lsmmathmlstyle.h +0 -81
- data/ext/mathematical/lsmmathmlstyleelement.c +0 -307
- data/ext/mathematical/lsmmathmlstyleelement.h +0 -87
- data/ext/mathematical/lsmmathmltablecellelement.c +0 -122
- data/ext/mathematical/lsmmathmltablecellelement.h +0 -62
- data/ext/mathematical/lsmmathmltableelement.c +0 -545
- data/ext/mathematical/lsmmathmltableelement.h +0 -78
- data/ext/mathematical/lsmmathmltablerowelement.c +0 -120
- data/ext/mathematical/lsmmathmltablerowelement.h +0 -64
- data/ext/mathematical/lsmmathmltraits.c +0 -819
- data/ext/mathematical/lsmmathmltraits.h +0 -119
- data/ext/mathematical/lsmmathmltypes.h +0 -66
- data/ext/mathematical/lsmmathmlunderoverelement.c +0 -485
- data/ext/mathematical/lsmmathmlunderoverelement.h +0 -82
- data/ext/mathematical/lsmmathmlutils.c +0 -170
- data/ext/mathematical/lsmmathmlutils.h +0 -50
- data/ext/mathematical/lsmmathmlview.c +0 -1048
- data/ext/mathematical/lsmmathmlview.h +0 -164
- data/ext/mathematical/lsmproperties.c +0 -418
- data/ext/mathematical/lsmproperties.h +0 -85
- data/ext/mathematical/lsmstr.c +0 -231
- data/ext/mathematical/lsmstr.h +0 -114
- data/ext/mathematical/lsmsvg.h +0 -67
- data/ext/mathematical/lsmsvgaelement.c +0 -73
- data/ext/mathematical/lsmsvgaelement.h +0 -55
- data/ext/mathematical/lsmsvgattributes.h +0 -113
- data/ext/mathematical/lsmsvgcircleelement.c +0 -153
- data/ext/mathematical/lsmsvgcircleelement.h +0 -59
- data/ext/mathematical/lsmsvgclippathelement.c +0 -134
- data/ext/mathematical/lsmsvgclippathelement.h +0 -59
- data/ext/mathematical/lsmsvgcolors.c +0 -212
- data/ext/mathematical/lsmsvgcolors.h +0 -39
- data/ext/mathematical/lsmsvgdefselement.c +0 -74
- data/ext/mathematical/lsmsvgdefselement.h +0 -55
- data/ext/mathematical/lsmsvgdocument.c +0 -230
- data/ext/mathematical/lsmsvgdocument.h +0 -58
- data/ext/mathematical/lsmsvgelement.c +0 -367
- data/ext/mathematical/lsmsvgelement.h +0 -81
- data/ext/mathematical/lsmsvgellipseelement.c +0 -158
- data/ext/mathematical/lsmsvgellipseelement.h +0 -60
- data/ext/mathematical/lsmsvgenums.c +0 -544
- data/ext/mathematical/lsmsvgenums.h +0 -357
- data/ext/mathematical/lsmsvgenumtypes.c +0 -1083
- data/ext/mathematical/lsmsvgenumtypes.c.template +0 -39
- data/ext/mathematical/lsmsvgenumtypes.h +0 -111
- data/ext/mathematical/lsmsvgenumtypes.h.template +0 -26
- data/ext/mathematical/lsmsvgfilterblend.c +0 -105
- data/ext/mathematical/lsmsvgfilterblend.h +0 -58
- data/ext/mathematical/lsmsvgfiltercomposite.c +0 -109
- data/ext/mathematical/lsmsvgfiltercomposite.h +0 -58
- data/ext/mathematical/lsmsvgfilterelement.c +0 -266
- data/ext/mathematical/lsmsvgfilterelement.h +0 -66
- data/ext/mathematical/lsmsvgfilterflood.c +0 -86
- data/ext/mathematical/lsmsvgfilterflood.h +0 -55
- data/ext/mathematical/lsmsvgfiltergaussianblur.c +0 -114
- data/ext/mathematical/lsmsvgfiltergaussianblur.h +0 -57
- data/ext/mathematical/lsmsvgfiltermerge.c +0 -98
- data/ext/mathematical/lsmsvgfiltermerge.h +0 -55
- data/ext/mathematical/lsmsvgfiltermergenode.c +0 -87
- data/ext/mathematical/lsmsvgfiltermergenode.h +0 -57
- data/ext/mathematical/lsmsvgfilteroffset.c +0 -112
- data/ext/mathematical/lsmsvgfilteroffset.h +0 -58
- data/ext/mathematical/lsmsvgfilterprimitive.c +0 -168
- data/ext/mathematical/lsmsvgfilterprimitive.h +0 -66
- data/ext/mathematical/lsmsvgfilterspecularlighting.c +0 -127
- data/ext/mathematical/lsmsvgfilterspecularlighting.h +0 -60
- data/ext/mathematical/lsmsvgfiltersurface.c +0 -455
- data/ext/mathematical/lsmsvgfiltersurface.h +0 -66
- data/ext/mathematical/lsmsvgfiltertile.c +0 -102
- data/ext/mathematical/lsmsvgfiltertile.h +0 -57
- data/ext/mathematical/lsmsvggelement.c +0 -73
- data/ext/mathematical/lsmsvggelement.h +0 -55
- data/ext/mathematical/lsmsvggradientelement.c +0 -151
- data/ext/mathematical/lsmsvggradientelement.h +0 -68
- data/ext/mathematical/lsmsvgimageelement.c +0 -261
- data/ext/mathematical/lsmsvgimageelement.h +0 -67
- data/ext/mathematical/lsmsvglength.c +0 -93
- data/ext/mathematical/lsmsvglength.h +0 -59
- data/ext/mathematical/lsmsvglineargradientelement.c +0 -271
- data/ext/mathematical/lsmsvglineargradientelement.h +0 -60
- data/ext/mathematical/lsmsvglineelement.c +0 -153
- data/ext/mathematical/lsmsvglineelement.h +0 -60
- data/ext/mathematical/lsmsvgmarkerelement.c +0 -266
- data/ext/mathematical/lsmsvgmarkerelement.h +0 -74
- data/ext/mathematical/lsmsvgmaskelement.c +0 -232
- data/ext/mathematical/lsmsvgmaskelement.h +0 -64
- data/ext/mathematical/lsmsvgmatrix.c +0 -205
- data/ext/mathematical/lsmsvgmatrix.h +0 -59
- data/ext/mathematical/lsmsvgpathelement.c +0 -115
- data/ext/mathematical/lsmsvgpathelement.h +0 -59
- data/ext/mathematical/lsmsvgpatternelement.c +0 -398
- data/ext/mathematical/lsmsvgpatternelement.h +0 -69
- data/ext/mathematical/lsmsvgpolygonelement.c +0 -106
- data/ext/mathematical/lsmsvgpolygonelement.h +0 -57
- data/ext/mathematical/lsmsvgpolylineelement.c +0 -106
- data/ext/mathematical/lsmsvgpolylineelement.h +0 -57
- data/ext/mathematical/lsmsvgradialgradientelement.c +0 -323
- data/ext/mathematical/lsmsvgradialgradientelement.h +0 -61
- data/ext/mathematical/lsmsvgrectelement.c +0 -184
- data/ext/mathematical/lsmsvgrectelement.h +0 -62
- data/ext/mathematical/lsmsvgstopelement.c +0 -106
- data/ext/mathematical/lsmsvgstopelement.h +0 -57
- data/ext/mathematical/lsmsvgstyle.c +0 -558
- data/ext/mathematical/lsmsvgstyle.h +0 -217
- data/ext/mathematical/lsmsvgsvgelement.c +0 -260
- data/ext/mathematical/lsmsvgsvgelement.h +0 -71
- data/ext/mathematical/lsmsvgswitchelement.c +0 -103
- data/ext/mathematical/lsmsvgswitchelement.h +0 -55
- data/ext/mathematical/lsmsvgsymbolelement.c +0 -74
- data/ext/mathematical/lsmsvgsymbolelement.h +0 -55
- data/ext/mathematical/lsmsvgtextelement.c +0 -170
- data/ext/mathematical/lsmsvgtextelement.h +0 -58
- data/ext/mathematical/lsmsvgtraits.c +0 -1158
- data/ext/mathematical/lsmsvgtraits.h +0 -103
- data/ext/mathematical/lsmsvgtransformable.c +0 -106
- data/ext/mathematical/lsmsvgtransformable.h +0 -54
- data/ext/mathematical/lsmsvgtspanelement.c +0 -143
- data/ext/mathematical/lsmsvgtspanelement.h +0 -58
- data/ext/mathematical/lsmsvgtypes.h +0 -77
- data/ext/mathematical/lsmsvguseelement.c +0 -237
- data/ext/mathematical/lsmsvguseelement.h +0 -69
- data/ext/mathematical/lsmsvgview.c +0 -2400
- data/ext/mathematical/lsmsvgview.h +0 -168
- data/ext/mathematical/lsmtraits.c +0 -119
- data/ext/mathematical/lsmtraits.h +0 -49
- data/ext/mathematical/lsmtypes.h +0 -36
- data/ext/mathematical/lsmutils.c +0 -54
- data/ext/mathematical/lsmutils.h +0 -56
- data/ext/mathematical/mathematical.c +0 -122
- data/ext/mathematical/y.tab.c +0 -6179
- data/ext/mathematical/y.tab.h +0 -389
- data/script/bench +0 -21
- data/script/bootstrap +0 -9
- data/script/single_test +0 -7
- data/test/mathematical/basic_test.rb +0 -38
- data/test/mathematical/fixtures/after/brackets_display.html +0 -1
- data/test/mathematical/fixtures/after/dollar_sign_inline.html +0 -1
- data/test/mathematical/fixtures/after/equation_display.html +0 -1
- data/test/mathematical/fixtures/after/multiple_dollar_inline.html +0 -1
- data/test/mathematical/fixtures/after/parens_inline.html +0 -1
- data/test/mathematical/fixtures/before/brackets_display.text +0 -1
- data/test/mathematical/fixtures/before/dollar_sign_inline.text +0 -1
- data/test/mathematical/fixtures/before/equation_display.text +0 -1
- data/test/mathematical/fixtures/before/multiple_dollar_inline.text +0 -1
- data/test/mathematical/fixtures/before/parens_inline.text +0 -1
- data/test/mathematical/fixtures/performance/big_file.text +0 -1767
- data/test/mathematical/fixtures_test.rb +0 -31
- data/test/mathematical/performance_test.rb +0 -13
- data/test/test_helper.rb +0 -4
@@ -1,217 +0,0 @@
|
|
1
|
-
/* Lasem
|
2
|
-
*
|
3
|
-
* Copyright © 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
|
-
#ifndef LSM_SVG_STYLE_H
|
25
|
-
#define LSM_SVG_STYLE_H
|
26
|
-
|
27
|
-
#include <lsmsvgtraits.h>
|
28
|
-
#include <lsm.h>
|
29
|
-
|
30
|
-
G_BEGIN_DECLS
|
31
|
-
|
32
|
-
typedef struct {
|
33
|
-
LsmProperty base;
|
34
|
-
LsmSvgCompOp value;
|
35
|
-
} LsmSvgCompOpProperty;
|
36
|
-
|
37
|
-
typedef struct {
|
38
|
-
LsmProperty base;
|
39
|
-
double value;
|
40
|
-
} LsmSvgDoubleProperty;
|
41
|
-
|
42
|
-
typedef struct {
|
43
|
-
LsmProperty base;
|
44
|
-
LsmSvgEnableBackground value;
|
45
|
-
} LsmSvgEnableBackgroundProperty;
|
46
|
-
|
47
|
-
typedef struct {
|
48
|
-
LsmProperty base;
|
49
|
-
LsmSvgLength length;
|
50
|
-
} LsmSvgLengthProperty;
|
51
|
-
|
52
|
-
typedef struct {
|
53
|
-
LsmProperty base;
|
54
|
-
LsmSvgOverflow value;
|
55
|
-
} LsmSvgOverflowProperty;
|
56
|
-
|
57
|
-
typedef struct {
|
58
|
-
LsmProperty base;
|
59
|
-
LsmSvgPaint paint;
|
60
|
-
} LsmSvgPaintProperty;
|
61
|
-
|
62
|
-
typedef struct {
|
63
|
-
LsmProperty base;
|
64
|
-
LsmSvgColor value;
|
65
|
-
} LsmSvgColorProperty;
|
66
|
-
|
67
|
-
typedef struct {
|
68
|
-
LsmProperty base;
|
69
|
-
LsmSvgMatrix matrix;
|
70
|
-
} LsmSvgTransformProperty;
|
71
|
-
|
72
|
-
typedef struct {
|
73
|
-
LsmProperty base;
|
74
|
-
LsmSvgFillRule value;
|
75
|
-
} LsmSvgFillRuleProperty;
|
76
|
-
|
77
|
-
typedef struct {
|
78
|
-
LsmProperty base;
|
79
|
-
LsmSvgFontStretch value;
|
80
|
-
} LsmSvgFontStretchProperty;
|
81
|
-
|
82
|
-
typedef struct {
|
83
|
-
LsmProperty base;
|
84
|
-
LsmSvgFontStyle value;
|
85
|
-
} LsmSvgFontStyleProperty;
|
86
|
-
|
87
|
-
typedef struct {
|
88
|
-
LsmProperty base;
|
89
|
-
LsmSvgFontWeight value;
|
90
|
-
} LsmSvgFontWeightProperty;
|
91
|
-
|
92
|
-
typedef struct {
|
93
|
-
LsmProperty base;
|
94
|
-
LsmSvgLineJoin value;
|
95
|
-
} LsmSvgLineJoinProperty;
|
96
|
-
|
97
|
-
typedef struct {
|
98
|
-
LsmProperty base;
|
99
|
-
LsmSvgLineCap value;
|
100
|
-
} LsmSvgLineCapProperty;
|
101
|
-
|
102
|
-
typedef struct {
|
103
|
-
LsmProperty base;
|
104
|
-
LsmSvgDashArray value;
|
105
|
-
} LsmSvgDashArrayProperty;
|
106
|
-
|
107
|
-
typedef struct {
|
108
|
-
LsmProperty base;
|
109
|
-
LsmSvgTextAnchor value;
|
110
|
-
} LsmSvgTextAnchorProperty;
|
111
|
-
|
112
|
-
typedef struct {
|
113
|
-
LsmProperty base;
|
114
|
-
LsmSvgDisplay value;
|
115
|
-
} LsmSvgDisplayProperty;
|
116
|
-
|
117
|
-
typedef struct {
|
118
|
-
LsmProperty base;
|
119
|
-
LsmSvgVisibility value;
|
120
|
-
} LsmSvgVisibilityProperty;
|
121
|
-
|
122
|
-
typedef struct {
|
123
|
-
LsmProperty base;
|
124
|
-
LsmSvgWritingMode value;
|
125
|
-
} LsmSvgWritingModeProperty;
|
126
|
-
|
127
|
-
struct _LsmSvgStyle {
|
128
|
-
/* Not inherited */
|
129
|
-
|
130
|
-
LsmProperty * alignment_baseline;
|
131
|
-
LsmProperty * baseline_shift;
|
132
|
-
LsmProperty * clip;
|
133
|
-
LsmProperty * clip_path;
|
134
|
-
LsmSvgCompOpProperty * comp_op;
|
135
|
-
LsmProperty * dominant_baseline;
|
136
|
-
LsmSvgEnableBackgroundProperty *enable_background;
|
137
|
-
LsmProperty * filter;
|
138
|
-
LsmSvgColorProperty * flood_color;
|
139
|
-
LsmSvgDoubleProperty * flood_opacity;
|
140
|
-
LsmSvgColorProperty * lighting_color;
|
141
|
-
LsmProperty * mask;
|
142
|
-
LsmSvgDoubleProperty * opacity;
|
143
|
-
LsmSvgOverflowProperty * overflow;
|
144
|
-
LsmSvgColorProperty * stop_color;
|
145
|
-
LsmSvgDoubleProperty * stop_opacity;
|
146
|
-
LsmProperty * text_decoration;
|
147
|
-
LsmProperty * unicode_bidi;
|
148
|
-
LsmSvgPaintProperty * viewport_fill;
|
149
|
-
LsmSvgDoubleProperty * viewport_fill_opacity;
|
150
|
-
|
151
|
-
/* Inherited */
|
152
|
-
|
153
|
-
LsmSvgFillRuleProperty * clip_rule;
|
154
|
-
LsmSvgColorProperty * color;
|
155
|
-
LsmProperty * color_interpolation;
|
156
|
-
LsmProperty * color_interpolation_filters;
|
157
|
-
LsmProperty * color_profile;
|
158
|
-
LsmProperty * color_rendering;
|
159
|
-
LsmProperty * cursor;
|
160
|
-
LsmProperty * direction;
|
161
|
-
LsmSvgDisplayProperty * display;
|
162
|
-
LsmSvgPaintProperty * fill;
|
163
|
-
LsmSvgDoubleProperty * fill_opacity;
|
164
|
-
LsmSvgFillRuleProperty * fill_rule;
|
165
|
-
LsmProperty * font;
|
166
|
-
LsmProperty * font_family;
|
167
|
-
LsmSvgLengthProperty * font_size;
|
168
|
-
LsmProperty * font_size_adjust;
|
169
|
-
LsmSvgFontStretchProperty * font_stretch;
|
170
|
-
LsmSvgFontStyleProperty * font_style;
|
171
|
-
LsmProperty * font_variant;
|
172
|
-
LsmSvgFontWeightProperty * font_weight;
|
173
|
-
LsmProperty * glyph_orientation_horizontal;
|
174
|
-
LsmProperty * glyph_orientation_vertical;
|
175
|
-
LsmProperty * image_rendering;
|
176
|
-
LsmProperty * kerning;
|
177
|
-
LsmProperty * letter_spacing;
|
178
|
-
LsmProperty * marker;
|
179
|
-
LsmProperty * marker_end;
|
180
|
-
LsmProperty * marker_mid;
|
181
|
-
LsmProperty * marker_start;
|
182
|
-
LsmProperty * pointer_events;
|
183
|
-
LsmProperty * shape_rendering;
|
184
|
-
LsmSvgPaintProperty * stroke;
|
185
|
-
LsmSvgDashArrayProperty * stroke_dash_array;
|
186
|
-
LsmSvgLengthProperty * stroke_dash_offset;
|
187
|
-
LsmSvgLineCapProperty * stroke_line_cap;
|
188
|
-
LsmSvgLineJoinProperty * stroke_line_join;
|
189
|
-
LsmSvgDoubleProperty * stroke_miter_limit;
|
190
|
-
LsmSvgDoubleProperty * stroke_opacity;
|
191
|
-
LsmSvgLengthProperty * stroke_width;
|
192
|
-
LsmSvgTextAnchorProperty * text_anchor;
|
193
|
-
LsmProperty * text_rendering;
|
194
|
-
LsmSvgVisibilityProperty * visibility;
|
195
|
-
LsmProperty * word_spacing;
|
196
|
-
LsmSvgWritingModeProperty * writing_mode;
|
197
|
-
|
198
|
-
double font_size_px;
|
199
|
-
gboolean ignore_group_opacity;
|
200
|
-
};
|
201
|
-
|
202
|
-
void lsm_svg_property_bag_set_property (LsmPropertyBag *property_bag,
|
203
|
-
const char *name, const char *value);
|
204
|
-
const char * lsm_svg_property_bag_get_property (LsmPropertyBag *property_bag,
|
205
|
-
const char *name);
|
206
|
-
void lsm_svg_property_bag_clean (LsmPropertyBag *property_bag);
|
207
|
-
char * lsm_svg_property_bag_serialize (LsmPropertyBag *property_bag);
|
208
|
-
|
209
|
-
LsmSvgStyle * lsm_svg_style_new (void);
|
210
|
-
LsmSvgStyle * lsm_svg_style_ref (LsmSvgStyle *style);
|
211
|
-
void lsm_svg_style_unref (LsmSvgStyle *style);
|
212
|
-
LsmSvgStyle * lsm_svg_style_new_inherited (const LsmSvgStyle *parent_style,
|
213
|
-
LsmPropertyBag *property_bag);
|
214
|
-
|
215
|
-
G_END_DECLS
|
216
|
-
|
217
|
-
#endif
|
@@ -1,260 +0,0 @@
|
|
1
|
-
/* Lasem
|
2
|
-
*
|
3
|
-
* Copyright © 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 <lsmsvgsvgelement.h>
|
25
|
-
#include <lsmsvgstyle.h>
|
26
|
-
#include <lsmsvgview.h>
|
27
|
-
#include <lsmdebug.h>
|
28
|
-
#include <lsmsvgdocument.h>
|
29
|
-
#include <math.h>
|
30
|
-
#include <stdio.h>
|
31
|
-
|
32
|
-
static GObjectClass *parent_class;
|
33
|
-
|
34
|
-
/* GdomNode implementation */
|
35
|
-
|
36
|
-
static const char *
|
37
|
-
lsm_svg_svg_element_get_node_name (LsmDomNode *node)
|
38
|
-
{
|
39
|
-
return "svg";
|
40
|
-
}
|
41
|
-
|
42
|
-
/* LsmSvgElement implementation */
|
43
|
-
|
44
|
-
void
|
45
|
-
lsm_svg_svg_element_measure (LsmSvgSvgElement *self, LsmSvgView *view, double *width, double *height)
|
46
|
-
{
|
47
|
-
LsmSvgViewbox *svg_viewbox;
|
48
|
-
LsmBox viewport;
|
49
|
-
gboolean is_outermost_svg;
|
50
|
-
double resolution_ppi;
|
51
|
-
double svg_x;
|
52
|
-
double svg_y;
|
53
|
-
double svg_width;
|
54
|
-
double svg_height;
|
55
|
-
double font_size;
|
56
|
-
|
57
|
-
g_return_if_fail (LSM_IS_SVG_SVG_ELEMENT (self));
|
58
|
-
|
59
|
-
resolution_ppi = lsm_dom_view_get_resolution (LSM_DOM_VIEW (view));
|
60
|
-
viewport = lsm_dom_view_get_viewport_pixels (LSM_DOM_VIEW (view));
|
61
|
-
|
62
|
-
svg_viewbox = lsm_svg_viewbox_new (resolution_ppi, &viewport);
|
63
|
-
font_size = 10 * resolution_ppi / 72.0;
|
64
|
-
|
65
|
-
is_outermost_svg = LSM_IS_SVG_DOCUMENT (lsm_dom_node_get_parent_node (LSM_DOM_NODE (self)));
|
66
|
-
|
67
|
-
if (lsm_attribute_is_defined (&self->x.base) && !is_outermost_svg)
|
68
|
-
svg_x = lsm_svg_length_normalize (&self->x.length, svg_viewbox,
|
69
|
-
font_size, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
|
70
|
-
else
|
71
|
-
svg_x = viewport.x;
|
72
|
-
|
73
|
-
if (lsm_attribute_is_defined (&self->y.base) && !is_outermost_svg)
|
74
|
-
svg_y = lsm_svg_length_normalize (&self->y.length, svg_viewbox,
|
75
|
-
font_size, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
|
76
|
-
else
|
77
|
-
svg_y = viewport.y;
|
78
|
-
|
79
|
-
if (lsm_attribute_is_defined (&self->width.base))
|
80
|
-
svg_width = lsm_svg_length_normalize (&self->width.length, svg_viewbox,
|
81
|
-
font_size, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
|
82
|
-
else
|
83
|
-
svg_width = viewport.width;
|
84
|
-
|
85
|
-
if (lsm_attribute_is_defined (&self->height.base))
|
86
|
-
svg_height = lsm_svg_length_normalize (&self->height.length, svg_viewbox,
|
87
|
-
font_size, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
|
88
|
-
else
|
89
|
-
svg_height = viewport.height;
|
90
|
-
|
91
|
-
if (width != NULL)
|
92
|
-
*width = svg_width * 72.0 / resolution_ppi;
|
93
|
-
if (height != NULL)
|
94
|
-
*height = svg_height * 72.0 / resolution_ppi;
|
95
|
-
|
96
|
-
self->svg_box.x = svg_x;
|
97
|
-
self->svg_box.y = svg_y;
|
98
|
-
self->svg_box.width = svg_width;
|
99
|
-
self->svg_box.height = svg_height;
|
100
|
-
|
101
|
-
lsm_debug_measure ("[LsmSvgSvgElement::measure] Size = %g, %g, %g, %g",
|
102
|
-
svg_x, svg_y, svg_width, svg_height);
|
103
|
-
|
104
|
-
lsm_svg_viewbox_free (svg_viewbox);
|
105
|
-
}
|
106
|
-
|
107
|
-
/* LsmSvgGraphic implementation */
|
108
|
-
|
109
|
-
static void
|
110
|
-
_svg_element_render (LsmSvgElement *self, LsmSvgView *view)
|
111
|
-
{
|
112
|
-
LsmSvgSvgElement *svg = LSM_SVG_SVG_ELEMENT (self);
|
113
|
-
gboolean is_viewbox_defined;
|
114
|
-
gboolean is_outermost_svg;
|
115
|
-
LsmBox viewport;
|
116
|
-
|
117
|
-
is_outermost_svg = LSM_IS_SVG_DOCUMENT (lsm_dom_node_get_parent_node (LSM_DOM_NODE (self)));
|
118
|
-
|
119
|
-
if (is_outermost_svg) {
|
120
|
-
/* outermost svg - ignore x and y */
|
121
|
-
viewport.x = 0;
|
122
|
-
viewport.y = 0;
|
123
|
-
} else {
|
124
|
-
viewport.x = lsm_svg_view_normalize_length (view, &svg->x.length, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
|
125
|
-
viewport.y = lsm_svg_view_normalize_length (view, &svg->y.length, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
|
126
|
-
}
|
127
|
-
viewport.width = lsm_svg_view_normalize_length (view, &svg->width.length, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
|
128
|
-
viewport.height = lsm_svg_view_normalize_length (view, &svg->height.length, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
|
129
|
-
|
130
|
-
is_viewbox_defined = lsm_attribute_is_defined ((LsmAttribute *) &svg->viewbox);
|
131
|
-
|
132
|
-
if (is_viewbox_defined && (svg->viewbox.value.width == 0.0 ||
|
133
|
-
svg->viewbox.value.height == 0.0))
|
134
|
-
return;
|
135
|
-
|
136
|
-
if (viewport.width <= 0.0 || viewport.height <= 0.0)
|
137
|
-
return;
|
138
|
-
|
139
|
-
lsm_debug_render ("[LsmSvgSvgElement::render] viewport %g, %g, %g, %g",
|
140
|
-
viewport.x, viewport.y, viewport.width, viewport.height);
|
141
|
-
|
142
|
-
lsm_svg_view_show_viewport (view, &viewport);
|
143
|
-
|
144
|
-
lsm_svg_view_push_viewport (view, &viewport, is_viewbox_defined ? &svg->viewbox.value : NULL,
|
145
|
-
&svg->preserve_aspect_ratio.value, LSM_SVG_OVERFLOW_HIDDEN);
|
146
|
-
|
147
|
-
LSM_SVG_ELEMENT_CLASS (parent_class)->render (self, view);
|
148
|
-
|
149
|
-
lsm_svg_view_pop_viewport (view);
|
150
|
-
}
|
151
|
-
|
152
|
-
/* LsmSvgSvgElement implementation */
|
153
|
-
|
154
|
-
void
|
155
|
-
lsm_svg_svg_element_render (LsmSvgSvgElement *svg, LsmSvgView *view)
|
156
|
-
{
|
157
|
-
lsm_svg_view_push_viewport (view, &svg->svg_box, NULL, NULL, LSM_SVG_OVERFLOW_HIDDEN);
|
158
|
-
lsm_svg_element_render (LSM_SVG_ELEMENT (svg), view);
|
159
|
-
lsm_svg_view_pop_viewport (view);
|
160
|
-
}
|
161
|
-
|
162
|
-
LsmDomNode *
|
163
|
-
lsm_svg_svg_element_new (void)
|
164
|
-
{
|
165
|
-
return g_object_new (LSM_TYPE_SVG_SVG_ELEMENT, NULL);
|
166
|
-
}
|
167
|
-
|
168
|
-
static const LsmSvgLength x_y_default = { .value_unit = 0.0, .type = LSM_SVG_LENGTH_TYPE_PERCENTAGE};
|
169
|
-
static const LsmSvgLength width_height_default = { .value_unit = 100.0, .type = LSM_SVG_LENGTH_TYPE_PERCENTAGE};
|
170
|
-
static const LsmBox viewbox_default = {0.0, 0.0, 0.0, 0.0};
|
171
|
-
static const LsmSvgPreserveAspectRatio preserve_aspect_ratio_default = {
|
172
|
-
.defer = FALSE,
|
173
|
-
.align = LSM_SVG_ALIGN_X_MID_Y_MID,
|
174
|
-
.meet_or_slice = LSM_SVG_MEET_OR_SLICE_MEET
|
175
|
-
};
|
176
|
-
|
177
|
-
static void
|
178
|
-
lsm_svg_svg_element_init (LsmSvgSvgElement *self)
|
179
|
-
{
|
180
|
-
self->x.length = x_y_default;
|
181
|
-
self->y.length = x_y_default;
|
182
|
-
self->width.length = width_height_default;
|
183
|
-
self->height.length = width_height_default;
|
184
|
-
self->viewbox.value = viewbox_default;
|
185
|
-
self->preserve_aspect_ratio.value = preserve_aspect_ratio_default;
|
186
|
-
}
|
187
|
-
|
188
|
-
static void
|
189
|
-
lsm_svg_svg_element_finalize (GObject *object)
|
190
|
-
{
|
191
|
-
parent_class->finalize (object);
|
192
|
-
}
|
193
|
-
|
194
|
-
/* LsmSvgSvgElement class */
|
195
|
-
|
196
|
-
static const LsmAttributeInfos lsm_svg_svg_element_attribute_infos[] = {
|
197
|
-
{
|
198
|
-
.name = "x",
|
199
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, x),
|
200
|
-
.trait_class = &lsm_svg_length_trait_class,
|
201
|
-
.trait_default = &x_y_default
|
202
|
-
},
|
203
|
-
{
|
204
|
-
.name = "y",
|
205
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, y),
|
206
|
-
.trait_class = &lsm_svg_length_trait_class,
|
207
|
-
.trait_default = &x_y_default
|
208
|
-
},
|
209
|
-
{
|
210
|
-
.name = "width",
|
211
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, width),
|
212
|
-
.trait_class = &lsm_svg_length_trait_class,
|
213
|
-
.trait_default = &width_height_default
|
214
|
-
},
|
215
|
-
{
|
216
|
-
.name = "height",
|
217
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, height),
|
218
|
-
.trait_class = &lsm_svg_length_trait_class,
|
219
|
-
.trait_default = &width_height_default
|
220
|
-
},
|
221
|
-
{
|
222
|
-
.name = "viewBox",
|
223
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, viewbox),
|
224
|
-
.trait_class = &lsm_box_trait_class,
|
225
|
-
.trait_default = &viewbox_default
|
226
|
-
},
|
227
|
-
{
|
228
|
-
.name = "preserveAspectRatio",
|
229
|
-
.attribute_offset = offsetof (LsmSvgSvgElement, preserve_aspect_ratio),
|
230
|
-
.trait_class = &lsm_svg_preserve_aspect_ratio_trait_class,
|
231
|
-
.trait_default = &preserve_aspect_ratio_default
|
232
|
-
}
|
233
|
-
};
|
234
|
-
|
235
|
-
static void
|
236
|
-
lsm_svg_svg_element_class_init (LsmSvgSvgElementClass *s_svg_class)
|
237
|
-
{
|
238
|
-
GObjectClass *object_class = G_OBJECT_CLASS (s_svg_class);
|
239
|
-
LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (s_svg_class);
|
240
|
-
LsmSvgElementClass *s_element_class = LSM_SVG_ELEMENT_CLASS (s_svg_class);
|
241
|
-
|
242
|
-
parent_class = g_type_class_peek_parent (s_svg_class);
|
243
|
-
|
244
|
-
object_class->finalize = lsm_svg_svg_element_finalize;
|
245
|
-
|
246
|
-
d_node_class->get_node_name = lsm_svg_svg_element_get_node_name;
|
247
|
-
|
248
|
-
s_element_class->category =
|
249
|
-
LSM_SVG_ELEMENT_CATEGORY_CONTAINER |
|
250
|
-
LSM_SVG_ELEMENT_CATEGORY_STRUCTURAL;
|
251
|
-
|
252
|
-
s_element_class->render = _svg_element_render;
|
253
|
-
s_element_class->attribute_manager = lsm_attribute_manager_duplicate (s_element_class->attribute_manager);
|
254
|
-
|
255
|
-
lsm_attribute_manager_add_attributes (s_element_class->attribute_manager,
|
256
|
-
G_N_ELEMENTS (lsm_svg_svg_element_attribute_infos),
|
257
|
-
lsm_svg_svg_element_attribute_infos);
|
258
|
-
}
|
259
|
-
|
260
|
-
G_DEFINE_TYPE (LsmSvgSvgElement, lsm_svg_svg_element, LSM_TYPE_SVG_ELEMENT)
|