mathematical 0.0.1 → 0.0.2

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.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -4
  3. data/.gitmodules +0 -4
  4. data/README.md +108 -28
  5. data/Rakefile +3 -31
  6. data/ext/mathematical/README.itex2MML.md +11 -0
  7. data/ext/mathematical/README.lasem.md +11 -0
  8. data/ext/mathematical/extconf.rb +51 -0
  9. data/ext/mathematical/itex2MML.h +63 -0
  10. data/ext/mathematical/lasemrender.c +257 -0
  11. data/ext/mathematical/lex.yy.c +6548 -0
  12. data/ext/mathematical/lsm.c +30 -0
  13. data/ext/mathematical/lsm.h +36 -0
  14. data/ext/mathematical/lsmattributes.c +279 -0
  15. data/ext/mathematical/lsmattributes.h +75 -0
  16. data/ext/mathematical/lsmcairo.c +598 -0
  17. data/ext/mathematical/lsmcairo.h +51 -0
  18. data/ext/mathematical/lsmdebug.c +179 -0
  19. data/ext/mathematical/lsmdebug.h +76 -0
  20. data/ext/mathematical/lsmdom.h +43 -0
  21. data/ext/mathematical/lsmdomcharacterdata.c +114 -0
  22. data/ext/mathematical/lsmdomcharacterdata.h +59 -0
  23. data/ext/mathematical/lsmdomdocument.c +292 -0
  24. data/ext/mathematical/lsmdomdocument.h +82 -0
  25. data/ext/mathematical/lsmdomdocumentfragment.c +81 -0
  26. data/ext/mathematical/lsmdomdocumentfragment.h +55 -0
  27. data/ext/mathematical/lsmdomelement.c +148 -0
  28. data/ext/mathematical/lsmdomelement.h +62 -0
  29. data/ext/mathematical/lsmdomentities.c +2155 -0
  30. data/ext/mathematical/lsmdomentities.h +35 -0
  31. data/ext/mathematical/lsmdomenumtypes.c +99 -0
  32. data/ext/mathematical/lsmdomenumtypes.c.template +39 -0
  33. data/ext/mathematical/lsmdomenumtypes.h +26 -0
  34. data/ext/mathematical/lsmdomenumtypes.h.template +26 -0
  35. data/ext/mathematical/lsmdomimplementation.c +82 -0
  36. data/ext/mathematical/lsmdomimplementation.h +41 -0
  37. data/ext/mathematical/lsmdomnamednodemap.c +118 -0
  38. data/ext/mathematical/lsmdomnamednodemap.h +64 -0
  39. data/ext/mathematical/lsmdomnode.c +725 -0
  40. data/ext/mathematical/lsmdomnode.h +120 -0
  41. data/ext/mathematical/lsmdomnodelist.c +70 -0
  42. data/ext/mathematical/lsmdomnodelist.h +58 -0
  43. data/ext/mathematical/lsmdomparser.c +461 -0
  44. data/ext/mathematical/lsmdomparser.h +54 -0
  45. data/ext/mathematical/lsmdomtext.c +82 -0
  46. data/ext/mathematical/lsmdomtext.h +55 -0
  47. data/ext/mathematical/lsmdomtypes.h +44 -0
  48. data/ext/mathematical/lsmdomview.c +422 -0
  49. data/ext/mathematical/lsmdomview.h +94 -0
  50. data/ext/mathematical/lsmmathml.h +66 -0
  51. data/ext/mathematical/lsmmathmlactionelement.c +93 -0
  52. data/ext/mathematical/lsmmathmlactionelement.h +57 -0
  53. data/ext/mathematical/lsmmathmlaligngroupelement.c +102 -0
  54. data/ext/mathematical/lsmmathmlaligngroupelement.h +56 -0
  55. data/ext/mathematical/lsmmathmlalignmarkelement.c +102 -0
  56. data/ext/mathematical/lsmmathmlalignmarkelement.h +56 -0
  57. data/ext/mathematical/lsmmathmlattributes.c +197 -0
  58. data/ext/mathematical/lsmmathmlattributes.h +126 -0
  59. data/ext/mathematical/lsmmathmldocument.c +306 -0
  60. data/ext/mathematical/lsmmathmldocument.h +61 -0
  61. data/ext/mathematical/lsmmathmlelement.c +491 -0
  62. data/ext/mathematical/lsmmathmlelement.h +107 -0
  63. data/ext/mathematical/lsmmathmlenums.c +429 -0
  64. data/ext/mathematical/lsmmathmlenums.h +182 -0
  65. data/ext/mathematical/lsmmathmlenumtypes.c +666 -0
  66. data/ext/mathematical/lsmmathmlenumtypes.c.template +39 -0
  67. data/ext/mathematical/lsmmathmlenumtypes.h +90 -0
  68. data/ext/mathematical/lsmmathmlenumtypes.h.template +26 -0
  69. data/ext/mathematical/lsmmathmlerrorelement.c +58 -0
  70. data/ext/mathematical/lsmmathmlerrorelement.h +56 -0
  71. data/ext/mathematical/lsmmathmlfencedelement.c +178 -0
  72. data/ext/mathematical/lsmmathmlfencedelement.h +65 -0
  73. data/ext/mathematical/lsmmathmlfractionelement.c +253 -0
  74. data/ext/mathematical/lsmmathmlfractionelement.h +62 -0
  75. data/ext/mathematical/lsmmathmlglyphtableams.c +597 -0
  76. data/ext/mathematical/lsmmathmlglyphtableams.h +45 -0
  77. data/ext/mathematical/lsmmathmlitexelement.c +187 -0
  78. data/ext/mathematical/lsmmathmlitexelement.h +60 -0
  79. data/ext/mathematical/lsmmathmllayoututils.c +191 -0
  80. data/ext/mathematical/lsmmathmllayoututils.h +58 -0
  81. data/ext/mathematical/lsmmathmlmathelement.c +204 -0
  82. data/ext/mathematical/lsmmathmlmathelement.h +81 -0
  83. data/ext/mathematical/lsmmathmloperatordictionary.c +3332 -0
  84. data/ext/mathematical/lsmmathmloperatordictionary.h +54 -0
  85. data/ext/mathematical/lsmmathmloperatorelement.c +307 -0
  86. data/ext/mathematical/lsmmathmloperatorelement.h +73 -0
  87. data/ext/mathematical/lsmmathmlpaddedelement.c +58 -0
  88. data/ext/mathematical/lsmmathmlpaddedelement.h +56 -0
  89. data/ext/mathematical/lsmmathmlphantomelement.c +71 -0
  90. data/ext/mathematical/lsmmathmlphantomelement.h +56 -0
  91. data/ext/mathematical/lsmmathmlpresentationcontainer.c +43 -0
  92. data/ext/mathematical/lsmmathmlpresentationcontainer.h +54 -0
  93. data/ext/mathematical/lsmmathmlpresentationtoken.c +303 -0
  94. data/ext/mathematical/lsmmathmlpresentationtoken.h +83 -0
  95. data/ext/mathematical/lsmmathmlradicalelement.c +266 -0
  96. data/ext/mathematical/lsmmathmlradicalelement.h +71 -0
  97. data/ext/mathematical/lsmmathmlrowelement.c +58 -0
  98. data/ext/mathematical/lsmmathmlrowelement.h +56 -0
  99. data/ext/mathematical/lsmmathmlscriptelement.c +282 -0
  100. data/ext/mathematical/lsmmathmlscriptelement.h +78 -0
  101. data/ext/mathematical/lsmmathmlsemanticselement.c +82 -0
  102. data/ext/mathematical/lsmmathmlsemanticselement.h +56 -0
  103. data/ext/mathematical/lsmmathmlspaceelement.c +142 -0
  104. data/ext/mathematical/lsmmathmlspaceelement.h +60 -0
  105. data/ext/mathematical/lsmmathmlstringelement.c +123 -0
  106. data/ext/mathematical/lsmmathmlstringelement.h +58 -0
  107. data/ext/mathematical/lsmmathmlstyle.c +130 -0
  108. data/ext/mathematical/lsmmathmlstyle.h +81 -0
  109. data/ext/mathematical/lsmmathmlstyleelement.c +307 -0
  110. data/ext/mathematical/lsmmathmlstyleelement.h +87 -0
  111. data/ext/mathematical/lsmmathmltablecellelement.c +122 -0
  112. data/ext/mathematical/lsmmathmltablecellelement.h +62 -0
  113. data/ext/mathematical/lsmmathmltableelement.c +545 -0
  114. data/ext/mathematical/lsmmathmltableelement.h +78 -0
  115. data/ext/mathematical/lsmmathmltablerowelement.c +120 -0
  116. data/ext/mathematical/lsmmathmltablerowelement.h +64 -0
  117. data/ext/mathematical/lsmmathmltraits.c +819 -0
  118. data/ext/mathematical/lsmmathmltraits.h +119 -0
  119. data/ext/mathematical/lsmmathmltypes.h +66 -0
  120. data/ext/mathematical/lsmmathmlunderoverelement.c +485 -0
  121. data/ext/mathematical/lsmmathmlunderoverelement.h +82 -0
  122. data/ext/mathematical/lsmmathmlutils.c +170 -0
  123. data/ext/mathematical/lsmmathmlutils.h +50 -0
  124. data/ext/mathematical/lsmmathmlview.c +1048 -0
  125. data/ext/mathematical/lsmmathmlview.h +164 -0
  126. data/ext/mathematical/lsmproperties.c +418 -0
  127. data/ext/mathematical/lsmproperties.h +85 -0
  128. data/ext/mathematical/lsmstr.c +231 -0
  129. data/ext/mathematical/lsmstr.h +114 -0
  130. data/ext/mathematical/lsmsvg.h +67 -0
  131. data/ext/mathematical/lsmsvgaelement.c +73 -0
  132. data/ext/mathematical/lsmsvgaelement.h +55 -0
  133. data/ext/mathematical/lsmsvgattributes.h +113 -0
  134. data/ext/mathematical/lsmsvgcircleelement.c +153 -0
  135. data/ext/mathematical/lsmsvgcircleelement.h +59 -0
  136. data/ext/mathematical/lsmsvgclippathelement.c +134 -0
  137. data/ext/mathematical/lsmsvgclippathelement.h +59 -0
  138. data/ext/mathematical/lsmsvgcolors.c +212 -0
  139. data/ext/mathematical/lsmsvgcolors.h +39 -0
  140. data/ext/mathematical/lsmsvgdefselement.c +74 -0
  141. data/ext/mathematical/lsmsvgdefselement.h +55 -0
  142. data/ext/mathematical/lsmsvgdocument.c +230 -0
  143. data/ext/mathematical/lsmsvgdocument.h +58 -0
  144. data/ext/mathematical/lsmsvgelement.c +367 -0
  145. data/ext/mathematical/lsmsvgelement.h +81 -0
  146. data/ext/mathematical/lsmsvgellipseelement.c +158 -0
  147. data/ext/mathematical/lsmsvgellipseelement.h +60 -0
  148. data/ext/mathematical/lsmsvgenums.c +544 -0
  149. data/ext/mathematical/lsmsvgenums.h +357 -0
  150. data/ext/mathematical/lsmsvgenumtypes.c +1083 -0
  151. data/ext/mathematical/lsmsvgenumtypes.c.template +39 -0
  152. data/ext/mathematical/lsmsvgenumtypes.h +111 -0
  153. data/ext/mathematical/lsmsvgenumtypes.h.template +26 -0
  154. data/ext/mathematical/lsmsvgfilterblend.c +105 -0
  155. data/ext/mathematical/lsmsvgfilterblend.h +58 -0
  156. data/ext/mathematical/lsmsvgfiltercomposite.c +109 -0
  157. data/ext/mathematical/lsmsvgfiltercomposite.h +58 -0
  158. data/ext/mathematical/lsmsvgfilterelement.c +266 -0
  159. data/ext/mathematical/lsmsvgfilterelement.h +66 -0
  160. data/ext/mathematical/lsmsvgfilterflood.c +86 -0
  161. data/ext/mathematical/lsmsvgfilterflood.h +55 -0
  162. data/ext/mathematical/lsmsvgfiltergaussianblur.c +114 -0
  163. data/ext/mathematical/lsmsvgfiltergaussianblur.h +57 -0
  164. data/ext/mathematical/lsmsvgfiltermerge.c +98 -0
  165. data/ext/mathematical/lsmsvgfiltermerge.h +55 -0
  166. data/ext/mathematical/lsmsvgfiltermergenode.c +87 -0
  167. data/ext/mathematical/lsmsvgfiltermergenode.h +57 -0
  168. data/ext/mathematical/lsmsvgfilteroffset.c +112 -0
  169. data/ext/mathematical/lsmsvgfilteroffset.h +58 -0
  170. data/ext/mathematical/lsmsvgfilterprimitive.c +168 -0
  171. data/ext/mathematical/lsmsvgfilterprimitive.h +66 -0
  172. data/ext/mathematical/lsmsvgfilterspecularlighting.c +127 -0
  173. data/ext/mathematical/lsmsvgfilterspecularlighting.h +60 -0
  174. data/ext/mathematical/lsmsvgfiltersurface.c +455 -0
  175. data/ext/mathematical/lsmsvgfiltersurface.h +66 -0
  176. data/ext/mathematical/lsmsvgfiltertile.c +102 -0
  177. data/ext/mathematical/lsmsvgfiltertile.h +57 -0
  178. data/ext/mathematical/lsmsvggelement.c +73 -0
  179. data/ext/mathematical/lsmsvggelement.h +55 -0
  180. data/ext/mathematical/lsmsvggradientelement.c +151 -0
  181. data/ext/mathematical/lsmsvggradientelement.h +68 -0
  182. data/ext/mathematical/lsmsvgimageelement.c +261 -0
  183. data/ext/mathematical/lsmsvgimageelement.h +67 -0
  184. data/ext/mathematical/lsmsvglength.c +93 -0
  185. data/ext/mathematical/lsmsvglength.h +59 -0
  186. data/ext/mathematical/lsmsvglineargradientelement.c +271 -0
  187. data/ext/mathematical/lsmsvglineargradientelement.h +60 -0
  188. data/ext/mathematical/lsmsvglineelement.c +153 -0
  189. data/ext/mathematical/lsmsvglineelement.h +60 -0
  190. data/ext/mathematical/lsmsvgmarkerelement.c +266 -0
  191. data/ext/mathematical/lsmsvgmarkerelement.h +74 -0
  192. data/ext/mathematical/lsmsvgmaskelement.c +232 -0
  193. data/ext/mathematical/lsmsvgmaskelement.h +64 -0
  194. data/ext/mathematical/lsmsvgmatrix.c +205 -0
  195. data/ext/mathematical/lsmsvgmatrix.h +59 -0
  196. data/ext/mathematical/lsmsvgpathelement.c +115 -0
  197. data/ext/mathematical/lsmsvgpathelement.h +59 -0
  198. data/ext/mathematical/lsmsvgpatternelement.c +398 -0
  199. data/ext/mathematical/lsmsvgpatternelement.h +69 -0
  200. data/ext/mathematical/lsmsvgpolygonelement.c +106 -0
  201. data/ext/mathematical/lsmsvgpolygonelement.h +57 -0
  202. data/ext/mathematical/lsmsvgpolylineelement.c +106 -0
  203. data/ext/mathematical/lsmsvgpolylineelement.h +57 -0
  204. data/ext/mathematical/lsmsvgradialgradientelement.c +323 -0
  205. data/ext/mathematical/lsmsvgradialgradientelement.h +61 -0
  206. data/ext/mathematical/lsmsvgrectelement.c +184 -0
  207. data/ext/mathematical/lsmsvgrectelement.h +62 -0
  208. data/ext/mathematical/lsmsvgstopelement.c +106 -0
  209. data/ext/mathematical/lsmsvgstopelement.h +57 -0
  210. data/ext/mathematical/lsmsvgstyle.c +558 -0
  211. data/ext/mathematical/lsmsvgstyle.h +217 -0
  212. data/ext/mathematical/lsmsvgsvgelement.c +260 -0
  213. data/ext/mathematical/lsmsvgsvgelement.h +71 -0
  214. data/ext/mathematical/lsmsvgswitchelement.c +103 -0
  215. data/ext/mathematical/lsmsvgswitchelement.h +55 -0
  216. data/ext/mathematical/lsmsvgsymbolelement.c +74 -0
  217. data/ext/mathematical/lsmsvgsymbolelement.h +55 -0
  218. data/ext/mathematical/lsmsvgtextelement.c +170 -0
  219. data/ext/mathematical/lsmsvgtextelement.h +58 -0
  220. data/ext/mathematical/lsmsvgtraits.c +1158 -0
  221. data/ext/mathematical/lsmsvgtraits.h +103 -0
  222. data/ext/mathematical/lsmsvgtransformable.c +106 -0
  223. data/ext/mathematical/lsmsvgtransformable.h +54 -0
  224. data/ext/mathematical/lsmsvgtspanelement.c +143 -0
  225. data/ext/mathematical/lsmsvgtspanelement.h +58 -0
  226. data/ext/mathematical/lsmsvgtypes.h +77 -0
  227. data/ext/mathematical/lsmsvguseelement.c +237 -0
  228. data/ext/mathematical/lsmsvguseelement.h +69 -0
  229. data/ext/mathematical/lsmsvgview.c +2400 -0
  230. data/ext/mathematical/lsmsvgview.h +168 -0
  231. data/ext/mathematical/lsmtraits.c +119 -0
  232. data/ext/mathematical/lsmtraits.h +49 -0
  233. data/ext/mathematical/lsmtypes.h +36 -0
  234. data/ext/mathematical/lsmutils.c +54 -0
  235. data/ext/mathematical/lsmutils.h +56 -0
  236. data/ext/mathematical/mathematical.c +122 -0
  237. data/ext/mathematical/y.tab.c +6179 -0
  238. data/ext/mathematical/y.tab.h +389 -0
  239. data/lib/mathematical.rb +7 -3
  240. data/lib/mathematical/parser.rb +1 -1
  241. data/lib/mathematical/render.rb +51 -77
  242. data/lib/mathematical/version.rb +1 -1
  243. data/mathematical.gemspec +5 -3
  244. data/script/bench +21 -0
  245. data/script/single_test +7 -0
  246. data/test/mathematical/basic_test.rb +30 -1
  247. data/test/mathematical/fixtures/after/brackets_display.html +1 -0
  248. data/test/mathematical/fixtures/after/dollar_sign_inline.html +1 -0
  249. data/test/mathematical/fixtures/after/equation_display.html +1 -0
  250. data/test/mathematical/fixtures/after/multiple_dollar_inline.html +1 -0
  251. data/test/mathematical/fixtures/after/parens_inline.html +1 -0
  252. data/test/mathematical/fixtures/before/brackets_display.text +1 -0
  253. data/test/mathematical/fixtures/before/{basic.text → dollar_sign_inline.text} +0 -0
  254. data/test/mathematical/fixtures/before/equation_display.text +1 -0
  255. data/test/mathematical/fixtures/before/multiple_dollar_inline.text +1 -0
  256. data/test/mathematical/fixtures/before/parens_inline.text +1 -0
  257. data/test/mathematical/fixtures/performance/big_file.text +1767 -0
  258. data/test/mathematical/performance_test.rb +13 -0
  259. data/test/test_helper.rb +1 -0
  260. metadata +303 -18
  261. data/test/mathematical/fixtures/after/basic.html +0 -1
@@ -0,0 +1,39 @@
1
+ /*** BEGIN file-header ***/
2
+ #include "lsmsvgenumtypes.h"
3
+
4
+ /*** END file-header ***/
5
+
6
+ /*** BEGIN file-production ***/
7
+ /* enumerations from "@filename@" */
8
+ #include "@filename@"
9
+
10
+ /*** END file-production ***/
11
+
12
+ /*** BEGIN value-header ***/
13
+ GType
14
+ @enum_name@_get_type (void)
15
+ {
16
+ static GType the_type = 0;
17
+
18
+ if (the_type == 0)
19
+ {
20
+ static const G@Type@Value values[] = {
21
+ /*** END value-header ***/
22
+
23
+ /*** BEGIN value-production ***/
24
+ { @VALUENAME@,
25
+ "@VALUENAME@",
26
+ "@valuenick@" },
27
+ /*** END value-production ***/
28
+
29
+ /*** BEGIN value-tail ***/
30
+ { 0, NULL, NULL }
31
+ };
32
+ the_type = g_@type@_register_static (
33
+ g_intern_static_string ("@EnumName@"),
34
+ values);
35
+ }
36
+ return the_type;
37
+ }
38
+
39
+ /*** END value-tail ***/
@@ -0,0 +1,111 @@
1
+
2
+ /* Generated data (by glib-mkenums) */
3
+
4
+ #ifndef LSM_SVG_ENUM_TYPES_H
5
+ #define LSM_SVG_ENUM_TYPES_H
6
+
7
+ #include <glib-object.h>
8
+
9
+ G_BEGIN_DECLS
10
+
11
+ /* Enumerations from "lsmsvgenums.h" */
12
+
13
+ #define LSM_TYPE_SVG_ANGLE_TYPE (lsm_svg_angle_type_get_type())
14
+ GType lsm_svg_angle_type_get_type (void) G_GNUC_CONST;
15
+
16
+ #define LSM_TYPE_SVG_BLENDING_MODE (lsm_svg_blending_mode_get_type())
17
+ GType lsm_svg_blending_mode_get_type (void) G_GNUC_CONST;
18
+
19
+ #define LSM_TYPE_SVG_ENABLE_BACKGROUND (lsm_svg_enable_background_get_type())
20
+ GType lsm_svg_enable_background_get_type (void) G_GNUC_CONST;
21
+
22
+ #define LSM_TYPE_SVG_PAINT_TYPE (lsm_svg_paint_type_get_type())
23
+ GType lsm_svg_paint_type_get_type (void) G_GNUC_CONST;
24
+
25
+ #define LSM_TYPE_SVG_LENGTH_DIRECTION (lsm_svg_length_direction_get_type())
26
+ GType lsm_svg_length_direction_get_type (void) G_GNUC_CONST;
27
+
28
+ #define LSM_TYPE_SVG_LENGTH_TYPE (lsm_svg_length_type_get_type())
29
+ GType lsm_svg_length_type_get_type (void) G_GNUC_CONST;
30
+
31
+ #define LSM_TYPE_SVG_FILL_RULE (lsm_svg_fill_rule_get_type())
32
+ GType lsm_svg_fill_rule_get_type (void) G_GNUC_CONST;
33
+
34
+ #define LSM_TYPE_SVG_LINE_JOIN (lsm_svg_line_join_get_type())
35
+ GType lsm_svg_line_join_get_type (void) G_GNUC_CONST;
36
+
37
+ #define LSM_TYPE_SVG_LINE_CAP (lsm_svg_line_cap_get_type())
38
+ GType lsm_svg_line_cap_get_type (void) G_GNUC_CONST;
39
+
40
+ #define LSM_TYPE_SVG_TRANSFORM_TYPE (lsm_svg_transform_type_get_type())
41
+ GType lsm_svg_transform_type_get_type (void) G_GNUC_CONST;
42
+
43
+ #define LSM_TYPE_SVG_OVERFLOW (lsm_svg_overflow_get_type())
44
+ GType lsm_svg_overflow_get_type (void) G_GNUC_CONST;
45
+
46
+ #define LSM_TYPE_SVG_PATTERN_UNITS (lsm_svg_pattern_units_get_type())
47
+ GType lsm_svg_pattern_units_get_type (void) G_GNUC_CONST;
48
+
49
+ #define LSM_TYPE_SVG_MARKER_UNITS (lsm_svg_marker_units_get_type())
50
+ GType lsm_svg_marker_units_get_type (void) G_GNUC_CONST;
51
+
52
+ #define LSM_TYPE_SVG_SPREAD_METHOD (lsm_svg_spread_method_get_type())
53
+ GType lsm_svg_spread_method_get_type (void) G_GNUC_CONST;
54
+
55
+ #define LSM_TYPE_SVG_ALIGN (lsm_svg_align_get_type())
56
+ GType lsm_svg_align_get_type (void) G_GNUC_CONST;
57
+
58
+ #define LSM_TYPE_SVG_MEET_OR_SLICE (lsm_svg_meet_or_slice_get_type())
59
+ GType lsm_svg_meet_or_slice_get_type (void) G_GNUC_CONST;
60
+
61
+ #define LSM_TYPE_SVG_COMP_OP (lsm_svg_comp_op_get_type())
62
+ GType lsm_svg_comp_op_get_type (void) G_GNUC_CONST;
63
+
64
+ #define LSM_TYPE_SVG_FONT_STRETCH (lsm_svg_font_stretch_get_type())
65
+ GType lsm_svg_font_stretch_get_type (void) G_GNUC_CONST;
66
+
67
+ #define LSM_TYPE_SVG_FONT_STYLE (lsm_svg_font_style_get_type())
68
+ GType lsm_svg_font_style_get_type (void) G_GNUC_CONST;
69
+
70
+ #define LSM_TYPE_SVG_FONT_WEIGHT (lsm_svg_font_weight_get_type())
71
+ GType lsm_svg_font_weight_get_type (void) G_GNUC_CONST;
72
+
73
+ #define LSM_TYPE_SVG_TEXT_ANCHOR (lsm_svg_text_anchor_get_type())
74
+ GType lsm_svg_text_anchor_get_type (void) G_GNUC_CONST;
75
+
76
+ #define LSM_TYPE_SVG_FILTER_INPUT (lsm_svg_filter_input_get_type())
77
+ GType lsm_svg_filter_input_get_type (void) G_GNUC_CONST;
78
+
79
+ #define LSM_TYPE_SVG_DISPLAY (lsm_svg_display_get_type())
80
+ GType lsm_svg_display_get_type (void) G_GNUC_CONST;
81
+
82
+ #define LSM_TYPE_SVG_VISIBILITY (lsm_svg_visibility_get_type())
83
+ GType lsm_svg_visibility_get_type (void) G_GNUC_CONST;
84
+
85
+ #define LSM_TYPE_SVG_ELEMENT_CATEGORY (lsm_svg_element_category_get_type())
86
+ GType lsm_svg_element_category_get_type (void) G_GNUC_CONST;
87
+
88
+ #define LSM_TYPE_SVG_WRITING_MODE (lsm_svg_writing_mode_get_type())
89
+ GType lsm_svg_writing_mode_get_type (void) G_GNUC_CONST;
90
+
91
+ /* Enumerations from "lsmsvgview.h" */
92
+
93
+ #define LSM_TYPE_SVG_VIEW_SURFACE_TYPE (lsm_svg_view_surface_type_get_type())
94
+ GType lsm_svg_view_surface_type_get_type (void) G_GNUC_CONST;
95
+
96
+ /* Enumerations from "lsmsvgmatrix.h" */
97
+
98
+ #define LSM_TYPE_SVG_MATRIX_FLAGS (lsm_svg_matrix_flags_get_type())
99
+ GType lsm_svg_matrix_flags_get_type (void) G_GNUC_CONST;
100
+
101
+ /* Enumerations from "lsmsvguseelement.h" */
102
+
103
+ #define LSM_TYPE_SVG_USE_ELEMENT_FLAGS (lsm_svg_use_element_flags_get_type())
104
+ GType lsm_svg_use_element_flags_get_type (void) G_GNUC_CONST;
105
+
106
+ G_END_DECLS
107
+
108
+ #endif /* LSM_SVG_ENUM_TYPES_H */
109
+
110
+ /* Generated data ends here */
111
+
@@ -0,0 +1,26 @@
1
+ /*** BEGIN file-header ***/
2
+ #ifndef LSM_SVG_ENUM_TYPES_H
3
+ #define LSM_SVG_ENUM_TYPES_H
4
+
5
+ #include <glib-object.h>
6
+
7
+ G_BEGIN_DECLS
8
+
9
+ /*** END file-header ***/
10
+
11
+ /*** BEGIN file-production ***/
12
+ /* Enumerations from "@filename@" */
13
+
14
+ /*** END file-production ***/
15
+
16
+ /*** BEGIN enumeration-production ***/
17
+ #define LSM_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
18
+ GType @enum_name@_get_type (void) G_GNUC_CONST;
19
+
20
+ /*** END enumeration-production ***/
21
+
22
+ /*** BEGIN file-tail ***/
23
+ G_END_DECLS
24
+
25
+ #endif /* LSM_SVG_ENUM_TYPES_H */
26
+ /*** END file-tail ***/
@@ -0,0 +1,105 @@
1
+ /* Lasem
2
+ *
3
+ * Copyright © 2012 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 <lsmsvgfilterblend.h>
25
+ #include <lsmsvgview.h>
26
+
27
+ static GObjectClass *parent_class;
28
+
29
+ /* GdomNode implementation */
30
+
31
+ static const char *
32
+ lsm_svg_filter_blend_get_node_name (LsmDomNode *node)
33
+ {
34
+ return "feBlend";
35
+ }
36
+
37
+ /* LsmSvgElement implementation */
38
+
39
+ static void
40
+ lsm_svg_filter_blend_apply (LsmSvgFilterPrimitive *self, LsmSvgView *view,
41
+ const char *input, const char *output, const LsmBox *subregion)
42
+ {
43
+ LsmSvgFilterBlend *blend = LSM_SVG_FILTER_BLEND (self);
44
+
45
+ lsm_svg_view_apply_blend (view, input, blend->in2.value, output, subregion, blend->mode.value);
46
+ }
47
+
48
+ /* LsmSvgFilterBlend implementation */
49
+
50
+ LsmDomNode *
51
+ lsm_svg_filter_blend_new (void)
52
+ {
53
+ return g_object_new (LSM_TYPE_SVG_FILTER_BLEND, NULL);
54
+ }
55
+
56
+ static void
57
+ lsm_svg_filter_blend_init (LsmSvgFilterBlend *self)
58
+ {
59
+ }
60
+
61
+ static void
62
+ lsm_svg_filter_blend_finalize (GObject *object)
63
+ {
64
+ parent_class->finalize (object);
65
+ }
66
+
67
+ /* LsmSvgFilterBlend class */
68
+
69
+ static const LsmAttributeInfos lsm_svg_filter_blend_attribute_infos[] = {
70
+ {
71
+ .name = "in2",
72
+ .attribute_offset = offsetof (LsmSvgFilterBlend, in2),
73
+ .trait_class = &lsm_null_trait_class
74
+ },
75
+ {
76
+ .name = "mode",
77
+ .attribute_offset = offsetof (LsmSvgFilterBlend, mode),
78
+ .trait_class = &lsm_svg_blending_mode_trait_class
79
+ }
80
+ };
81
+
82
+ static void
83
+ lsm_svg_filter_blend_class_init (LsmSvgFilterBlendClass *klass)
84
+ {
85
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
86
+ LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (klass);
87
+ LsmSvgElementClass *s_element_class = LSM_SVG_ELEMENT_CLASS (klass);
88
+ LsmSvgFilterPrimitiveClass *f_primitive_class = LSM_SVG_FILTER_PRIMITIVE_CLASS (klass);
89
+
90
+ parent_class = g_type_class_peek_parent (klass);
91
+
92
+ object_class->finalize = lsm_svg_filter_blend_finalize;
93
+
94
+ d_node_class->get_node_name = lsm_svg_filter_blend_get_node_name;
95
+
96
+ s_element_class->attribute_manager = lsm_attribute_manager_duplicate (s_element_class->attribute_manager);
97
+
98
+ lsm_attribute_manager_add_attributes (s_element_class->attribute_manager,
99
+ G_N_ELEMENTS (lsm_svg_filter_blend_attribute_infos),
100
+ lsm_svg_filter_blend_attribute_infos);
101
+
102
+ f_primitive_class->apply = lsm_svg_filter_blend_apply;
103
+ }
104
+
105
+ G_DEFINE_TYPE (LsmSvgFilterBlend, lsm_svg_filter_blend, LSM_TYPE_SVG_FILTER_PRIMITIVE)
@@ -0,0 +1,58 @@
1
+ /* Lasem
2
+ *
3
+ * Copyright © 2012 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_FILTER_BLEND_H
25
+ #define LSM_SVG_FILTER_BLEND_H
26
+
27
+ #include <lsmsvgtypes.h>
28
+ #include <lsmsvgfilterprimitive.h>
29
+
30
+ G_BEGIN_DECLS
31
+
32
+ #define LSM_TYPE_SVG_FILTER_BLEND (lsm_svg_filter_blend_get_type ())
33
+ #define LSM_SVG_FILTER_BLEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_SVG_FILTER_BLEND, LsmSvgFilterBlend))
34
+ #define LSM_SVG_FILTER_BLEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_SVG_FILTER_BLEND, LsmSvgFilterBlendClass))
35
+ #define LSM_IS_SVG_FILTER_BLEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_SVG_FILTER_BLEND))
36
+ #define LSM_IS_SVG_FILTER_BLEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_SVG_FILTER_BLEND))
37
+ #define LSM_SVG_FILTER_BLEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_SVG_FILTER_BLEND, LsmSvgFilterBlendClass))
38
+
39
+ typedef struct _LsmSvgFilterBlendClass LsmSvgFilterBlendClass;
40
+
41
+ struct _LsmSvgFilterBlend {
42
+ LsmSvgFilterPrimitive base;
43
+
44
+ LsmAttribute in2;
45
+ LsmSvgBlendingModeAttribute mode;
46
+ };
47
+
48
+ struct _LsmSvgFilterBlendClass {
49
+ LsmSvgFilterPrimitiveClass element_class;
50
+ };
51
+
52
+ GType lsm_svg_filter_blend_get_type (void);
53
+
54
+ LsmDomNode * lsm_svg_filter_blend_new (void);
55
+
56
+ G_END_DECLS
57
+
58
+ #endif
@@ -0,0 +1,109 @@
1
+ /* Lasem
2
+ *
3
+ * Copyright © 2012 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 <lsmsvgfiltercomposite.h>
25
+ #include <lsmsvgview.h>
26
+
27
+ static GObjectClass *parent_class;
28
+
29
+ /* GdomNode implementation */
30
+
31
+ static const char *
32
+ lsm_svg_filter_composite_get_node_name (LsmDomNode *node)
33
+ {
34
+ return "feComposite";
35
+ }
36
+
37
+ /* LsmSvgElement implementation */
38
+
39
+ static void
40
+ lsm_svg_filter_composite_apply (LsmSvgFilterPrimitive *self, LsmSvgView *view,
41
+ const char *input, const char *output, const LsmBox *subregion)
42
+ {
43
+ LsmSvgFilterComposite *composite = LSM_SVG_FILTER_COMPOSITE (self);
44
+
45
+ lsm_svg_view_apply_blend (view, input, composite->in2.value, output, subregion, composite->op.value);
46
+ }
47
+
48
+ /* LsmSvgFilterComposite implementation */
49
+
50
+ static LsmSvgBlendingMode op_default = LSM_SVG_BLENDING_MODE_OVER;
51
+
52
+ LsmDomNode *
53
+ lsm_svg_filter_composite_new (void)
54
+ {
55
+ return g_object_new (LSM_TYPE_SVG_FILTER_COMPOSITE, NULL);
56
+ }
57
+
58
+ static void
59
+ lsm_svg_filter_composite_init (LsmSvgFilterComposite *self)
60
+ {
61
+ self->op.value = op_default;
62
+ }
63
+
64
+ static void
65
+ lsm_svg_filter_composite_finalize (GObject *object)
66
+ {
67
+ parent_class->finalize (object);
68
+ }
69
+
70
+ /* LsmSvgFilterComposite class */
71
+
72
+ static const LsmAttributeInfos lsm_svg_filter_composite_attribute_infos[] = {
73
+ {
74
+ .name = "in2",
75
+ .attribute_offset = offsetof (LsmSvgFilterComposite, in2),
76
+ .trait_class = &lsm_null_trait_class
77
+ },
78
+ {
79
+ .name = "operator",
80
+ .attribute_offset = offsetof (LsmSvgFilterComposite, op),
81
+ .trait_class = &lsm_svg_blending_mode_trait_class,
82
+ .trait_default = &op_default
83
+ }
84
+ };
85
+
86
+ static void
87
+ lsm_svg_filter_composite_class_init (LsmSvgFilterCompositeClass *klass)
88
+ {
89
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
90
+ LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (klass);
91
+ LsmSvgElementClass *s_element_class = LSM_SVG_ELEMENT_CLASS (klass);
92
+ LsmSvgFilterPrimitiveClass *f_primitive_class = LSM_SVG_FILTER_PRIMITIVE_CLASS (klass);
93
+
94
+ parent_class = g_type_class_peek_parent (klass);
95
+
96
+ object_class->finalize = lsm_svg_filter_composite_finalize;
97
+
98
+ d_node_class->get_node_name = lsm_svg_filter_composite_get_node_name;
99
+
100
+ s_element_class->attribute_manager = lsm_attribute_manager_duplicate (s_element_class->attribute_manager);
101
+
102
+ lsm_attribute_manager_add_attributes (s_element_class->attribute_manager,
103
+ G_N_ELEMENTS (lsm_svg_filter_composite_attribute_infos),
104
+ lsm_svg_filter_composite_attribute_infos);
105
+
106
+ f_primitive_class->apply = lsm_svg_filter_composite_apply;
107
+ }
108
+
109
+ G_DEFINE_TYPE (LsmSvgFilterComposite, lsm_svg_filter_composite, LSM_TYPE_SVG_FILTER_PRIMITIVE)