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.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -10
  3. data/Rakefile +42 -3
  4. data/lib/mathematical.rb +5 -4
  5. data/lib/mathematical/mathematical.bundle +0 -0
  6. data/lib/mathematical/render.rb +6 -5
  7. data/lib/mathematical/version.rb +1 -1
  8. data/mathematical.gemspec +5 -5
  9. metadata +14 -296
  10. data/.gitignore +0 -24
  11. data/.gitmodules +0 -0
  12. data/Gemfile +0 -4
  13. data/ext/mathematical/README.itex2MML.md +0 -11
  14. data/ext/mathematical/README.lasem.md +0 -11
  15. data/ext/mathematical/extconf.rb +0 -51
  16. data/ext/mathematical/itex2MML.h +0 -63
  17. data/ext/mathematical/lasemrender.c +0 -257
  18. data/ext/mathematical/lex.yy.c +0 -6548
  19. data/ext/mathematical/lsm.c +0 -30
  20. data/ext/mathematical/lsm.h +0 -36
  21. data/ext/mathematical/lsmattributes.c +0 -279
  22. data/ext/mathematical/lsmattributes.h +0 -75
  23. data/ext/mathematical/lsmcairo.c +0 -598
  24. data/ext/mathematical/lsmcairo.h +0 -51
  25. data/ext/mathematical/lsmdebug.c +0 -179
  26. data/ext/mathematical/lsmdebug.h +0 -76
  27. data/ext/mathematical/lsmdom.h +0 -43
  28. data/ext/mathematical/lsmdomcharacterdata.c +0 -114
  29. data/ext/mathematical/lsmdomcharacterdata.h +0 -59
  30. data/ext/mathematical/lsmdomdocument.c +0 -292
  31. data/ext/mathematical/lsmdomdocument.h +0 -82
  32. data/ext/mathematical/lsmdomdocumentfragment.c +0 -81
  33. data/ext/mathematical/lsmdomdocumentfragment.h +0 -55
  34. data/ext/mathematical/lsmdomelement.c +0 -148
  35. data/ext/mathematical/lsmdomelement.h +0 -62
  36. data/ext/mathematical/lsmdomentities.c +0 -2155
  37. data/ext/mathematical/lsmdomentities.h +0 -35
  38. data/ext/mathematical/lsmdomenumtypes.c +0 -99
  39. data/ext/mathematical/lsmdomenumtypes.c.template +0 -39
  40. data/ext/mathematical/lsmdomenumtypes.h +0 -26
  41. data/ext/mathematical/lsmdomenumtypes.h.template +0 -26
  42. data/ext/mathematical/lsmdomimplementation.c +0 -82
  43. data/ext/mathematical/lsmdomimplementation.h +0 -41
  44. data/ext/mathematical/lsmdomnamednodemap.c +0 -118
  45. data/ext/mathematical/lsmdomnamednodemap.h +0 -64
  46. data/ext/mathematical/lsmdomnode.c +0 -725
  47. data/ext/mathematical/lsmdomnode.h +0 -120
  48. data/ext/mathematical/lsmdomnodelist.c +0 -70
  49. data/ext/mathematical/lsmdomnodelist.h +0 -58
  50. data/ext/mathematical/lsmdomparser.c +0 -461
  51. data/ext/mathematical/lsmdomparser.h +0 -54
  52. data/ext/mathematical/lsmdomtext.c +0 -82
  53. data/ext/mathematical/lsmdomtext.h +0 -55
  54. data/ext/mathematical/lsmdomtypes.h +0 -44
  55. data/ext/mathematical/lsmdomview.c +0 -422
  56. data/ext/mathematical/lsmdomview.h +0 -94
  57. data/ext/mathematical/lsmmathml.h +0 -66
  58. data/ext/mathematical/lsmmathmlactionelement.c +0 -93
  59. data/ext/mathematical/lsmmathmlactionelement.h +0 -57
  60. data/ext/mathematical/lsmmathmlaligngroupelement.c +0 -102
  61. data/ext/mathematical/lsmmathmlaligngroupelement.h +0 -56
  62. data/ext/mathematical/lsmmathmlalignmarkelement.c +0 -102
  63. data/ext/mathematical/lsmmathmlalignmarkelement.h +0 -56
  64. data/ext/mathematical/lsmmathmlattributes.c +0 -197
  65. data/ext/mathematical/lsmmathmlattributes.h +0 -126
  66. data/ext/mathematical/lsmmathmldocument.c +0 -306
  67. data/ext/mathematical/lsmmathmldocument.h +0 -61
  68. data/ext/mathematical/lsmmathmlelement.c +0 -491
  69. data/ext/mathematical/lsmmathmlelement.h +0 -107
  70. data/ext/mathematical/lsmmathmlenums.c +0 -429
  71. data/ext/mathematical/lsmmathmlenums.h +0 -182
  72. data/ext/mathematical/lsmmathmlenumtypes.c +0 -666
  73. data/ext/mathematical/lsmmathmlenumtypes.c.template +0 -39
  74. data/ext/mathematical/lsmmathmlenumtypes.h +0 -90
  75. data/ext/mathematical/lsmmathmlenumtypes.h.template +0 -26
  76. data/ext/mathematical/lsmmathmlerrorelement.c +0 -58
  77. data/ext/mathematical/lsmmathmlerrorelement.h +0 -56
  78. data/ext/mathematical/lsmmathmlfencedelement.c +0 -178
  79. data/ext/mathematical/lsmmathmlfencedelement.h +0 -65
  80. data/ext/mathematical/lsmmathmlfractionelement.c +0 -253
  81. data/ext/mathematical/lsmmathmlfractionelement.h +0 -62
  82. data/ext/mathematical/lsmmathmlglyphtableams.c +0 -597
  83. data/ext/mathematical/lsmmathmlglyphtableams.h +0 -45
  84. data/ext/mathematical/lsmmathmlitexelement.c +0 -187
  85. data/ext/mathematical/lsmmathmlitexelement.h +0 -60
  86. data/ext/mathematical/lsmmathmllayoututils.c +0 -191
  87. data/ext/mathematical/lsmmathmllayoututils.h +0 -58
  88. data/ext/mathematical/lsmmathmlmathelement.c +0 -204
  89. data/ext/mathematical/lsmmathmlmathelement.h +0 -81
  90. data/ext/mathematical/lsmmathmloperatordictionary.c +0 -3332
  91. data/ext/mathematical/lsmmathmloperatordictionary.h +0 -54
  92. data/ext/mathematical/lsmmathmloperatorelement.c +0 -307
  93. data/ext/mathematical/lsmmathmloperatorelement.h +0 -73
  94. data/ext/mathematical/lsmmathmlpaddedelement.c +0 -58
  95. data/ext/mathematical/lsmmathmlpaddedelement.h +0 -56
  96. data/ext/mathematical/lsmmathmlphantomelement.c +0 -71
  97. data/ext/mathematical/lsmmathmlphantomelement.h +0 -56
  98. data/ext/mathematical/lsmmathmlpresentationcontainer.c +0 -43
  99. data/ext/mathematical/lsmmathmlpresentationcontainer.h +0 -54
  100. data/ext/mathematical/lsmmathmlpresentationtoken.c +0 -303
  101. data/ext/mathematical/lsmmathmlpresentationtoken.h +0 -83
  102. data/ext/mathematical/lsmmathmlradicalelement.c +0 -266
  103. data/ext/mathematical/lsmmathmlradicalelement.h +0 -71
  104. data/ext/mathematical/lsmmathmlrowelement.c +0 -58
  105. data/ext/mathematical/lsmmathmlrowelement.h +0 -56
  106. data/ext/mathematical/lsmmathmlscriptelement.c +0 -282
  107. data/ext/mathematical/lsmmathmlscriptelement.h +0 -78
  108. data/ext/mathematical/lsmmathmlsemanticselement.c +0 -82
  109. data/ext/mathematical/lsmmathmlsemanticselement.h +0 -56
  110. data/ext/mathematical/lsmmathmlspaceelement.c +0 -142
  111. data/ext/mathematical/lsmmathmlspaceelement.h +0 -60
  112. data/ext/mathematical/lsmmathmlstringelement.c +0 -123
  113. data/ext/mathematical/lsmmathmlstringelement.h +0 -58
  114. data/ext/mathematical/lsmmathmlstyle.c +0 -130
  115. data/ext/mathematical/lsmmathmlstyle.h +0 -81
  116. data/ext/mathematical/lsmmathmlstyleelement.c +0 -307
  117. data/ext/mathematical/lsmmathmlstyleelement.h +0 -87
  118. data/ext/mathematical/lsmmathmltablecellelement.c +0 -122
  119. data/ext/mathematical/lsmmathmltablecellelement.h +0 -62
  120. data/ext/mathematical/lsmmathmltableelement.c +0 -545
  121. data/ext/mathematical/lsmmathmltableelement.h +0 -78
  122. data/ext/mathematical/lsmmathmltablerowelement.c +0 -120
  123. data/ext/mathematical/lsmmathmltablerowelement.h +0 -64
  124. data/ext/mathematical/lsmmathmltraits.c +0 -819
  125. data/ext/mathematical/lsmmathmltraits.h +0 -119
  126. data/ext/mathematical/lsmmathmltypes.h +0 -66
  127. data/ext/mathematical/lsmmathmlunderoverelement.c +0 -485
  128. data/ext/mathematical/lsmmathmlunderoverelement.h +0 -82
  129. data/ext/mathematical/lsmmathmlutils.c +0 -170
  130. data/ext/mathematical/lsmmathmlutils.h +0 -50
  131. data/ext/mathematical/lsmmathmlview.c +0 -1048
  132. data/ext/mathematical/lsmmathmlview.h +0 -164
  133. data/ext/mathematical/lsmproperties.c +0 -418
  134. data/ext/mathematical/lsmproperties.h +0 -85
  135. data/ext/mathematical/lsmstr.c +0 -231
  136. data/ext/mathematical/lsmstr.h +0 -114
  137. data/ext/mathematical/lsmsvg.h +0 -67
  138. data/ext/mathematical/lsmsvgaelement.c +0 -73
  139. data/ext/mathematical/lsmsvgaelement.h +0 -55
  140. data/ext/mathematical/lsmsvgattributes.h +0 -113
  141. data/ext/mathematical/lsmsvgcircleelement.c +0 -153
  142. data/ext/mathematical/lsmsvgcircleelement.h +0 -59
  143. data/ext/mathematical/lsmsvgclippathelement.c +0 -134
  144. data/ext/mathematical/lsmsvgclippathelement.h +0 -59
  145. data/ext/mathematical/lsmsvgcolors.c +0 -212
  146. data/ext/mathematical/lsmsvgcolors.h +0 -39
  147. data/ext/mathematical/lsmsvgdefselement.c +0 -74
  148. data/ext/mathematical/lsmsvgdefselement.h +0 -55
  149. data/ext/mathematical/lsmsvgdocument.c +0 -230
  150. data/ext/mathematical/lsmsvgdocument.h +0 -58
  151. data/ext/mathematical/lsmsvgelement.c +0 -367
  152. data/ext/mathematical/lsmsvgelement.h +0 -81
  153. data/ext/mathematical/lsmsvgellipseelement.c +0 -158
  154. data/ext/mathematical/lsmsvgellipseelement.h +0 -60
  155. data/ext/mathematical/lsmsvgenums.c +0 -544
  156. data/ext/mathematical/lsmsvgenums.h +0 -357
  157. data/ext/mathematical/lsmsvgenumtypes.c +0 -1083
  158. data/ext/mathematical/lsmsvgenumtypes.c.template +0 -39
  159. data/ext/mathematical/lsmsvgenumtypes.h +0 -111
  160. data/ext/mathematical/lsmsvgenumtypes.h.template +0 -26
  161. data/ext/mathematical/lsmsvgfilterblend.c +0 -105
  162. data/ext/mathematical/lsmsvgfilterblend.h +0 -58
  163. data/ext/mathematical/lsmsvgfiltercomposite.c +0 -109
  164. data/ext/mathematical/lsmsvgfiltercomposite.h +0 -58
  165. data/ext/mathematical/lsmsvgfilterelement.c +0 -266
  166. data/ext/mathematical/lsmsvgfilterelement.h +0 -66
  167. data/ext/mathematical/lsmsvgfilterflood.c +0 -86
  168. data/ext/mathematical/lsmsvgfilterflood.h +0 -55
  169. data/ext/mathematical/lsmsvgfiltergaussianblur.c +0 -114
  170. data/ext/mathematical/lsmsvgfiltergaussianblur.h +0 -57
  171. data/ext/mathematical/lsmsvgfiltermerge.c +0 -98
  172. data/ext/mathematical/lsmsvgfiltermerge.h +0 -55
  173. data/ext/mathematical/lsmsvgfiltermergenode.c +0 -87
  174. data/ext/mathematical/lsmsvgfiltermergenode.h +0 -57
  175. data/ext/mathematical/lsmsvgfilteroffset.c +0 -112
  176. data/ext/mathematical/lsmsvgfilteroffset.h +0 -58
  177. data/ext/mathematical/lsmsvgfilterprimitive.c +0 -168
  178. data/ext/mathematical/lsmsvgfilterprimitive.h +0 -66
  179. data/ext/mathematical/lsmsvgfilterspecularlighting.c +0 -127
  180. data/ext/mathematical/lsmsvgfilterspecularlighting.h +0 -60
  181. data/ext/mathematical/lsmsvgfiltersurface.c +0 -455
  182. data/ext/mathematical/lsmsvgfiltersurface.h +0 -66
  183. data/ext/mathematical/lsmsvgfiltertile.c +0 -102
  184. data/ext/mathematical/lsmsvgfiltertile.h +0 -57
  185. data/ext/mathematical/lsmsvggelement.c +0 -73
  186. data/ext/mathematical/lsmsvggelement.h +0 -55
  187. data/ext/mathematical/lsmsvggradientelement.c +0 -151
  188. data/ext/mathematical/lsmsvggradientelement.h +0 -68
  189. data/ext/mathematical/lsmsvgimageelement.c +0 -261
  190. data/ext/mathematical/lsmsvgimageelement.h +0 -67
  191. data/ext/mathematical/lsmsvglength.c +0 -93
  192. data/ext/mathematical/lsmsvglength.h +0 -59
  193. data/ext/mathematical/lsmsvglineargradientelement.c +0 -271
  194. data/ext/mathematical/lsmsvglineargradientelement.h +0 -60
  195. data/ext/mathematical/lsmsvglineelement.c +0 -153
  196. data/ext/mathematical/lsmsvglineelement.h +0 -60
  197. data/ext/mathematical/lsmsvgmarkerelement.c +0 -266
  198. data/ext/mathematical/lsmsvgmarkerelement.h +0 -74
  199. data/ext/mathematical/lsmsvgmaskelement.c +0 -232
  200. data/ext/mathematical/lsmsvgmaskelement.h +0 -64
  201. data/ext/mathematical/lsmsvgmatrix.c +0 -205
  202. data/ext/mathematical/lsmsvgmatrix.h +0 -59
  203. data/ext/mathematical/lsmsvgpathelement.c +0 -115
  204. data/ext/mathematical/lsmsvgpathelement.h +0 -59
  205. data/ext/mathematical/lsmsvgpatternelement.c +0 -398
  206. data/ext/mathematical/lsmsvgpatternelement.h +0 -69
  207. data/ext/mathematical/lsmsvgpolygonelement.c +0 -106
  208. data/ext/mathematical/lsmsvgpolygonelement.h +0 -57
  209. data/ext/mathematical/lsmsvgpolylineelement.c +0 -106
  210. data/ext/mathematical/lsmsvgpolylineelement.h +0 -57
  211. data/ext/mathematical/lsmsvgradialgradientelement.c +0 -323
  212. data/ext/mathematical/lsmsvgradialgradientelement.h +0 -61
  213. data/ext/mathematical/lsmsvgrectelement.c +0 -184
  214. data/ext/mathematical/lsmsvgrectelement.h +0 -62
  215. data/ext/mathematical/lsmsvgstopelement.c +0 -106
  216. data/ext/mathematical/lsmsvgstopelement.h +0 -57
  217. data/ext/mathematical/lsmsvgstyle.c +0 -558
  218. data/ext/mathematical/lsmsvgstyle.h +0 -217
  219. data/ext/mathematical/lsmsvgsvgelement.c +0 -260
  220. data/ext/mathematical/lsmsvgsvgelement.h +0 -71
  221. data/ext/mathematical/lsmsvgswitchelement.c +0 -103
  222. data/ext/mathematical/lsmsvgswitchelement.h +0 -55
  223. data/ext/mathematical/lsmsvgsymbolelement.c +0 -74
  224. data/ext/mathematical/lsmsvgsymbolelement.h +0 -55
  225. data/ext/mathematical/lsmsvgtextelement.c +0 -170
  226. data/ext/mathematical/lsmsvgtextelement.h +0 -58
  227. data/ext/mathematical/lsmsvgtraits.c +0 -1158
  228. data/ext/mathematical/lsmsvgtraits.h +0 -103
  229. data/ext/mathematical/lsmsvgtransformable.c +0 -106
  230. data/ext/mathematical/lsmsvgtransformable.h +0 -54
  231. data/ext/mathematical/lsmsvgtspanelement.c +0 -143
  232. data/ext/mathematical/lsmsvgtspanelement.h +0 -58
  233. data/ext/mathematical/lsmsvgtypes.h +0 -77
  234. data/ext/mathematical/lsmsvguseelement.c +0 -237
  235. data/ext/mathematical/lsmsvguseelement.h +0 -69
  236. data/ext/mathematical/lsmsvgview.c +0 -2400
  237. data/ext/mathematical/lsmsvgview.h +0 -168
  238. data/ext/mathematical/lsmtraits.c +0 -119
  239. data/ext/mathematical/lsmtraits.h +0 -49
  240. data/ext/mathematical/lsmtypes.h +0 -36
  241. data/ext/mathematical/lsmutils.c +0 -54
  242. data/ext/mathematical/lsmutils.h +0 -56
  243. data/ext/mathematical/mathematical.c +0 -122
  244. data/ext/mathematical/y.tab.c +0 -6179
  245. data/ext/mathematical/y.tab.h +0 -389
  246. data/script/bench +0 -21
  247. data/script/bootstrap +0 -9
  248. data/script/single_test +0 -7
  249. data/test/mathematical/basic_test.rb +0 -38
  250. data/test/mathematical/fixtures/after/brackets_display.html +0 -1
  251. data/test/mathematical/fixtures/after/dollar_sign_inline.html +0 -1
  252. data/test/mathematical/fixtures/after/equation_display.html +0 -1
  253. data/test/mathematical/fixtures/after/multiple_dollar_inline.html +0 -1
  254. data/test/mathematical/fixtures/after/parens_inline.html +0 -1
  255. data/test/mathematical/fixtures/before/brackets_display.text +0 -1
  256. data/test/mathematical/fixtures/before/dollar_sign_inline.text +0 -1
  257. data/test/mathematical/fixtures/before/equation_display.text +0 -1
  258. data/test/mathematical/fixtures/before/multiple_dollar_inline.text +0 -1
  259. data/test/mathematical/fixtures/before/parens_inline.text +0 -1
  260. data/test/mathematical/fixtures/performance/big_file.text +0 -1767
  261. data/test/mathematical/fixtures_test.rb +0 -31
  262. data/test/mathematical/performance_test.rb +0 -13
  263. data/test/test_helper.rb +0 -4
@@ -1,81 +0,0 @@
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_SVG_ELEMENT_H
25
- #define LSM_SVG_ELEMENT_H
26
-
27
- #include <lsmsvgtypes.h>
28
- #include <lsmsvgattributes.h>
29
- #include <lsmsvgstyle.h>
30
- #include <lsmdom.h>
31
- #include <cairo.h>
32
-
33
- G_BEGIN_DECLS
34
-
35
- #define LSM_TYPE_SVG_ELEMENT (lsm_svg_element_get_type ())
36
- #define LSM_SVG_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_SVG_ELEMENT, LsmSvgElement))
37
- #define LSM_SVG_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_SVG_ELEMENT, LsmSvgElementClass))
38
- #define LSM_IS_SVG_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_SVG_ELEMENT))
39
- #define LSM_IS_SVG_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_SVG_ELEMENT))
40
- #define LSM_SVG_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_SVG_ELEMENT, LsmSvgElementClass))
41
-
42
- typedef struct _LsmSvgElementClass LsmSvgElementClass;
43
-
44
- struct _LsmSvgElement {
45
- LsmDomElement element;
46
-
47
- LsmPropertyBag property_bag;
48
-
49
- LsmAttribute id;
50
- LsmAttribute class_name;
51
- };
52
-
53
- struct _LsmSvgElementClass {
54
- LsmDomElementClass parent_class;
55
-
56
- LsmAttributeManager *attribute_manager;
57
-
58
- LsmSvgElementCategory category;
59
-
60
- void (*enable_rendering) (LsmSvgElement *element);
61
- void (*render) (LsmSvgElement *element, LsmSvgView *view);
62
- void (*get_extents) (LsmSvgElement *element, LsmSvgView *view, LsmExtents *extents);
63
- void (*transformed_render) (LsmSvgElement *element, LsmSvgView *view);
64
- void (*transformed_get_extents) (LsmSvgElement *element, LsmSvgView *view, LsmExtents *extents);
65
-
66
- gboolean is_shape_element;
67
- };
68
-
69
- GType lsm_svg_element_get_type (void);
70
-
71
- LsmSvgElementCategory lsm_svg_element_get_category (LsmSvgElement *element);
72
-
73
- void lsm_svg_element_render (LsmSvgElement *element, LsmSvgView *view);
74
- void lsm_svg_element_render (LsmSvgElement *element, LsmSvgView *view);
75
- void lsm_svg_element_force_render (LsmSvgElement *element, LsmSvgView *view);
76
- void lsm_svg_element_get_extents (LsmSvgElement *element, LsmSvgView *view, LsmExtents *extents);
77
- void lsm_svg_element_transformed_get_extents (LsmSvgElement *element, LsmSvgView *view, LsmExtents *extents);
78
-
79
- G_END_DECLS
80
-
81
- #endif
@@ -1,158 +0,0 @@
1
- /* Lasem
2
- *
3
- * Copyright © 2009-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 <lsmsvgellipseelement.h>
25
- #include <lsmsvgview.h>
26
-
27
- static GObjectClass *parent_class;
28
-
29
- /* GdomNode implementation */
30
-
31
- static const char *
32
- lsm_svg_ellipse_element_get_node_name (LsmDomNode *node)
33
- {
34
- return "ellipse";
35
- }
36
-
37
- /* LsmSvgElement implementation */
38
-
39
- /* LsmSvgGraphic implementation */
40
-
41
- static void
42
- _normalize_length (LsmSvgEllipseElement *ellipse, LsmSvgView *view, double *cx, double *cy, double *rx, double *ry)
43
- {
44
- *cx = lsm_svg_view_normalize_length (view, &ellipse->cx.length, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
45
- *cy = lsm_svg_view_normalize_length (view, &ellipse->cy.length, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
46
- *rx = lsm_svg_view_normalize_length (view, &ellipse->rx.length, LSM_SVG_LENGTH_DIRECTION_HORIZONTAL);
47
- *ry = lsm_svg_view_normalize_length (view, &ellipse->ry.length, LSM_SVG_LENGTH_DIRECTION_VERTICAL);
48
- }
49
-
50
- static void
51
- lsm_svg_ellipse_element_render (LsmSvgElement *self, LsmSvgView *view)
52
- {
53
- LsmSvgEllipseElement *ellipse = LSM_SVG_ELLIPSE_ELEMENT (self);
54
- double cx, cy, rx, ry;
55
-
56
- _normalize_length (ellipse, view, &cx, &cy, &rx, &ry);
57
-
58
- lsm_svg_view_show_ellipse (view, cx, cy, rx, ry);
59
- }
60
-
61
- static void
62
- lsm_svg_ellipse_element_get_extents (LsmSvgElement *self, LsmSvgView *view, LsmExtents *extents)
63
- {
64
- LsmSvgEllipseElement *ellipse = LSM_SVG_ELLIPSE_ELEMENT (self);
65
- double cx, cy, rx, ry;
66
-
67
- _normalize_length (ellipse, view, &cx, &cy, &rx, &ry);
68
-
69
- extents->x1 = cx - rx;
70
- extents->y1 = cy - ry;
71
- extents->x2 = cx + rx;
72
- extents->y2 = cy + ry;
73
- }
74
-
75
- /* LsmSvgEllipseElement implementation */
76
-
77
- LsmDomNode *
78
- lsm_svg_ellipse_element_new (void)
79
- {
80
- return g_object_new (LSM_TYPE_SVG_ELLIPSE_ELEMENT, NULL);
81
- }
82
-
83
- static const LsmSvgLength length_default = { .value_unit = 0.0, .type = LSM_SVG_LENGTH_TYPE_PX};
84
-
85
- static void
86
- lsm_svg_ellipse_element_init (LsmSvgEllipseElement *self)
87
- {
88
- self->cx.length = length_default;
89
- self->cy.length = length_default;
90
- self->rx.length = length_default;
91
- self->ry.length = length_default;
92
- }
93
-
94
- static void
95
- lsm_svg_ellipse_element_finalize (GObject *object)
96
- {
97
- parent_class->finalize (object);
98
- }
99
-
100
- /* LsmSvgEllipseElement class */
101
-
102
- static const LsmAttributeInfos lsm_svg_ellipse_element_attribute_infos[] = {
103
- {
104
- .name = "cx",
105
- .attribute_offset = offsetof (LsmSvgEllipseElement, cx),
106
- .trait_class = &lsm_svg_length_trait_class,
107
- .trait_default = &length_default
108
- },
109
- {
110
- .name = "cy",
111
- .attribute_offset = offsetof (LsmSvgEllipseElement, cy),
112
- .trait_class = &lsm_svg_length_trait_class,
113
- .trait_default = &length_default
114
- },
115
- {
116
- .name = "rx",
117
- .attribute_offset = offsetof (LsmSvgEllipseElement, rx),
118
- .trait_class = &lsm_svg_length_trait_class,
119
- .trait_default = &length_default
120
- },
121
- {
122
- .name = "ry",
123
- .attribute_offset = offsetof (LsmSvgEllipseElement, ry),
124
- .trait_class = &lsm_svg_length_trait_class,
125
- .trait_default = &length_default
126
- }
127
- };
128
-
129
- static void
130
- lsm_svg_ellipse_element_class_init (LsmSvgEllipseElementClass *s_rect_class)
131
- {
132
- GObjectClass *object_class = G_OBJECT_CLASS (s_rect_class);
133
- LsmDomNodeClass *d_node_class = LSM_DOM_NODE_CLASS (s_rect_class);
134
- LsmSvgElementClass *s_element_class = LSM_SVG_ELEMENT_CLASS (s_rect_class);
135
-
136
- parent_class = g_type_class_peek_parent (s_rect_class);
137
-
138
- object_class->finalize = lsm_svg_ellipse_element_finalize;
139
-
140
- d_node_class->get_node_name = lsm_svg_ellipse_element_get_node_name;
141
-
142
- s_element_class->category =
143
- LSM_SVG_ELEMENT_CATEGORY_GRAPHICS |
144
- LSM_SVG_ELEMENT_CATEGORY_SHAPE |
145
- LSM_SVG_ELEMENT_CATEGORY_BASIC_SHAPE;
146
-
147
- s_element_class->render = lsm_svg_ellipse_element_render;
148
- s_element_class->get_extents = lsm_svg_ellipse_element_get_extents;
149
- s_element_class->attribute_manager = lsm_attribute_manager_duplicate (s_element_class->attribute_manager);
150
-
151
- s_element_class->is_shape_element = TRUE;
152
-
153
- lsm_attribute_manager_add_attributes (s_element_class->attribute_manager,
154
- G_N_ELEMENTS (lsm_svg_ellipse_element_attribute_infos),
155
- lsm_svg_ellipse_element_attribute_infos);
156
- }
157
-
158
- G_DEFINE_TYPE (LsmSvgEllipseElement, lsm_svg_ellipse_element, LSM_TYPE_SVG_TRANSFORMABLE)
@@ -1,60 +0,0 @@
1
- /* Lasem
2
- *
3
- * Copyright © 2009-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_ELLIPSE_ELEMENT_H
25
- #define LSM_SVG_ELLIPSE_ELEMENT_H
26
-
27
- #include <lsmsvgtypes.h>
28
- #include <lsmsvgtransformable.h>
29
-
30
- G_BEGIN_DECLS
31
-
32
- #define LSM_TYPE_SVG_ELLIPSE_ELEMENT (lsm_svg_ellipse_element_get_type ())
33
- #define LSM_SVG_ELLIPSE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LSM_TYPE_SVG_ELLIPSE_ELEMENT, LsmSvgEllipseElement))
34
- #define LSM_SVG_ELLIPSE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LSM_TYPE_SVG_ELLIPSE_ELEMENT, LsmSvgEllipseElementClass))
35
- #define LSM_IS_SVG_ELLIPSE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LSM_TYPE_SVG_ELLIPSE_ELEMENT))
36
- #define LSM_IS_SVG_ELLIPSE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LSM_TYPE_SVG_ELLIPSE_ELEMENT))
37
- #define LSM_SVG_ELLIPSE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), LSM_TYPE_SVG_ELLIPSE_ELEMENT, LsmSvgEllipseElementClass))
38
-
39
- typedef struct _LsmSvgEllipseElementClass LsmSvgEllipseElementClass;
40
-
41
- struct _LsmSvgEllipseElement {
42
- LsmSvgTransformable base;
43
-
44
- LsmSvgLengthAttribute cx;
45
- LsmSvgLengthAttribute cy;
46
- LsmSvgLengthAttribute rx;
47
- LsmSvgLengthAttribute ry;
48
- };
49
-
50
- struct _LsmSvgEllipseElementClass {
51
- LsmSvgTransformableClass base_class;
52
- };
53
-
54
- GType lsm_svg_ellipse_element_get_type (void);
55
-
56
- LsmDomNode * lsm_svg_ellipse_element_new (void);
57
-
58
- G_END_DECLS
59
-
60
- #endif
@@ -1,544 +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 <lsmsvgenums.h>
25
- #include <lsmtraits.h>
26
- #include <string.h>
27
-
28
- static const char *lsm_svg_blending_mode_strings[] = {
29
- "normal",
30
- "multiply",
31
- "screen",
32
- "darken",
33
- "lighten",
34
- "over",
35
- "in",
36
- "out",
37
- "atop",
38
- "xor"
39
- };
40
-
41
- const char *
42
- lsm_svg_blending_mode_to_string (LsmSvgBlendingMode blending_mode)
43
- {
44
- if (blending_mode < 0 || blending_mode > LSM_SVG_BLENDING_MODE_XOR)
45
- return NULL;
46
-
47
- return lsm_svg_blending_mode_strings[blending_mode];
48
- }
49
-
50
- LsmSvgBlendingMode
51
- lsm_svg_blending_mode_from_string (const char *string)
52
- {
53
- return lsm_enum_value_from_string (string, lsm_svg_blending_mode_strings,
54
- G_N_ELEMENTS (lsm_svg_blending_mode_strings));
55
- }
56
-
57
- static const char *lsm_svg_enable_background_strings[] = {
58
- "accumulate",
59
- "new"
60
- };
61
-
62
- const char *
63
- lsm_svg_enable_background_to_string (LsmSvgEnableBackground enable_background)
64
- {
65
- if (enable_background < 0 || enable_background > LSM_SVG_ENABLE_BACKGROUND_NEW)
66
- return NULL;
67
-
68
- return lsm_svg_enable_background_strings[enable_background];
69
- }
70
-
71
- LsmSvgEnableBackground
72
- lsm_svg_enable_background_from_string (const char *string)
73
- {
74
- return lsm_enum_value_from_string (string, lsm_svg_enable_background_strings,
75
- G_N_ELEMENTS (lsm_svg_enable_background_strings));
76
- }
77
-
78
- static const char *lsm_svg_length_type_strings[] = {
79
- "",
80
- "%",
81
- "em",
82
- "ex",
83
- "px",
84
- "cm",
85
- "mm",
86
- "in",
87
- "pt",
88
- "pc"
89
- };
90
-
91
- const char *
92
- lsm_svg_length_type_to_string (LsmSvgLengthType length_type)
93
- {
94
- if (length_type < 0 || length_type > LSM_SVG_LENGTH_TYPE_PC)
95
- return NULL;
96
-
97
- return lsm_svg_length_type_strings[length_type];
98
- }
99
-
100
- LsmSvgLengthType
101
- lsm_svg_length_type_from_string (const char *string)
102
- {
103
- return lsm_enum_value_from_string (string, lsm_svg_length_type_strings,
104
- G_N_ELEMENTS (lsm_svg_length_type_strings));
105
- }
106
-
107
- static const char *lsm_svg_fill_rule_strings[] = {
108
- "nonzero",
109
- "evenodd"
110
- };
111
-
112
- const char *
113
- lsm_svg_fill_rule_to_string (LsmSvgFillRule fill_rule)
114
- {
115
- if (fill_rule < 0 || fill_rule > LSM_SVG_FILL_RULE_EVEN_ODD)
116
- return NULL;
117
-
118
- return lsm_svg_fill_rule_strings[fill_rule];
119
- }
120
-
121
- LsmSvgFillRule
122
- lsm_svg_fill_rule_from_string (const char *string)
123
- {
124
- return lsm_enum_value_from_string (string, lsm_svg_fill_rule_strings,
125
- G_N_ELEMENTS (lsm_svg_fill_rule_strings));
126
- }
127
-
128
- static const char *lsm_svg_line_join_strings[] = {
129
- "miter",
130
- "round",
131
- "bevel"
132
- };
133
-
134
- const char *
135
- lsm_svg_line_join_to_string (LsmSvgLineJoin line_join)
136
- {
137
- if (line_join < 0 || line_join > LSM_SVG_LINE_JOIN_BEVEL)
138
- return NULL;
139
-
140
- return lsm_svg_line_join_strings[line_join];
141
- }
142
-
143
- LsmSvgLineJoin
144
- lsm_svg_line_join_from_string (const char *string)
145
- {
146
- return lsm_enum_value_from_string (string, lsm_svg_line_join_strings,
147
- G_N_ELEMENTS (lsm_svg_line_join_strings));
148
- }
149
-
150
- static const char *lsm_svg_line_cap_strings[] = {
151
- "butt",
152
- "round",
153
- "square"
154
- };
155
-
156
- const char *
157
- lsm_svg_line_cap_to_string (LsmSvgLineCap line_cap)
158
- {
159
- if (line_cap < 0 || line_cap > LSM_SVG_LINE_CAP_SQUARE)
160
- return NULL;
161
-
162
- return lsm_svg_line_cap_strings[line_cap];
163
- }
164
-
165
- LsmSvgLineCap
166
- lsm_svg_line_cap_from_string (const char *string)
167
- {
168
- return lsm_enum_value_from_string (string, lsm_svg_line_cap_strings,
169
- G_N_ELEMENTS (lsm_svg_line_cap_strings));
170
- }
171
-
172
- static const char *lsm_svg_overflow_strings[] = {
173
- "visible",
174
- "hidden",
175
- "scroll",
176
- "auto"
177
- };
178
-
179
- const char *
180
- lsm_svg_overflow_to_string (LsmSvgOverflow overflow)
181
- {
182
- if (overflow < 0 || overflow > LSM_SVG_OVERFLOW_AUTO)
183
- return NULL;
184
-
185
- return lsm_svg_overflow_strings[overflow];
186
- }
187
-
188
- LsmSvgOverflow
189
- lsm_svg_overflow_from_string (const char *string)
190
- {
191
- LsmSvgOverflow overflow = lsm_enum_value_from_string (string, lsm_svg_overflow_strings,
192
- G_N_ELEMENTS (lsm_svg_overflow_strings));
193
-
194
- return overflow;
195
- }
196
-
197
- static const char *lsm_svg_pattern_units_strings[] = {
198
- "userSpaceOnUse",
199
- "objectBoundingBox"
200
- };
201
-
202
- const char *
203
- lsm_svg_pattern_units_to_string (LsmSvgPatternUnits units)
204
- {
205
- if (units < 0 || units > LSM_SVG_PATTERN_UNITS_OBJECT_BOUNDING_BOX)
206
- return NULL;
207
-
208
- return lsm_svg_pattern_units_strings[units];
209
- }
210
-
211
- LsmSvgPatternUnits
212
- lsm_svg_pattern_units_from_string (const char *string)
213
- {
214
- return lsm_enum_value_from_string (string, lsm_svg_pattern_units_strings,
215
- G_N_ELEMENTS (lsm_svg_pattern_units_strings));
216
- }
217
-
218
- static const char *lsm_svg_marker_units_strings[] = {
219
- "strokeWidth",
220
- "userSpaceOnUse"
221
- };
222
-
223
- const char *
224
- lsm_svg_marker_units_to_string (LsmSvgMarkerUnits units)
225
- {
226
- if (units < 0 || units > LSM_SVG_MARKER_UNITS_STROKE_WIDTH)
227
- return NULL;
228
-
229
- return lsm_svg_marker_units_strings[units];
230
- }
231
-
232
- LsmSvgMarkerUnits
233
- lsm_svg_marker_units_from_string (const char *string)
234
- {
235
- return lsm_enum_value_from_string (string, lsm_svg_marker_units_strings,
236
- G_N_ELEMENTS (lsm_svg_marker_units_strings));
237
- }
238
-
239
- static const char *lsm_svg_spread_method_strings[] = {
240
- "pad",
241
- "reflect",
242
- "repeat"
243
- };
244
-
245
- const char *
246
- lsm_svg_spread_method_to_string (LsmSvgSpreadMethod units)
247
- {
248
- if (units < 0 || units > LSM_SVG_SPREAD_METHOD_REPEAT)
249
- return NULL;
250
-
251
- return lsm_svg_spread_method_strings[units];
252
- }
253
-
254
- LsmSvgSpreadMethod
255
- lsm_svg_spread_method_from_string (const char *string)
256
- {
257
- return lsm_enum_value_from_string (string, lsm_svg_spread_method_strings,
258
- G_N_ELEMENTS (lsm_svg_spread_method_strings));
259
- }
260
-
261
- static const char *lsm_svg_align_strings[] = {
262
- "none",
263
- "xMinYMin",
264
- "xMidYMin",
265
- "xMaxYMin",
266
- "xMinYMid",
267
- "xMidYMid",
268
- "xMaxYMid",
269
- "xMinYMax",
270
- "xMidYMax",
271
- "xMaxYMax"
272
- };
273
-
274
- const char *
275
- lsm_svg_align_to_string (LsmSvgAlign align)
276
- {
277
- if (align < 0 || align > LSM_SVG_ALIGN_X_MAX_Y_MAX)
278
- return NULL;
279
-
280
- return lsm_svg_align_strings[align];
281
- }
282
-
283
- LsmSvgAlign
284
- lsm_svg_align_from_string (const char *string)
285
- {
286
- return lsm_enum_value_from_string (string, lsm_svg_align_strings,
287
- G_N_ELEMENTS (lsm_svg_align_strings));
288
- }
289
-
290
- static const char *lsm_svg_meet_or_slice_strings[] = {
291
- "meet",
292
- "slice"
293
- };
294
-
295
- const char *
296
- lsm_svg_meet_or_slice_to_string (LsmSvgMeetOrSlice meet_or_slice)
297
- {
298
- if (meet_or_slice < 0 || meet_or_slice > LSM_SVG_MEET_OR_SLICE_SLICE)
299
- return NULL;
300
-
301
- return lsm_svg_meet_or_slice_strings[meet_or_slice];
302
- }
303
-
304
- LsmSvgMeetOrSlice
305
- lsm_svg_meet_or_slice_from_string (const char *string)
306
- {
307
- return lsm_enum_value_from_string (string, lsm_svg_meet_or_slice_strings,
308
- G_N_ELEMENTS (lsm_svg_meet_or_slice_strings));
309
- }
310
-
311
- static const char *lsm_svg_comp_op_strings[] = {
312
- "clear",
313
- "src",
314
- "dst",
315
- "src-over",
316
- "dst-over",
317
- "src-in",
318
- "dst-in",
319
- "src-out",
320
- "dst-out",
321
- "src-atop",
322
- "dst-atop",
323
- "xor",
324
- "plus",
325
- "multiply",
326
- "screen",
327
- "overlay",
328
- "darken",
329
- "lighten",
330
- "color-dodge",
331
- "color-burn",
332
- "hard-light",
333
- "soft-light",
334
- "difference",
335
- "exclusion"
336
- };
337
-
338
- const char *
339
- lsm_svg_comp_op_to_string (LsmSvgCompOp comp_op)
340
- {
341
- if (comp_op < 0 || comp_op > LSM_SVG_COMP_OP_EXCLUSION)
342
- return NULL;
343
-
344
- return lsm_svg_comp_op_strings[comp_op];
345
- }
346
-
347
- LsmSvgCompOp
348
- lsm_svg_comp_op_from_string (const char *string)
349
- {
350
- return lsm_enum_value_from_string (string, lsm_svg_comp_op_strings,
351
- G_N_ELEMENTS (lsm_svg_comp_op_strings));
352
- }
353
-
354
- static const char *lsm_svg_font_stretch_strings[] = {
355
- "normal",
356
- "ultra-condensed",
357
- "extra-condensed",
358
- "condensed",
359
- "semi-condensed",
360
- "semi-expanded",
361
- "expanded",
362
- "extra-expanded",
363
- "ultra-expanded"
364
- };
365
-
366
- const char *
367
- lsm_svg_font_stretch_to_string (LsmSvgFontStretch font_stretch)
368
- {
369
- if (font_stretch < 0 || font_stretch > LSM_SVG_FONT_STRETCH_ULTRA_EXPANDED)
370
- return NULL;
371
-
372
- return lsm_svg_font_stretch_strings[font_stretch];
373
- }
374
-
375
- LsmSvgFontStretch
376
- lsm_svg_font_stretch_from_string (const char *string)
377
- {
378
- return lsm_enum_value_from_string (string, lsm_svg_font_stretch_strings,
379
- G_N_ELEMENTS (lsm_svg_font_stretch_strings));
380
- }
381
-
382
- static const char *lsm_svg_font_style_strings[] = {
383
- "normal",
384
- "oblique",
385
- "italic"
386
- };
387
-
388
- const char *
389
- lsm_svg_font_style_to_string (LsmSvgFontStyle font_style)
390
- {
391
- if (font_style < 0 || font_style > LSM_SVG_FONT_STYLE_ITALIC)
392
- return NULL;
393
-
394
- return lsm_svg_font_style_strings[font_style];
395
- }
396
-
397
- LsmSvgFontStyle
398
- lsm_svg_font_style_from_string (const char *string)
399
- {
400
- return lsm_enum_value_from_string (string, lsm_svg_font_style_strings,
401
- G_N_ELEMENTS (lsm_svg_font_style_strings));
402
- }
403
-
404
- static const char *lsm_svg_font_weight_strings[] = {
405
- "normal",
406
- "bold"
407
- };
408
-
409
- const char *
410
- lsm_svg_font_weight_to_string (LsmSvgFontWeight font_weight)
411
- {
412
- switch (font_weight) {
413
- case LSM_SVG_FONT_WEIGHT_NORMAL:
414
- return lsm_svg_font_weight_strings[0];
415
- case LSM_SVG_FONT_WEIGHT_BOLD:
416
- return lsm_svg_font_weight_strings[1];
417
- default:
418
- return NULL;
419
- }
420
- }
421
-
422
- LsmSvgFontWeight
423
- lsm_svg_font_weight_from_string (const char *string)
424
- {
425
- int index;
426
-
427
- index = lsm_enum_value_from_string (string, lsm_svg_font_weight_strings,
428
- G_N_ELEMENTS (lsm_svg_font_weight_strings));
429
-
430
- switch (index) {
431
- case 0:
432
- return LSM_SVG_FONT_WEIGHT_NORMAL;
433
- case 1:
434
- return LSM_SVG_FONT_WEIGHT_BOLD;
435
- default:
436
- return -1;
437
- }
438
- }
439
-
440
- static const char *lsm_svg_text_anchor_strings[] = {
441
- "start",
442
- "middle",
443
- "end"
444
- };
445
-
446
- const char *
447
- lsm_svg_text_anchor_to_string (LsmSvgTextAnchor text_anchor)
448
- {
449
- if (text_anchor < 0 || text_anchor > LSM_SVG_TEXT_ANCHOR_MIDDLE)
450
- return NULL;
451
-
452
- return lsm_svg_text_anchor_strings[text_anchor];
453
- }
454
-
455
- LsmSvgTextAnchor
456
- lsm_svg_text_anchor_from_string (const char *string)
457
- {
458
- return lsm_enum_value_from_string (string, lsm_svg_text_anchor_strings,
459
- G_N_ELEMENTS (lsm_svg_text_anchor_strings));
460
- }
461
-
462
- static const char *lsm_svg_display_strings[] = {
463
- "none",
464
- "inline",
465
- "block",
466
- "list-item",
467
- "run-in",
468
- "compact",
469
- "marker",
470
- "table",
471
- "inline-table",
472
- "table-row-group",
473
- "table-header-group",
474
- "table-footer-group",
475
- "table-row",
476
- "table-column-group",
477
- "table-column",
478
- "table-cell",
479
- "table-caption",
480
- };
481
-
482
- const char *
483
- lsm_svg_display_to_string (LsmSvgDisplay display)
484
- {
485
- if (display < 0 || display > LSM_SVG_DISPLAY_TABLE_CAPTION)
486
- return NULL;
487
-
488
- return lsm_svg_display_strings[display];
489
- }
490
-
491
- LsmSvgDisplay
492
- lsm_svg_display_from_string (const char *string)
493
- {
494
- return lsm_enum_value_from_string (string, lsm_svg_display_strings,
495
- G_N_ELEMENTS (lsm_svg_display_strings));
496
- }
497
-
498
- static const char *lsm_svg_visibility_strings[] = {
499
- "visible",
500
- "hidden",
501
- "collapse"
502
- };
503
-
504
- const char *
505
- lsm_svg_visibility_to_string (LsmSvgVisibility visibility)
506
- {
507
- if (visibility < 0 || visibility > LSM_SVG_VISIBILITY_HIDDEN)
508
- return NULL;
509
-
510
- return lsm_svg_visibility_strings[visibility];
511
- }
512
-
513
- LsmSvgVisibility
514
- lsm_svg_visibility_from_string (const char *string)
515
- {
516
- return lsm_enum_value_from_string (string, lsm_svg_visibility_strings,
517
- G_N_ELEMENTS (lsm_svg_visibility_strings));
518
- }
519
-
520
- static const char *lsm_svg_writing_mode_strings[] = {
521
- "lr-tb",
522
- "rl-tb",
523
- "tb-rl",
524
- "lr",
525
- "rl",
526
- "tb"
527
- };
528
-
529
- const char *
530
- lsm_svg_writing_mode_to_string (LsmSvgWritingMode writing_mode)
531
- {
532
- if (writing_mode < 0 || writing_mode > LSM_SVG_WRITING_MODE_TB)
533
- return NULL;
534
-
535
- return lsm_svg_writing_mode_strings[writing_mode];
536
- }
537
-
538
- LsmSvgWritingMode
539
- lsm_svg_writing_mode_from_string (const char *string)
540
- {
541
- return lsm_enum_value_from_string (string, lsm_svg_writing_mode_strings,
542
- G_N_ELEMENTS (lsm_svg_writing_mode_strings));
543
- }
544
-