jsxgraph 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/distrib/docs/files.html +2 -2
  3. package/distrib/docs/index.html +2 -2
  4. package/distrib/docs/static/jsxgraph.css +24 -22
  5. package/distrib/docs/static/jsxgraphcore.js +2 -2
  6. package/distrib/docs/symbols/Angle.html +2 -2
  7. package/distrib/docs/symbols/Arc.html +2 -2
  8. package/distrib/docs/symbols/Arrow.html +2 -2
  9. package/distrib/docs/symbols/Arrowparallel.html +2 -2
  10. package/distrib/docs/symbols/Axis.html +2 -2
  11. package/distrib/docs/symbols/Bisector.html +2 -2
  12. package/distrib/docs/symbols/Bisectorlines.html +2 -2
  13. package/distrib/docs/symbols/Boxplot.html +2 -2
  14. package/distrib/docs/symbols/Button.html +4 -4
  15. package/distrib/docs/symbols/Cardinalspline.html +2 -2
  16. package/distrib/docs/symbols/Chart.html +2 -2
  17. package/distrib/docs/symbols/Checkbox.html +17 -17
  18. package/distrib/docs/symbols/Circle.html +2 -2
  19. package/distrib/docs/symbols/Circumcenter.html +4 -4
  20. package/distrib/docs/symbols/Circumcircle.html +2 -2
  21. package/distrib/docs/symbols/CircumcircleArc.html +2 -2
  22. package/distrib/docs/symbols/CircumcircleSector.html +2 -2
  23. package/distrib/docs/symbols/Comb.html +5 -5
  24. package/distrib/docs/symbols/Conic.html +2 -2
  25. package/distrib/docs/symbols/Constants.html +2 -2
  26. package/distrib/docs/symbols/Curve.html +2 -2
  27. package/distrib/docs/symbols/Curve3D.html +2 -2
  28. package/distrib/docs/symbols/CurveDifference.html +2 -2
  29. package/distrib/docs/symbols/CurveIntersection.html +2 -2
  30. package/distrib/docs/symbols/CurveUnion.html +2 -2
  31. package/distrib/docs/symbols/Derivative.html +2 -2
  32. package/distrib/docs/symbols/Ellipse.html +2 -2
  33. package/distrib/docs/symbols/ForeignObject.html +4 -4
  34. package/distrib/docs/symbols/Functiongraph.html +2 -2
  35. package/distrib/docs/symbols/Functiongraph3D.html +2 -2
  36. package/distrib/docs/symbols/Glider.html +4 -4
  37. package/distrib/docs/symbols/Grid.html +2 -2
  38. package/distrib/docs/symbols/Group.html +2 -2
  39. package/distrib/docs/symbols/Hatch.html +2 -2
  40. package/distrib/docs/symbols/Hyperbola.html +2 -2
  41. package/distrib/docs/symbols/Image.html +4 -4
  42. package/distrib/docs/symbols/Incenter.html +4 -4
  43. package/distrib/docs/symbols/Incircle.html +2 -2
  44. package/distrib/docs/symbols/Inequality.html +2 -2
  45. package/distrib/docs/symbols/Input.html +4 -4
  46. package/distrib/docs/symbols/Integral.html +2 -2
  47. package/distrib/docs/symbols/Intersection.html +4 -4
  48. package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -2
  49. package/distrib/docs/symbols/JXG.Board.html +144 -11
  50. package/distrib/docs/symbols/JXG.Board.infobox.html +2 -2
  51. package/distrib/docs/symbols/JXG.C.html +2 -2
  52. package/distrib/docs/symbols/JXG.CA.html +2 -2
  53. package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -2
  54. package/distrib/docs/symbols/JXG.Chart.html +2 -2
  55. package/distrib/docs/symbols/JXG.Circle.html +2 -2
  56. package/distrib/docs/symbols/JXG.Complex.html +2 -2
  57. package/distrib/docs/symbols/JXG.Composition.html +2 -2
  58. package/distrib/docs/symbols/JXG.Coords.html +2 -2
  59. package/distrib/docs/symbols/JXG.CoordsElement.html +54 -2
  60. package/distrib/docs/symbols/JXG.Curve.html +2 -2
  61. package/distrib/docs/symbols/JXG.Curve3D.html +2 -2
  62. package/distrib/docs/symbols/JXG.Dump.html +2 -2
  63. package/distrib/docs/symbols/JXG.EventEmitter.html +2 -2
  64. package/distrib/docs/symbols/JXG.ForeignObject.html +3 -3
  65. package/distrib/docs/symbols/JXG.GeometryElement.html +2 -2
  66. package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -2
  67. package/distrib/docs/symbols/JXG.GeonextParser.html +2 -2
  68. package/distrib/docs/symbols/JXG.Group.html +2 -2
  69. package/distrib/docs/symbols/JXG.Image.html +3 -3
  70. package/distrib/docs/symbols/JXG.JSXGraph.html +2 -2
  71. package/distrib/docs/symbols/JXG.JessieCode.html +2 -2
  72. package/distrib/docs/symbols/JXG.Legend.html +2 -2
  73. package/distrib/docs/symbols/JXG.Line.html +2 -2
  74. package/distrib/docs/symbols/JXG.Line3D.html +2 -2
  75. package/distrib/docs/symbols/JXG.Math.Clip.html +2 -2
  76. package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -2
  77. package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -2
  78. package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -2
  79. package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -2
  80. package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -2
  81. package/distrib/docs/symbols/JXG.Math.Numerics.html +23 -15
  82. package/distrib/docs/symbols/JXG.Math.Plot.html +2 -2
  83. package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -2
  84. package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -2
  85. package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -2
  86. package/distrib/docs/symbols/JXG.Math.Poly.html +2 -2
  87. package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -2
  88. package/distrib/docs/symbols/JXG.Math.Quadtree.html +122 -7
  89. package/distrib/docs/symbols/JXG.Math.Statistics.html +2 -2
  90. package/distrib/docs/symbols/JXG.Math.Symbolic.html +2 -2
  91. package/distrib/docs/symbols/JXG.Math.html +45 -2
  92. package/distrib/docs/symbols/JXG.NoRenderer.html +2 -2
  93. package/distrib/docs/symbols/JXG.Options.html +2 -2
  94. package/distrib/docs/symbols/JXG.Plane3D.html +2 -2
  95. package/distrib/docs/symbols/JXG.Point.html +3 -3
  96. package/distrib/docs/symbols/JXG.Point3D.html +2 -2
  97. package/distrib/docs/symbols/JXG.Polygon.html +2 -2
  98. package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -2
  99. package/distrib/docs/symbols/JXG.Server.html +2 -2
  100. package/distrib/docs/symbols/JXG.Server.modules.html +2 -2
  101. package/distrib/docs/symbols/JXG.Surface3D.html +2 -2
  102. package/distrib/docs/symbols/JXG.Text.html +8 -8
  103. package/distrib/docs/symbols/JXG.Ticks.html +2 -2
  104. package/distrib/docs/symbols/JXG.Transformation.html +2 -2
  105. package/distrib/docs/symbols/JXG.Turtle.html +2 -2
  106. package/distrib/docs/symbols/JXG.Util.Base64.html +2 -2
  107. package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -2
  108. package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -2
  109. package/distrib/docs/symbols/JXG.Util.html +2 -2
  110. package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -2
  111. package/distrib/docs/symbols/JXG.View3D.html +2 -2
  112. package/distrib/docs/symbols/JXG.XML.html +2 -2
  113. package/distrib/docs/symbols/Label.html +114 -4
  114. package/distrib/docs/symbols/Legend.html +2 -2
  115. package/distrib/docs/symbols/Line.html +2 -2
  116. package/distrib/docs/symbols/Line3D.html +2 -2
  117. package/distrib/docs/symbols/Locus.html +2 -2
  118. package/distrib/docs/symbols/MajorArc.html +2 -2
  119. package/distrib/docs/symbols/MajorSector.html +2 -2
  120. package/distrib/docs/symbols/Metapostspline.html +2 -2
  121. package/distrib/docs/symbols/Midpoint.html +4 -4
  122. package/distrib/docs/symbols/MinorArc.html +2 -2
  123. package/distrib/docs/symbols/MinorSector.html +2 -2
  124. package/distrib/docs/symbols/Mirrorelement.html +2 -2
  125. package/distrib/docs/symbols/Mirrorpoint.html +4 -4
  126. package/distrib/docs/symbols/NonReflexAngle.html +2 -2
  127. package/distrib/docs/symbols/Normal.html +2 -2
  128. package/distrib/docs/symbols/Orthogonalprojection.html +4 -4
  129. package/distrib/docs/symbols/OtherIntersection.html +4 -4
  130. package/distrib/docs/symbols/Parabola.html +2 -2
  131. package/distrib/docs/symbols/Parallel.html +2 -2
  132. package/distrib/docs/symbols/Parallelpoint.html +4 -4
  133. package/distrib/docs/symbols/ParametricSurface3D.html +2 -2
  134. package/distrib/docs/symbols/Perpendicular.html +2 -2
  135. package/distrib/docs/symbols/PerpendicularPoint.html +4 -4
  136. package/distrib/docs/symbols/PerpendicularSegment.html +2 -2
  137. package/distrib/docs/symbols/Point.html +4 -4
  138. package/distrib/docs/symbols/Point3D.html +2 -2
  139. package/distrib/docs/symbols/PolarLine.html +2 -2
  140. package/distrib/docs/symbols/PolePoint.html +4 -4
  141. package/distrib/docs/symbols/Polygon.html +2 -2
  142. package/distrib/docs/symbols/PolygonalChain.html +2 -2
  143. package/distrib/docs/symbols/RadicalAxis.html +2 -2
  144. package/distrib/docs/symbols/Reflection.html +2 -2
  145. package/distrib/docs/symbols/ReflexAngle.html +2 -2
  146. package/distrib/docs/symbols/RegularPolygon.html +2 -2
  147. package/distrib/docs/symbols/Riemannsum.html +7 -3
  148. package/distrib/docs/symbols/Sector.html +2 -2
  149. package/distrib/docs/symbols/Segment.html +2 -2
  150. package/distrib/docs/symbols/Semicircle.html +2 -2
  151. package/distrib/docs/symbols/Slider.html +145 -4
  152. package/distrib/docs/symbols/Slopefield.html +2 -2
  153. package/distrib/docs/symbols/Slopetriangle.html +2 -2
  154. package/distrib/docs/symbols/Smartlabel.html +4 -4
  155. package/distrib/docs/symbols/Spline.html +2 -2
  156. package/distrib/docs/symbols/Stepfunction.html +2 -2
  157. package/distrib/docs/symbols/Tangent.html +2 -2
  158. package/distrib/docs/symbols/Tapemeasure.html +2 -2
  159. package/distrib/docs/symbols/Text.html +4 -4
  160. package/distrib/docs/symbols/Ticks.html +2 -2
  161. package/distrib/docs/symbols/Tracecurve.html +2 -2
  162. package/distrib/docs/symbols/Transformation.html +2 -2
  163. package/distrib/docs/symbols/Turtle.html +2 -2
  164. package/distrib/docs/symbols/Vectorfield.html +2 -2
  165. package/distrib/docs/symbols/View3D.html +2 -2
  166. package/distrib/docs/symbols/_global_.html +2 -2
  167. package/distrib/docs/symbols/src/src_3d_view3d.js.html +29 -30
  168. package/distrib/docs/symbols/src/src_base_board.js.html +5020 -4930
  169. package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
  170. package/distrib/docs/symbols/src/src_base_coordselement.js.html +1829 -1789
  171. package/distrib/docs/symbols/src/src_base_curve.js.html +783 -778
  172. package/distrib/docs/symbols/src/src_base_text.js.html +345 -358
  173. package/distrib/docs/symbols/src/src_element_checkbox.js.html +30 -30
  174. package/distrib/docs/symbols/src/src_element_slider.js.html +391 -377
  175. package/distrib/docs/symbols/src/src_math_numerics.js.html +1226 -1190
  176. package/distrib/docs/symbols/src/src_math_qdt.js.html +318 -194
  177. package/distrib/docs/symbols/src/src_options.js.html +7137 -7034
  178. package/distrib/docs/symbols/src/src_renderer_abstract.js.html +1168 -1167
  179. package/distrib/docs/symbols/src/src_renderer_canvas.js.html +1 -1
  180. package/distrib/docs/symbols/src/src_renderer_svg.js.html +489 -494
  181. package/distrib/docs/symbols/src/src_utils_env.js.html +127 -90
  182. package/distrib/docs.zip +0 -0
  183. package/distrib/geogebra.min.js +1 -1
  184. package/distrib/geonext.min.js +1 -1
  185. package/distrib/intergeo.min.js +1 -1
  186. package/distrib/jsxgraph.css +24 -22
  187. package/distrib/jsxgraph.zip +0 -0
  188. package/distrib/jsxgraphcore.js +2 -2
  189. package/distrib/jsxgraphcore.mjs +2 -2
  190. package/distrib/jsxgraphcore.mjs.map +1 -1
  191. package/distrib/jsxgraphsrc.js +707 -276
  192. package/distrib/jsxgraphsrc.mjs +707 -276
  193. package/distrib/jsxgraphsrc.mjs.map +1 -1
  194. package/distrib/sketch.min.js +1 -1
  195. package/package.json +1 -1
  196. package/src/3d/view3d.js +0 -1
  197. package/src/base/board.js +140 -50
  198. package/src/base/constants.js +1 -1
  199. package/src/base/coordselement.js +54 -14
  200. package/src/base/curve.js +6 -1
  201. package/src/base/text.js +13 -26
  202. package/src/element/checkbox.js +17 -17
  203. package/src/element/slider.js +16 -2
  204. package/src/math/heap.js +34 -4
  205. package/src/math/numerics.js +112 -76
  206. package/src/math/qdt.js +141 -17
  207. package/src/options.js +115 -12
  208. package/src/renderer/abstract.js +15 -14
  209. package/src/renderer/canvas.js +1 -1
  210. package/src/renderer/svg.js +0 -5
  211. package/src/utils/env.js +75 -38
@@ -1264,1170 +1264,1171 @@
1264
1264
  <span class='line'>1257</span> </span><span class="WHIT"> </span><span class="NAME">MathJax.Hub.Queue</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">"Typeset"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">MathJax.Hub</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.rendNode</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1265
1265
  <span class='line'>1258</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1266
1266
  <span class='line'>1259</span>
1267
- <span class='line'>1260</span> </span><span class="WHIT"> </span><span class="COMM">// Restore the transformation necessary for fullscreen mode</span><span class="WHIT">
1268
- <span class='line'>1261</span> </span><span class="WHIT"> </span><span class="COMM">// MathJax removes it when handling dynamic content</span><span class="WHIT">
1269
- <span class='line'>1262</span> </span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.container</span><span class="PUNC">;</span><span class="WHIT">
1270
- <span class='line'>1263</span> </span><span class="WHIT"> </span><span class="NAME">wrap_id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"fullscreenwrap_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
1271
- <span class='line'>1264</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">wrap_id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1272
- <span class='line'>1265</span> </span><span class="WHIT"> </span><span class="NAME">scale</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.containerObj._cssFullscreenStore.scale</span><span class="PUNC">;</span><span class="WHIT">
1273
- <span class='line'>1266</span> </span><span class="WHIT"> </span><span class="NAME">vshift</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.containerObj._cssFullscreenStore.vshift</span><span class="PUNC">;</span><span class="WHIT">
1274
- <span class='line'>1267</span> </span><span class="WHIT"> </span><span class="NAME">Env.scaleJSXGraphDiv</span><span class="PUNC">(</span><span class="WHIT">
1275
- <span class='line'>1268</span> </span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">wrap_id</span><span class="PUNC">,</span><span class="WHIT">
1276
- <span class='line'>1269</span> </span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT">
1277
- <span class='line'>1270</span> </span><span class="WHIT"> </span><span class="NAME">scale</span><span class="PUNC">,</span><span class="WHIT">
1278
- <span class='line'>1271</span> </span><span class="WHIT"> </span><span class="NAME">vshift</span><span class="WHIT">
1279
- <span class='line'>1272</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1280
- <span class='line'>1273</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1281
- <span class='line'>1274</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1282
- <span class='line'>1275</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"MathJax (not yet) loaded"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1283
- <span class='line'>1276</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1284
- <span class='line'>1277</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.usekatex</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1285
- <span class='line'>1278</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1286
- <span class='line'>1279</span> </span><span class="WHIT"> </span><span class="COMM">/* eslint-disable no-undef */</span><span class="WHIT">
1287
- <span class='line'>1280</span> </span><span class="WHIT"> </span><span class="NAME">katex.render</span><span class="PUNC">(</span><span class="NAME">content</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1288
- <span class='line'>1281</span> </span><span class="WHIT"> </span><span class="NAME">macros</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.katexmacros</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1289
- <span class='line'>1282</span> </span><span class="WHIT"> </span><span class="NAME">throwOnError</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT">
1290
- <span class='line'>1283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1291
- <span class='line'>1284</span> </span><span class="WHIT"> </span><span class="COMM">/* eslint-enable no-undef */</span><span class="WHIT">
1292
- <span class='line'>1285</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1293
- <span class='line'>1286</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"KaTeX not loaded (yet)"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1294
- <span class='line'>1287</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1295
- <span class='line'>1288</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.useasciimathml</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1296
- <span class='line'>1289</span> </span><span class="WHIT"> </span><span class="COMM">// This is not a constructor.</span><span class="WHIT">
1297
- <span class='line'>1290</span> </span><span class="WHIT"> </span><span class="COMM">// See http://asciimath.org/ for more information</span><span class="WHIT">
1298
- <span class='line'>1291</span> </span><span class="WHIT"> </span><span class="COMM">// about AsciiMathML and the project's source code.</span><span class="WHIT">
1299
- <span class='line'>1292</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1300
- <span class='line'>1293</span> </span><span class="WHIT"> </span><span class="NAME">AMprocessNode</span><span class="PUNC">(</span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1301
- <span class='line'>1294</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1302
- <span class='line'>1295</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"AsciiMathML not loaded (yet)"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1303
- <span class='line'>1296</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1304
- <span class='line'>1297</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1305
- <span class='line'>1298</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1306
- <span class='line'>1299</span>
1307
- <span class='line'>1300</span> </span><span class="WHIT"> </span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.rotate</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1308
- <span class='line'>1301</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1309
- <span class='line'>1302</span> </span><span class="WHIT"> </span><span class="COMM">// Don't forget to convert to rad</span><span class="WHIT">
1310
- <span class='line'>1303</span> </span><span class="WHIT"> </span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1311
- <span class='line'>1304</span> </span><span class="WHIT"> </span><span class="NAME">co</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.cos</span><span class="PUNC">(</span><span class="NAME">angle</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1312
- <span class='line'>1305</span> </span><span class="WHIT"> </span><span class="NAME">si</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="NAME">angle</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1313
- <span class='line'>1306</span>
1314
- <span class='line'>1307</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.style</span><span class="PUNC">[</span><span class="STRN">'transform'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'matrix('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
1315
- <span class='line'>1308</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">co</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">si</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">si</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">co</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
1316
- <span class='line'>1309</span> </span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">;</span><span class="WHIT">
1317
- <span class='line'>1310</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.style</span><span class="PUNC">[</span><span class="STRN">'transform-origin'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">to_v</span><span class="PUNC">;</span><span class="WHIT">
1318
- <span class='line'>1311</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1319
- <span class='line'>1312</span> </span><span class="WHIT"> </span><span class="NAME">this.transformImage</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.transformations</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1320
- <span class='line'>1313</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1321
- <span class='line'>1314</span> </span><span class="WHIT"> </span><span class="NAME">this.updateInternalText</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1322
- <span class='line'>1315</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1323
- <span class='line'>1316</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1324
- <span class='line'>1317</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1325
- <span class='line'>1318</span>
1326
- <span class='line'>1319</span> </span><span class="WHIT"> </span><span class="COMM">/**
1327
- <span class='line'>1320</span> * Converts string containing CSS properties into
1328
- <span class='line'>1321</span> * array with key-value pair objects.
1329
- <span class='line'>1322</span> *
1330
- <span class='line'>1323</span> * @example
1331
- <span class='line'>1324</span> * "color:blue; background-color:yellow" is converted to
1332
- <span class='line'>1325</span> * [{'color': 'blue'}, {'backgroundColor': 'yellow'}]
1333
- <span class='line'>1326</span> *
1334
- <span class='line'>1327</span> * @param {String} cssString String containing CSS properties
1335
- <span class='line'>1328</span> * @return {Array} Array of CSS key-value pairs
1336
- <span class='line'>1329</span> */</span><span class="WHIT">
1337
- <span class='line'>1330</span> </span><span class="WHIT"> </span><span class="NAME">_css2js</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1338
- <span class='line'>1331</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pairs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1339
- <span class='line'>1332</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1340
- <span class='line'>1333</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT">
1341
- <span class='line'>1334</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT">
1342
- <span class='line'>1335</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">,</span><span class="WHIT">
1343
- <span class='line'>1336</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT">
1344
- <span class='line'>1337</span> </span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/;$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">";"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1345
- <span class='line'>1338</span>
1346
- <span class='line'>1339</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list.length</span><span class="PUNC">;</span><span class="WHIT">
1347
- <span class='line'>1340</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1348
- <span class='line'>1341</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1349
- <span class='line'>1342</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">":"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1350
- <span class='line'>1343</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="WHIT">
1351
- <span class='line'>1344</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/-([a-z])/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">match</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">char</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1352
- <span class='line'>1345</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">char.toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1353
- <span class='line'>1346</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
1354
- <span class='line'>1347</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1355
- <span class='line'>1348</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1356
- <span class='line'>1349</span> </span><span class="WHIT"> </span><span class="NAME">pairs.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1357
- <span class='line'>1350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1358
- <span class='line'>1351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1359
- <span class='line'>1352</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">pairs</span><span class="PUNC">;</span><span class="WHIT">
1360
- <span class='line'>1353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1361
- <span class='line'>1354</span>
1362
- <span class='line'>1355</span> </span><span class="WHIT"> </span><span class="COMM">/**
1363
- <span class='line'>1356</span> * Updates font-size, color and opacity propertiey and CSS style properties of a {@link JXG.Text} node.
1364
- <span class='line'>1357</span> * This function is also called by highlight() and nohighlight().
1365
- <span class='line'>1358</span> * @param {JXG.Text} el Reference to the {@link JXG.Text} object, that has to be updated.
1366
- <span class='line'>1359</span> * @param {Boolean} doHighlight
1367
- <span class='line'>1360</span> * @see Text
1368
- <span class='line'>1361</span> * @see JXG.Text
1369
- <span class='line'>1362</span> * @see JXG.AbstractRenderer#drawText
1370
- <span class='line'>1363</span> * @see JXG.AbstractRenderer#drawInternalText
1371
- <span class='line'>1364</span> * @see JXG.AbstractRenderer#updateText
1372
- <span class='line'>1365</span> * @see JXG.AbstractRenderer#updateInternalText
1373
- <span class='line'>1366</span> * @see JXG.AbstractRenderer#updateInternalTextStyle
1374
- <span class='line'>1367</span> */</span><span class="WHIT">
1375
- <span class='line'>1368</span> </span><span class="WHIT"> </span><span class="NAME">updateTextStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1376
- <span class='line'>1369</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">,</span><span class="WHIT">
1377
- <span class='line'>1370</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">,</span><span class="WHIT">
1378
- <span class='line'>1371</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT">
1379
- <span class='line'>1372</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">,</span><span class="WHIT">
1380
- <span class='line'>1373</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT">
1381
- <span class='line'>1374</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
1382
- <span class='line'>1375</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Env.isBrowser</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">ev.display</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"internal"</span><span class="PUNC">,</span><span class="WHIT">
1383
- <span class='line'>1376</span> </span><span class="WHIT"> </span><span class="NAME">nodeList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">"rendNode"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"rendNodeTag"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"rendNodeLabel"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1384
- <span class='line'>1377</span> </span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodeList.length</span><span class="PUNC">,</span><span class="WHIT">
1385
- <span class='line'>1378</span> </span><span class="WHIT"> </span><span class="NAME">fontUnit</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.fontunit</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1386
- <span class='line'>1379</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">,</span><span class="WHIT">
1387
- <span class='line'>1380</span> </span><span class="WHIT"> </span><span class="NAME">prop</span><span class="PUNC">,</span><span class="WHIT">
1388
- <span class='line'>1381</span> </span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">,</span><span class="WHIT">
1389
- <span class='line'>1382</span> </span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">,</span><span class="WHIT">
1390
- <span class='line'>1383</span> </span><span class="WHIT"> </span><span class="NAME">styleList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">"cssdefaultstyle"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"cssstyle"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1391
- <span class='line'>1384</span> </span><span class="WHIT"> </span><span class="NAME">lenS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">styleList.length</span><span class="PUNC">;</span><span class="WHIT">
1392
- <span class='line'>1385</span>
1393
- <span class='line'>1386</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1394
- <span class='line'>1387</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokecolor</span><span class="PUNC">;</span><span class="WHIT">
1395
- <span class='line'>1388</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokeopacity</span><span class="PUNC">;</span><span class="WHIT">
1396
- <span class='line'>1389</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightcssclass</span><span class="PUNC">;</span><span class="WHIT">
1397
- <span class='line'>1390</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1398
- <span class='line'>1391</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.strokecolor</span><span class="PUNC">;</span><span class="WHIT">
1399
- <span class='line'>1392</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.strokeopacity</span><span class="PUNC">;</span><span class="WHIT">
1400
- <span class='line'>1393</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.cssclass</span><span class="PUNC">;</span><span class="WHIT">
1401
- <span class='line'>1394</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1402
- <span class='line'>1395</span>
1403
- <span class='line'>1396</span> </span><span class="WHIT"> </span><span class="COMM">// This part is executed for all text elements except internal texts in canvas.</span><span class="WHIT">
1404
- <span class='line'>1397</span> </span><span class="WHIT"> </span><span class="COMM">// HTML-texts or internal texts in SVG or VML.</span><span class="WHIT">
1405
- <span class='line'>1398</span> </span><span class="WHIT"> </span><span class="COMM">// HTML internal</span><span class="WHIT">
1406
- <span class='line'>1399</span> </span><span class="WHIT"> </span><span class="COMM">// SVG + +</span><span class="WHIT">
1407
- <span class='line'>1400</span> </span><span class="WHIT"> </span><span class="COMM">// VML + +</span><span class="WHIT">
1408
- <span class='line'>1401</span> </span><span class="WHIT"> </span><span class="COMM">// canvas + -</span><span class="WHIT">
1409
- <span class='line'>1402</span> </span><span class="WHIT"> </span><span class="COMM">// no - -</span><span class="WHIT">
1410
- <span class='line'>1403</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"html"</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"canvas"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1411
- <span class='line'>1404</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenS</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1412
- <span class='line'>1405</span> </span><span class="WHIT"> </span><span class="COMM">// First set cssString to</span><span class="WHIT">
1413
- <span class='line'>1406</span> </span><span class="WHIT"> </span><span class="COMM">// ev.cssdefaultstyle of ev.highlightcssdefaultstyle,</span><span class="WHIT">
1414
- <span class='line'>1407</span> </span><span class="WHIT"> </span><span class="COMM">// then to</span><span class="WHIT">
1415
- <span class='line'>1408</span> </span><span class="WHIT"> </span><span class="COMM">// ev.cssstyle of ev.highlightcssstyle</span><span class="WHIT">
1416
- <span class='line'>1409</span> </span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="WHIT">
1417
- <span class='line'>1410</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="NAME">doHighlight</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"highlight"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT">
1418
- <span class='line'>1411</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1419
- <span class='line'>1412</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="PUNC">[</span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1420
- <span class='line'>1413</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._css2js</span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1421
- <span class='line'>1414</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1422
- <span class='line'>1415</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1423
- <span class='line'>1416</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1424
- <span class='line'>1417</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssList.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1425
- <span class='line'>1418</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">[</span><span class="NAME">cssList</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
1426
- <span class='line'>1419</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1427
- <span class='line'>1420</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1428
- <span class='line'>1421</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1429
- <span class='line'>1422</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1430
- <span class='line'>1423</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1431
- <span class='line'>1424</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="PUNC">[</span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">;</span><span class="WHIT">
1432
- <span class='line'>1425</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1433
- <span class='line'>1426</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1434
- <span class='line'>1427</span>
1435
- <span class='line'>1428</span> </span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.fontsize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1436
- <span class='line'>1429</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.visPropOld.fontsize</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1437
- <span class='line'>1430</span> </span><span class="WHIT"> </span><span class="NAME">el.needsSizeUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1438
- <span class='line'>1431</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1439
- <span class='line'>1432</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1440
- <span class='line'>1433</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1441
- <span class='line'>1434</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">fontUnit</span><span class="PUNC">;</span><span class="WHIT">
1442
- <span class='line'>1435</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1443
- <span class='line'>1436</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1444
- <span class='line'>1437</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1445
- <span class='line'>1438</span> </span><span class="WHIT"> </span><span class="COMM">// IE needs special treatment.</span><span class="WHIT">
1446
- <span class='line'>1439</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1447
- <span class='line'>1440</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1448
- <span class='line'>1441</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">;</span><span class="WHIT">
1449
- <span class='line'>1442</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1450
- <span class='line'>1443</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1451
- <span class='line'>1444</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1452
- <span class='line'>1445</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld.fontsize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">;</span><span class="WHIT">
1453
- <span class='line'>1446</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1454
- <span class='line'>1447</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1455
- <span class='line'>1448</span>
1456
- <span class='line'>1449</span> </span><span class="WHIT"> </span><span class="NAME">this.setTabindex</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1457
- <span class='line'>1450</span>
1458
- <span class='line'>1451</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1459
- <span class='line'>1452</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"html"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1460
- <span class='line'>1453</span> </span><span class="WHIT"> </span><span class="COMM">// Set new CSS class</span><span class="WHIT">
1461
- <span class='line'>1454</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.visPropOld.cssclass</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1462
- <span class='line'>1455</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">;</span><span class="WHIT">
1463
- <span class='line'>1456</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld.cssclass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">;</span><span class="WHIT">
1464
- <span class='line'>1457</span> </span><span class="WHIT"> </span><span class="NAME">el.needsSizeUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1465
- <span class='line'>1458</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1466
- <span class='line'>1459</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1467
- <span class='line'>1460</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1468
- <span class='line'>1461</span> </span><span class="WHIT"> </span><span class="NAME">this.updateInternalTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1469
- <span class='line'>1462</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1470
- <span class='line'>1463</span>
1471
- <span class='line'>1464</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1472
- <span class='line'>1465</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1473
- <span class='line'>1466</span>
1474
- <span class='line'>1467</span> </span><span class="WHIT"> </span><span class="COMM">/**
1475
- <span class='line'>1468</span> * Set color and opacity of internal texts.
1476
- <span class='line'>1469</span> * This method is used for Canvas and VML.
1477
- <span class='line'>1470</span> * SVG needs its own version.
1478
- <span class='line'>1471</span> * @private
1479
- <span class='line'>1472</span> * @see JXG.AbstractRenderer#updateTextStyle
1480
- <span class='line'>1473</span> * @see JXG.SVGRenderer#updateInternalTextStyle
1481
- <span class='line'>1474</span> */</span><span class="WHIT">
1482
- <span class='line'>1475</span> </span><span class="WHIT"> </span><span class="NAME">updateInternalTextStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeOpacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1483
- <span class='line'>1476</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1484
- <span class='line'>1477</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1485
- <span class='line'>1478</span>
1486
- <span class='line'>1479</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1487
- <span class='line'>1480</span> * Image related stuff
1488
- <span class='line'>1481</span> * **************************/</span><span class="WHIT">
1489
- <span class='line'>1482</span>
1490
- <span class='line'>1483</span> </span><span class="WHIT"> </span><span class="COMM">/**
1491
- <span class='line'>1484</span> * Draws an {@link JXG.Image} on a board; This is just a template that has to be implemented by special
1492
- <span class='line'>1485</span> * renderers.
1493
- <span class='line'>1486</span> * @param {JXG.Image} element Reference to the image object that is to be drawn
1494
- <span class='line'>1487</span> * @see Image
1495
- <span class='line'>1488</span> * @see JXG.Image
1496
- <span class='line'>1489</span> * @see JXG.AbstractRenderer#updateImage
1497
- <span class='line'>1490</span> */</span><span class="WHIT">
1498
- <span class='line'>1491</span> </span><span class="WHIT"> </span><span class="NAME">drawImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1499
- <span class='line'>1492</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1500
- <span class='line'>1493</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1501
- <span class='line'>1494</span>
1502
- <span class='line'>1495</span> </span><span class="WHIT"> </span><span class="COMM">/**
1503
- <span class='line'>1496</span> * Updates the properties of an {@link JXG.Image} element.
1504
- <span class='line'>1497</span> * @param {JXG.Image} el Reference to an {@link JXG.Image} object, that has to be updated.
1505
- <span class='line'>1498</span> * @see Image
1506
- <span class='line'>1499</span> * @see JXG.Image
1507
- <span class='line'>1500</span> * @see JXG.AbstractRenderer#drawImage
1508
- <span class='line'>1501</span> */</span><span class="WHIT">
1509
- <span class='line'>1502</span> </span><span class="WHIT"> </span><span class="NAME">updateImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1510
- <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="NAME">this.updateRectPrim</span><span class="PUNC">(</span><span class="WHIT">
1511
- <span class='line'>1504</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT">
1512
- <span class='line'>1505</span> </span><span class="WHIT"> </span><span class="NAME">el.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1513
- <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="NAME">el.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1514
- <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1515
- <span class='line'>1508</span> </span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT">
1516
- <span class='line'>1509</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1517
- <span class='line'>1510</span>
1518
- <span class='line'>1511</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageURL</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1519
- <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="NAME">this.transformImage</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.transformations</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1520
- <span class='line'>1513</span> </span><span class="WHIT"> </span><span class="NAME">this._updateVisual</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">stroke</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dash</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1521
- <span class='line'>1514</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1522
- <span class='line'>1515</span>
1523
- <span class='line'>1516</span> </span><span class="WHIT"> </span><span class="COMM">/**
1524
- <span class='line'>1517</span> * Multiplication of transformations without updating. That means, at that point it is expected that the
1525
- <span class='line'>1518</span> * matrices contain numbers only. First, the origin in user coords is translated to &lt;tt>(0,0)&lt;/tt> in screen
1526
- <span class='line'>1519</span> * coords. Then, the stretch factors are divided out. After the transformations in user coords, the stretch
1527
- <span class='line'>1520</span> * factors are multiplied in again, and the origin in user coords is translated back to its position. This
1528
- <span class='line'>1521</span> * method does not have to be implemented in a new renderer.
1529
- <span class='line'>1522</span> * @param {JXG.GeometryElement} el A JSXGraph element. We only need its board property.
1530
- <span class='line'>1523</span> * @param {Array} transformations An array of JXG.Transformations.
1531
- <span class='line'>1524</span> * @returns {Array} A matrix represented by a two dimensional array of numbers.
1532
- <span class='line'>1525</span> * @see JXG.AbstractRenderer#transformImage
1533
- <span class='line'>1526</span> */</span><span class="WHIT">
1534
- <span class='line'>1527</span> </span><span class="WHIT"> </span><span class="NAME">joinTransforms</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transformations</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1535
- <span class='line'>1528</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1536
- <span class='line'>1529</span> </span><span class="WHIT"> </span><span class="NAME">ox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.origin.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1537
- <span class='line'>1530</span> </span><span class="WHIT"> </span><span class="NAME">oy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.origin.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1538
- <span class='line'>1531</span> </span><span class="WHIT"> </span><span class="NAME">ux</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.unitX</span><span class="PUNC">,</span><span class="WHIT">
1539
- <span class='line'>1532</span> </span><span class="WHIT"> </span><span class="NAME">uy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.unitY</span><span class="PUNC">,</span><span class="WHIT">
1540
- <span class='line'>1533</span> </span><span class="WHIT"> </span><span class="COMM">// Translate to 0,0 in screen coords</span><span class="WHIT">
1541
- <span class='line'>1534</span> </span><span class="WHIT"> </span><span class="COMM">/*
1542
- <span class='line'>1535</span> m = [[1, 0, 0], [0, 1, 0], [0, 0, 1]],
1543
- <span class='line'>1536</span> mpre1 = [[1, 0, 0],
1544
- <span class='line'>1537</span> [-ox, 1, 0],
1545
- <span class='line'>1538</span> [-oy, 0, 1]],
1546
- <span class='line'>1539</span> // Scale
1547
- <span class='line'>1540</span> mpre2 = [[1, 0, 0],
1548
- <span class='line'>1541</span> [0, 1 / ux, 0],
1549
- <span class='line'>1542</span> [0, 0, -1 / uy]],
1550
- <span class='line'>1543</span> // Scale back
1551
- <span class='line'>1544</span> mpost2 = [[1, 0, 0],
1552
- <span class='line'>1545</span> [0, ux, 0],
1553
- <span class='line'>1546</span> [0, 0, -uy]],
1554
- <span class='line'>1547</span> // Translate back
1555
- <span class='line'>1548</span> mpost1 = [[1, 0, 0],
1556
- <span class='line'>1549</span> [ox, 1, 0],
1557
- <span class='line'>1550</span> [oy, 0, 1]],
1558
- <span class='line'>1551</span> */</span><span class="WHIT">
1559
- <span class='line'>1552</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">transformations.length</span><span class="PUNC">,</span><span class="WHIT">
1560
- <span class='line'>1553</span> </span><span class="WHIT"> </span><span class="COMM">// Translate to 0,0 in screen coords and then scale</span><span class="WHIT">
1561
- <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
1562
- <span class='line'>1555</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1563
- <span class='line'>1556</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">-</span><span class="NAME">ox</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1564
- <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">oy</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">uy</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">uy</span><span class="PUNC">]</span><span class="WHIT">
1565
- <span class='line'>1558</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1566
- <span class='line'>1559</span>
1567
- <span class='line'>1560</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1568
- <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpre1, m);</span><span class="WHIT">
1569
- <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpre2, m);</span><span class="WHIT">
1570
- <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.matMatMult</span><span class="PUNC">(</span><span class="NAME">transformations</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">matrix</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1571
- <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpost2, m);</span><span class="WHIT">
1572
- <span class='line'>1565</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpost1, m);</span><span class="WHIT">
1573
- <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1574
- <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="COMM">// Scale back and then translate back</span><span class="WHIT">
1575
- <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.matMatMult</span><span class="PUNC">(</span><span class="WHIT">
1576
- <span class='line'>1569</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
1577
- <span class='line'>1570</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1578
- <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">ox</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1579
- <span class='line'>1572</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">oy</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">uy</span><span class="PUNC">]</span><span class="WHIT">
1580
- <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1581
- <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT">
1582
- <span class='line'>1575</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1583
- <span class='line'>1576</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
1584
- <span class='line'>1577</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1585
- <span class='line'>1578</span>
1586
- <span class='line'>1579</span> </span><span class="WHIT"> </span><span class="COMM">/**
1587
- <span class='line'>1580</span> * Applies transformations on images and text elements. This method has to implemented in
1588
- <span class='line'>1581</span> * all descendant classes where text and image transformations are to be supported.
1589
- <span class='line'>1582</span> * &lt;p>
1590
- <span class='line'>1583</span> * Only affine transformation are supported, no proper projective transformations. This means, the
1591
- <span class='line'>1584</span> * respective entries of the transformation matrix are simply ignored.
1592
- <span class='line'>1585</span> *
1593
- <span class='line'>1586</span> * @param {JXG.Image|JXG.Text} element A {@link JXG.Image} or {@link JXG.Text} object.
1594
- <span class='line'>1587</span> * @param {Array} transformations An array of {@link JXG.Transformation} objects. This is usually the
1595
- <span class='line'>1588</span> * transformations property of the given element &lt;tt>el&lt;/tt>.
1596
- <span class='line'>1589</span> */</span><span class="WHIT">
1597
- <span class='line'>1590</span> </span><span class="WHIT"> </span><span class="NAME">transformImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transformations</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1598
- <span class='line'>1591</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1599
- <span class='line'>1592</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1600
- <span class='line'>1593</span>
1601
- <span class='line'>1594</span> </span><span class="WHIT"> </span><span class="COMM">/**
1602
- <span class='line'>1595</span> * If the URL of the image is provided by a function the URL has to be updated during updateImage()
1603
- <span class='line'>1596</span> * @param {JXG.Image} element Reference to an image object.
1604
- <span class='line'>1597</span> * @see JXG.AbstractRenderer#updateImage
1605
- <span class='line'>1598</span> */</span><span class="WHIT">
1606
- <span class='line'>1599</span> </span><span class="WHIT"> </span><span class="NAME">updateImageURL</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1607
- <span class='line'>1600</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1608
- <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1609
- <span class='line'>1602</span>
1610
- <span class='line'>1603</span> </span><span class="WHIT"> </span><span class="COMM">/**
1611
- <span class='line'>1604</span> * Updates CSS style properties of a {@link JXG.Image} node.
1612
- <span class='line'>1605</span> * In SVGRenderer opacity is the only available style element.
1613
- <span class='line'>1606</span> * This function is called by highlight() and nohighlight().
1614
- <span class='line'>1607</span> * This function works for VML.
1615
- <span class='line'>1608</span> * It does not work for Canvas.
1616
- <span class='line'>1609</span> * SVGRenderer overwrites this method.
1617
- <span class='line'>1610</span> * @param {JXG.Text} el Reference to the {@link JXG.Image} object, that has to be updated.
1618
- <span class='line'>1611</span> * @param {Boolean} doHighlight
1619
- <span class='line'>1612</span> * @see Image
1620
- <span class='line'>1613</span> * @see JXG.Image
1621
- <span class='line'>1614</span> * @see JXG.AbstractRenderer#highlight
1622
- <span class='line'>1615</span> * @see JXG.AbstractRenderer#noHighlight
1623
- <span class='line'>1616</span> */</span><span class="WHIT">
1624
- <span class='line'>1617</span> </span><span class="WHIT"> </span><span class="NAME">updateImageStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1625
- <span class='line'>1618</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="WHIT">
1626
- <span class='line'>1619</span> </span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">el.visProp.highlightcssclass</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">el.visProp.cssclass</span><span class="WHIT">
1627
- <span class='line'>1620</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1628
- <span class='line'>1621</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1629
- <span class='line'>1622</span>
1630
- <span class='line'>1623</span> </span><span class="WHIT"> </span><span class="NAME">drawForeignObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1631
- <span class='line'>1624</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1632
- <span class='line'>1625</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1633
- <span class='line'>1626</span>
1634
- <span class='line'>1627</span> </span><span class="WHIT"> </span><span class="NAME">updateForeignObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1635
- <span class='line'>1628</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1636
- <span class='line'>1629</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1637
- <span class='line'>1630</span>
1638
- <span class='line'>1631</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1639
- <span class='line'>1632</span> * Render primitive objects
1640
- <span class='line'>1633</span> * **************************/</span><span class="WHIT">
1641
- <span class='line'>1634</span>
1642
- <span class='line'>1635</span> </span><span class="WHIT"> </span><span class="COMM">/**
1643
- <span class='line'>1636</span> * Appends a node to a specific layer level. This is just an abstract method and has to be implemented
1644
- <span class='line'>1637</span> * in all renderers that want to use the &lt;tt>createPrim&lt;/tt> model to draw.
1645
- <span class='line'>1638</span> * @param {Node} node A DOM tree node.
1646
- <span class='line'>1639</span> * @param {Number} level The layer the node is attached to. This is the index of the layer in
1647
- <span class='line'>1640</span> * {@link JXG.SVGRenderer#layer} or the &lt;tt>z-index&lt;/tt> style property of the node in VMLRenderer.
1648
- <span class='line'>1641</span> */</span><span class="WHIT">
1649
- <span class='line'>1642</span> </span><span class="WHIT"> </span><span class="NAME">appendChildPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1650
- <span class='line'>1643</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1651
- <span class='line'>1644</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1652
- <span class='line'>1645</span>
1653
- <span class='line'>1646</span> </span><span class="WHIT"> </span><span class="COMM">/**
1654
- <span class='line'>1647</span> * Stores the rendering nodes. This is an abstract method which has to be implemented in all renderers that use
1655
- <span class='line'>1648</span> * the &lt;tt>createPrim&lt;/tt> method.
1656
- <span class='line'>1649</span> * @param {JXG.GeometryElement} element A JSXGraph element.
1657
- <span class='line'>1650</span> * @param {String} type The XML node name. Only used in VMLRenderer.
1658
- <span class='line'>1651</span> */</span><span class="WHIT">
1659
- <span class='line'>1652</span> </span><span class="WHIT"> </span><span class="NAME">appendNodesToElement</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1660
- <span class='line'>1653</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1661
- <span class='line'>1654</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1662
- <span class='line'>1655</span>
1663
- <span class='line'>1656</span> </span><span class="WHIT"> </span><span class="COMM">/**
1664
- <span class='line'>1657</span> * Creates a node of a given type with a given id.
1665
- <span class='line'>1658</span> * @param {String} type The type of the node to create.
1666
- <span class='line'>1659</span> * @param {String} id Set the id attribute to this.
1667
- <span class='line'>1660</span> * @returns {Node} Reference to the created node.
1668
- <span class='line'>1661</span> */</span><span class="WHIT">
1669
- <span class='line'>1662</span> </span><span class="WHIT"> </span><span class="NAME">createPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1670
- <span class='line'>1663</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1671
- <span class='line'>1664</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1672
- <span class='line'>1665</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1673
- <span class='line'>1666</span>
1674
- <span class='line'>1667</span> </span><span class="WHIT"> </span><span class="COMM">/**
1675
- <span class='line'>1668</span> * Removes an element node. Just a stub.
1676
- <span class='line'>1669</span> * @param {Node} node The node to remove.
1677
- <span class='line'>1670</span> */</span><span class="WHIT">
1678
- <span class='line'>1671</span> </span><span class="WHIT"> </span><span class="NAME">remove</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1679
- <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1680
- <span class='line'>1673</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1681
- <span class='line'>1674</span>
1682
- <span class='line'>1675</span> </span><span class="WHIT"> </span><span class="COMM">/**
1683
- <span class='line'>1676</span> * Can be used to create the nodes to display arrows. This is an abstract method which has to be implemented
1684
- <span class='line'>1677</span> * in any descendant renderer.
1685
- <span class='line'>1678</span> * @param {JXG.GeometryElement} element The element the arrows are to be attached to.
1686
- <span class='line'>1679</span> * @param {Object} arrowData Data concerning possible arrow heads
1687
- <span class='line'>1680</span> *
1688
- <span class='line'>1681</span> */</span><span class="WHIT">
1689
- <span class='line'>1682</span> </span><span class="WHIT"> </span><span class="NAME">makeArrows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arrowData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1690
- <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1691
- <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1692
- <span class='line'>1685</span>
1693
- <span class='line'>1686</span> </span><span class="WHIT"> </span><span class="COMM">/**
1694
- <span class='line'>1687</span> * Updates width of an arrow DOM node. Used in
1695
- <span class='line'>1688</span> * @param {Node} node The arrow node.
1696
- <span class='line'>1689</span> * @param {Number} width
1697
- <span class='line'>1690</span> * @param {Node} parentNode Used in IE only
1698
- <span class='line'>1691</span> */</span><span class="WHIT">
1699
- <span class='line'>1692</span> </span><span class="WHIT"> </span><span class="NAME">_setArrowWidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parentNode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1700
- <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1701
- <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1702
- <span class='line'>1695</span>
1703
- <span class='line'>1696</span> </span><span class="WHIT"> </span><span class="COMM">/**
1704
- <span class='line'>1697</span> * Updates an ellipse node primitive. This is an abstract method which has to be implemented in all renderers
1705
- <span class='line'>1698</span> * that use the &lt;tt>createPrim&lt;/tt> method.
1706
- <span class='line'>1699</span> * @param {Node} node Reference to the node.
1707
- <span class='line'>1700</span> * @param {Number} x Centre X coordinate
1708
- <span class='line'>1701</span> * @param {Number} y Centre Y coordinate
1709
- <span class='line'>1702</span> * @param {Number} rx The x-axis radius.
1710
- <span class='line'>1703</span> * @param {Number} ry The y-axis radius.
1711
- <span class='line'>1704</span> */</span><span class="WHIT">
1712
- <span class='line'>1705</span> </span><span class="WHIT"> </span><span class="NAME">updateEllipsePrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">rx</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ry</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1713
- <span class='line'>1706</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1714
- <span class='line'>1707</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1715
- <span class='line'>1708</span>
1716
- <span class='line'>1709</span> </span><span class="WHIT"> </span><span class="COMM">/**
1717
- <span class='line'>1710</span> * Refreshes a line node. This is an abstract method which has to be implemented in all renderers that use
1718
- <span class='line'>1711</span> * the &lt;tt>createPrim&lt;/tt> method.
1719
- <span class='line'>1712</span> * @param {Node} node The node to be refreshed.
1720
- <span class='line'>1713</span> * @param {Number} p1x The first point's x coordinate.
1721
- <span class='line'>1714</span> * @param {Number} p1y The first point's y coordinate.
1722
- <span class='line'>1715</span> * @param {Number} p2x The second point's x coordinate.
1723
- <span class='line'>1716</span> * @param {Number} p2y The second point's y coordinate.
1724
- <span class='line'>1717</span> * @param {JXG.Board} board
1725
- <span class='line'>1718</span> */</span><span class="WHIT">
1726
- <span class='line'>1719</span> </span><span class="WHIT"> </span><span class="NAME">updateLinePrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p1x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p1y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p2x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p2y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1727
- <span class='line'>1720</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1728
- <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1729
- <span class='line'>1722</span>
1730
- <span class='line'>1723</span> </span><span class="WHIT"> </span><span class="COMM">/**
1731
- <span class='line'>1724</span> * Updates a path element. This is an abstract method which has to be implemented in all renderers that use
1732
- <span class='line'>1725</span> * the &lt;tt>createPrim&lt;/tt> method.
1733
- <span class='line'>1726</span> * @param {Node} node The path node.
1734
- <span class='line'>1727</span> * @param {String} pathString A string formatted like e.g. &lt;em>'M 1,2 L 3,1 L5,5'&lt;/em>. The format of the string
1735
- <span class='line'>1728</span> * depends on the rendering engine.
1736
- <span class='line'>1729</span> * @param {JXG.Board} board Reference to the element's board.
1737
- <span class='line'>1730</span> */</span><span class="WHIT">
1738
- <span class='line'>1731</span> </span><span class="WHIT"> </span><span class="NAME">updatePathPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pathString</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1739
- <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1740
- <span class='line'>1733</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1741
- <span class='line'>1734</span>
1742
- <span class='line'>1735</span> </span><span class="WHIT"> </span><span class="COMM">/**
1743
- <span class='line'>1736</span> * Builds a path data string to draw a point with a face other than &lt;em>rect&lt;/em> and &lt;em>circle&lt;/em>. Since
1744
- <span class='line'>1737</span> * the format of such a string usually depends on the renderer this method
1745
- <span class='line'>1738</span> * is only an abstract method. Therefore, it has to be implemented in the descendant renderer itself unless
1746
- <span class='line'>1739</span> * the renderer does not use the createPrim interface but the draw* interfaces to paint.
1747
- <span class='line'>1740</span> * @param {JXG.Point} element The point element
1748
- <span class='line'>1741</span> * @param {Number} size A positive number describing the size. Usually the half of the width and height of
1749
- <span class='line'>1742</span> * the drawn point.
1750
- <span class='line'>1743</span> * @param {String} type A string describing the point's face. This method only accepts the shortcut version of
1751
- <span class='line'>1744</span> * each possible face: &lt;tt>x, +, |, -, [], &lt;>, ^, v, >, &lt; &lt;/tt>
1752
- <span class='line'>1745</span> */</span><span class="WHIT">
1753
- <span class='line'>1746</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringPoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1754
- <span class='line'>1747</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1755
- <span class='line'>1748</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1756
- <span class='line'>1749</span>
1757
- <span class='line'>1750</span> </span><span class="WHIT"> </span><span class="COMM">/**
1758
- <span class='line'>1751</span> * Builds a path data string from a {@link JXG.Curve} element. Since the path data strings heavily depend on the
1759
- <span class='line'>1752</span> * underlying rendering technique this method is just a stub. Although such a path string is of no use for the
1760
- <span class='line'>1753</span> * CanvasRenderer, this method is used there to draw a path directly.
1761
- <span class='line'>1754</span> * @param element
1762
- <span class='line'>1755</span> */</span><span class="WHIT">
1763
- <span class='line'>1756</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1764
- <span class='line'>1757</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1765
- <span class='line'>1758</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1766
- <span class='line'>1759</span>
1767
- <span class='line'>1760</span> </span><span class="WHIT"> </span><span class="COMM">/**
1768
- <span class='line'>1761</span> * Builds a path data string from a {@link JXG.Curve} element such that the curve looks like hand drawn. Since
1769
- <span class='line'>1762</span> * the path data strings heavily depend on the underlying rendering technique this method is just a stub.
1770
- <span class='line'>1763</span> * Although such a path string is of no use for the CanvasRenderer, this method is used there to draw a path
1771
- <span class='line'>1764</span> * directly.
1772
- <span class='line'>1765</span> * @param element
1773
- <span class='line'>1766</span> */</span><span class="WHIT">
1774
- <span class='line'>1767</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringBezierPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1775
- <span class='line'>1768</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1776
- <span class='line'>1769</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1777
- <span class='line'>1770</span>
1778
- <span class='line'>1771</span> </span><span class="WHIT"> </span><span class="COMM">/**
1779
- <span class='line'>1772</span> * Update a polygon primitive.
1780
- <span class='line'>1773</span> * @param {Node} node
1781
- <span class='line'>1774</span> * @param {JXG.Polygon} element A JSXGraph element of type {@link JXG.Polygon}
1782
- <span class='line'>1775</span> */</span><span class="WHIT">
1783
- <span class='line'>1776</span> </span><span class="WHIT"> </span><span class="NAME">updatePolygonPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1784
- <span class='line'>1777</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1785
- <span class='line'>1778</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1786
- <span class='line'>1779</span>
1787
- <span class='line'>1780</span> </span><span class="WHIT"> </span><span class="COMM">/**
1788
- <span class='line'>1781</span> * Update a rectangle primitive. This is used only for points with face of type 'rect'.
1789
- <span class='line'>1782</span> * @param {Node} node The node yearning to be updated.
1790
- <span class='line'>1783</span> * @param {Number} x x coordinate of the top left vertex.
1791
- <span class='line'>1784</span> * @param {Number} y y coordinate of the top left vertex.
1792
- <span class='line'>1785</span> * @param {Number} w Width of the rectangle.
1793
- <span class='line'>1786</span> * @param {Number} h The rectangle's height.
1794
- <span class='line'>1787</span> */</span><span class="WHIT">
1795
- <span class='line'>1788</span> </span><span class="WHIT"> </span><span class="NAME">updateRectPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1796
- <span class='line'>1789</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1797
- <span class='line'>1790</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1798
- <span class='line'>1791</span>
1799
- <span class='line'>1792</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1800
- <span class='line'>1793</span> * Set Attributes
1801
- <span class='line'>1794</span> * **************************/</span><span class="WHIT">
1802
- <span class='line'>1795</span>
1803
- <span class='line'>1796</span> </span><span class="WHIT"> </span><span class="COMM">/**
1804
- <span class='line'>1797</span> * Sets a node's attribute.
1805
- <span class='line'>1798</span> * @param {Node} node The node that is to be updated.
1806
- <span class='line'>1799</span> * @param {String} key Name of the attribute.
1807
- <span class='line'>1800</span> * @param {String} val New value for the attribute.
1808
- <span class='line'>1801</span> */</span><span class="WHIT">
1809
- <span class='line'>1802</span> </span><span class="WHIT"> </span><span class="NAME">setPropertyPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1810
- <span class='line'>1803</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1811
- <span class='line'>1804</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1812
- <span class='line'>1805</span>
1813
- <span class='line'>1806</span> </span><span class="WHIT"> </span><span class="NAME">setTabindex</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1814
- <span class='line'>1807</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1815
- <span class='line'>1808</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element.board.attr.keyboard.enabled</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">element.rendNode</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1816
- <span class='line'>1809</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">element.visProp.tabindex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1817
- <span class='line'>1810</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.visPropCalc.visible</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">element.visProp.fixed</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1818
- <span class='line'>1811</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1819
- <span class='line'>1812</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1820
- <span class='line'>1813</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">element.visPropOld.tabindex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1821
- <span class='line'>1814</span> </span><span class="WHIT"> </span><span class="NAME">element.rendNode.setAttribute</span><span class="PUNC">(</span><span class="STRN">"tabindex"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1822
- <span class='line'>1815</span> </span><span class="WHIT"> </span><span class="NAME">element.visPropOld.tabindex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1823
- <span class='line'>1816</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1824
- <span class='line'>1817</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1825
- <span class='line'>1818</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1826
- <span class='line'>1819</span>
1827
- <span class='line'>1820</span> </span><span class="WHIT"> </span><span class="COMM">/**
1828
- <span class='line'>1821</span> * Shows or hides an element on the canvas; Only a stub, requires implementation in the derived renderer.
1829
- <span class='line'>1822</span> * @param {JXG.GeometryElement} element Reference to the object that has to appear.
1830
- <span class='line'>1823</span> * @param {Boolean} value true to show the element, false to hide the element.
1831
- <span class='line'>1824</span> */</span><span class="WHIT">
1832
- <span class='line'>1825</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1833
- <span class='line'>1826</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1834
- <span class='line'>1827</span> </span><span class="WHIT"> </span><span class="NAME">element.visPropOld.visible</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
1835
- <span class='line'>1828</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1836
- <span class='line'>1829</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1837
- <span class='line'>1830</span>
1838
- <span class='line'>1831</span> </span><span class="WHIT"> </span><span class="COMM">/**
1839
- <span class='line'>1832</span> * Shows a hidden element on the canvas; Only a stub, requires implementation in the derived renderer.
1840
- <span class='line'>1833</span> *
1841
- <span class='line'>1834</span> * Please use JXG.AbstractRenderer#display instead
1842
- <span class='line'>1835</span> * @param {JXG.GeometryElement} element Reference to the object that has to appear.
1843
- <span class='line'>1836</span> * @see JXG.AbstractRenderer#hide
1844
- <span class='line'>1837</span> * @deprecated
1845
- <span class='line'>1838</span> */</span><span class="WHIT">
1846
- <span class='line'>1839</span> </span><span class="WHIT"> </span><span class="NAME">show</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1847
- <span class='line'>1840</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1848
- <span class='line'>1841</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1849
- <span class='line'>1842</span>
1850
- <span class='line'>1843</span> </span><span class="WHIT"> </span><span class="COMM">/**
1851
- <span class='line'>1844</span> * Hides an element on the canvas; Only a stub, requires implementation in the derived renderer.
1852
- <span class='line'>1845</span> *
1853
- <span class='line'>1846</span> * Please use JXG.AbstractRenderer#display instead
1854
- <span class='line'>1847</span> * @param {JXG.GeometryElement} element Reference to the geometry element that has to disappear.
1855
- <span class='line'>1848</span> * @see JXG.AbstractRenderer#show
1856
- <span class='line'>1849</span> * @deprecated
1857
- <span class='line'>1850</span> */</span><span class="WHIT">
1858
- <span class='line'>1851</span> </span><span class="WHIT"> </span><span class="NAME">hide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1859
- <span class='line'>1852</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1860
- <span class='line'>1853</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1861
- <span class='line'>1854</span>
1862
- <span class='line'>1855</span> </span><span class="WHIT"> </span><span class="COMM">/**
1863
- <span class='line'>1856</span> * Sets the buffering as recommended by SVGWG. Until now only Opera supports this and will be ignored by other
1864
- <span class='line'>1857</span> * browsers. Although this feature is only supported by SVG we have this method in {@link JXG.AbstractRenderer}
1865
- <span class='line'>1858</span> * because it is called from outside the renderer.
1866
- <span class='line'>1859</span> * @param {Node} node The SVG DOM Node which buffering type to update.
1867
- <span class='line'>1860</span> * @param {String} type Either 'auto', 'dynamic', or 'static'. For an explanation see
1868
- <span class='line'>1861</span> * {@link https://www.w3.org/TR/SVGTiny12/painting.html#BufferedRenderingProperty}.
1869
- <span class='line'>1862</span> */</span><span class="WHIT">
1870
- <span class='line'>1863</span> </span><span class="WHIT"> </span><span class="NAME">setBuffering</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1871
- <span class='line'>1864</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1872
- <span class='line'>1865</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1873
- <span class='line'>1866</span>
1874
- <span class='line'>1867</span> </span><span class="WHIT"> </span><span class="COMM">/**
1875
- <span class='line'>1868</span> * Sets an element's dash style.
1876
- <span class='line'>1869</span> * @param {JXG.GeometryElement} element An JSXGraph element.
1877
- <span class='line'>1870</span> */</span><span class="WHIT">
1878
- <span class='line'>1871</span> </span><span class="WHIT"> </span><span class="NAME">setDashStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1879
- <span class='line'>1872</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1880
- <span class='line'>1873</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1881
- <span class='line'>1874</span>
1882
- <span class='line'>1875</span> </span><span class="WHIT"> </span><span class="COMM">/**
1883
- <span class='line'>1876</span> * Puts an object into draft mode, i.e. it's visual appearance will be changed. For GEONE&lt;sub>x&lt;/sub>T backwards
1884
- <span class='line'>1877</span> * compatibility.
1885
- <span class='line'>1878</span> * @param {JXG.GeometryElement} el Reference of the object that is in draft mode.
1886
- <span class='line'>1879</span> */</span><span class="WHIT">
1887
- <span class='line'>1880</span> </span><span class="WHIT"> </span><span class="NAME">setDraft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1888
- <span class='line'>1881</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.draft</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1889
- <span class='line'>1882</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
1890
- <span class='line'>1883</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1891
- <span class='line'>1884</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.color</span><span class="PUNC">,</span><span class="WHIT">
1892
- <span class='line'>1885</span> </span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.opacity</span><span class="PUNC">;</span><span class="WHIT">
1893
- <span class='line'>1886</span>
1894
- <span class='line'>1887</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1895
- <span class='line'>1888</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1896
- <span class='line'>1889</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1897
- <span class='line'>1890</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1898
- <span class='line'>1891</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_POINT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1899
- <span class='line'>1892</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1900
- <span class='line'>1893</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1901
- <span class='line'>1894</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1902
- <span class='line'>1895</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1903
- <span class='line'>1896</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1904
- <span class='line'>1897</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.strokeWidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1905
- <span class='line'>1898</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1906
- <span class='line'>1899</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1907
- <span class='line'>1900</span>
1908
- <span class='line'>1901</span> </span><span class="WHIT"> </span><span class="COMM">/**
1909
- <span class='line'>1902</span> * Puts an object from draft mode back into normal mode.
1910
- <span class='line'>1903</span> * @param {JXG.GeometryElement} el Reference of the object that no longer is in draft mode.
1911
- <span class='line'>1904</span> */</span><span class="WHIT">
1912
- <span class='line'>1905</span> </span><span class="WHIT"> </span><span class="NAME">removeDraft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1913
- <span class='line'>1906</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1914
- <span class='line'>1907</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1915
- <span class='line'>1908</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1916
- <span class='line'>1909</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1917
- <span class='line'>1910</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_POINT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1918
- <span class='line'>1911</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1919
- <span class='line'>1912</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1920
- <span class='line'>1913</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokecolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokeopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1921
- <span class='line'>1914</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1922
- <span class='line'>1915</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1923
- <span class='line'>1916</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1924
- <span class='line'>1917</span>
1925
- <span class='line'>1918</span> </span><span class="WHIT"> </span><span class="COMM">/**
1926
- <span class='line'>1919</span> * Sets up nodes for rendering a gradient fill.
1927
- <span class='line'>1920</span> * @param element
1928
- <span class='line'>1921</span> */</span><span class="WHIT">
1929
- <span class='line'>1922</span> </span><span class="WHIT"> </span><span class="NAME">setGradient</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1930
- <span class='line'>1923</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1931
- <span class='line'>1924</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1932
- <span class='line'>1925</span>
1933
- <span class='line'>1926</span> </span><span class="WHIT"> </span><span class="COMM">/**
1934
- <span class='line'>1927</span> * Updates the gradient fill.
1935
- <span class='line'>1928</span> * @param {JXG.GeometryElement} element An JSXGraph element with an area that can be filled.
1936
- <span class='line'>1929</span> */</span><span class="WHIT">
1937
- <span class='line'>1930</span> </span><span class="WHIT"> </span><span class="NAME">updateGradient</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1938
- <span class='line'>1931</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1939
- <span class='line'>1932</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1940
- <span class='line'>1933</span>
1941
- <span class='line'>1934</span> </span><span class="WHIT"> </span><span class="COMM">/**
1942
- <span class='line'>1935</span> * Sets the transition duration (in milliseconds) for fill color and stroke
1943
- <span class='line'>1936</span> * color and opacity.
1944
- <span class='line'>1937</span> * @param {JXG.GeometryElement} element Reference of the object that wants a
1945
- <span class='line'>1938</span> * new transition duration.
1946
- <span class='line'>1939</span> * @param {Number} duration (Optional) duration in milliseconds. If not given,
1947
- <span class='line'>1940</span> * element.visProp.transitionDuration is taken. This is the default.
1948
- <span class='line'>1941</span> */</span><span class="WHIT">
1949
- <span class='line'>1942</span> </span><span class="WHIT"> </span><span class="NAME">setObjectTransition</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1950
- <span class='line'>1943</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1951
- <span class='line'>1944</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1952
- <span class='line'>1945</span>
1953
- <span class='line'>1946</span> </span><span class="WHIT"> </span><span class="COMM">/**
1954
- <span class='line'>1947</span> * Sets an objects fill color.
1955
- <span class='line'>1948</span> * @param {JXG.GeometryElement} element Reference of the object that wants a new fill color.
1956
- <span class='line'>1949</span> * @param {String} color Color in a HTML/CSS compatible format. If you don't want any fill color at all, choose
1957
- <span class='line'>1950</span> * 'none'.
1958
- <span class='line'>1951</span> * @param {Number} opacity Opacity of the fill color. Must be between 0 and 1.
1959
- <span class='line'>1952</span> */</span><span class="WHIT">
1960
- <span class='line'>1953</span> </span><span class="WHIT"> </span><span class="NAME">setObjectFillColor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1961
- <span class='line'>1954</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1962
- <span class='line'>1955</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1963
- <span class='line'>1956</span>
1964
- <span class='line'>1957</span> </span><span class="WHIT"> </span><span class="COMM">/**
1965
- <span class='line'>1958</span> * Changes an objects stroke color to the given color.
1966
- <span class='line'>1959</span> * @param {JXG.GeometryElement} element Reference of the {@link JXG.GeometryElement} that gets a new stroke
1967
- <span class='line'>1960</span> * color.
1968
- <span class='line'>1961</span> * @param {String} color Color value in a HTML compatible format, e.g. &lt;strong>#00ff00&lt;/strong> or
1969
- <span class='line'>1962</span> * &lt;strong>green&lt;/strong> for green.
1970
- <span class='line'>1963</span> * @param {Number} opacity Opacity of the fill color. Must be between 0 and 1.
1971
- <span class='line'>1964</span> */</span><span class="WHIT">
1972
- <span class='line'>1965</span> </span><span class="WHIT"> </span><span class="NAME">setObjectStrokeColor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1973
- <span class='line'>1966</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1974
- <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1975
- <span class='line'>1968</span>
1976
- <span class='line'>1969</span> </span><span class="WHIT"> </span><span class="COMM">/**
1977
- <span class='line'>1970</span> * Sets an element's stroke width.
1978
- <span class='line'>1971</span> * @param {JXG.GeometryElement} element Reference to the geometry element.
1979
- <span class='line'>1972</span> * @param {Number} width The new stroke width to be assigned to the element.
1980
- <span class='line'>1973</span> */</span><span class="WHIT">
1981
- <span class='line'>1974</span> </span><span class="WHIT"> </span><span class="NAME">setObjectStrokeWidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1982
- <span class='line'>1975</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1983
- <span class='line'>1976</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1984
- <span class='line'>1977</span>
1985
- <span class='line'>1978</span> </span><span class="WHIT"> </span><span class="COMM">/**
1986
- <span class='line'>1979</span> * Sets the shadow properties to a geometry element. This method is only a stub, it is implemented in the actual
1987
- <span class='line'>1980</span> * renderers.
1988
- <span class='line'>1981</span> * @param {JXG.GeometryElement} element Reference to a geometry object, that should get a shadow
1989
- <span class='line'>1982</span> */</span><span class="WHIT">
1990
- <span class='line'>1983</span> </span><span class="WHIT"> </span><span class="NAME">setShadow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1991
- <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1992
- <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1993
- <span class='line'>1986</span>
1994
- <span class='line'>1987</span> </span><span class="WHIT"> </span><span class="COMM">/**
1995
- <span class='line'>1988</span> * Highlights an object, i.e. changes the current colors of the object to its highlighting colors
1996
- <span class='line'>1989</span> * and highlighting strokewidth.
1997
- <span class='line'>1990</span> * @param {JXG.GeometryElement} el Reference of the object that will be highlighted.
1998
- <span class='line'>1991</span> * @param {Boolean} [suppressHighlightStrokeWidth=undefined] If undefined or false, highlighting also changes strokeWidth. This might not be
1999
- <span class='line'>1992</span> * the cases for polygon borders. Thus, if a polygon is highlighted, its polygon borders change strokeWidth only if the polygon attribute
2000
- <span class='line'>1993</span> * highlightByStrokeWidth == true.
2001
- <span class='line'>1994</span> * @returns {JXG.AbstractRenderer} Reference to the renderer
2002
- <span class='line'>1995</span> * @see JXG.AbstractRenderer#updateTextStyle
2003
- <span class='line'>1996</span> */</span><span class="WHIT">
2004
- <span class='line'>1997</span> </span><span class="WHIT"> </span><span class="NAME">highlight</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">suppressHighlightStrokeWidth</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2005
- <span class='line'>1998</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">do_hl</span><span class="PUNC">,</span><span class="WHIT">
2006
- <span class='line'>1999</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
2007
- <span class='line'>2000</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">;</span><span class="WHIT">
2008
- <span class='line'>2001</span>
2009
- <span class='line'>2002</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2010
- <span class='line'>2003</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">ev.draft</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2011
- <span class='line'>2004</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2012
- <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2013
- <span class='line'>2006</span> </span><span class="WHIT"> </span><span class="NAME">do_hl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.highlightbystrokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2014
- <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.borders.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2015
- <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="NAME">this.highlight</span><span class="PUNC">(</span><span class="NAME">el.borders</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">do_hl</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2016
- <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2017
- <span class='line'>2010</span> </span><span class="WHIT"> </span><span class="COMM">/*
2018
- <span class='line'>2011</span> for (i = 0; i &lt; el.borders.length; i++) {
2019
- <span class='line'>2012</span> this.setObjectStrokeColor(
2020
- <span class='line'>2013</span> el.borders[i],
2021
- <span class='line'>2014</span> el.borders[i].visProp.highlightstrokecolor,
2022
- <span class='line'>2015</span> el.borders[i].visProp.highlightstrokeopacity
2023
- <span class='line'>2016</span> );
2024
- <span class='line'>2017</span> }
2025
- <span class='line'>2018</span> */</span><span class="WHIT">
2026
- <span class='line'>2019</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2027
- <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_TEXT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2028
- <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="NAME">this.updateTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2029
- <span class='line'>2022</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_IMAGE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2030
- <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2031
- <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="WHIT">
2032
- <span class='line'>2025</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2033
- <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT">
2034
- <span class='line'>2027</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="WHIT">
2035
- <span class='line'>2028</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2036
- <span class='line'>2029</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2037
- <span class='line'>2030</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="WHIT">
2038
- <span class='line'>2031</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2039
- <span class='line'>2032</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokecolor</span><span class="PUNC">,</span><span class="WHIT">
2040
- <span class='line'>2033</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokeopacity</span><span class="WHIT">
2041
- <span class='line'>2034</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2042
- <span class='line'>2035</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="WHIT">
2043
- <span class='line'>2036</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2044
- <span class='line'>2037</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT">
2045
- <span class='line'>2038</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="WHIT">
2046
- <span class='line'>2039</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2047
- <span class='line'>2040</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2048
- <span class='line'>2041</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2049
- <span class='line'>2042</span>
2050
- <span class='line'>2043</span> </span><span class="WHIT"> </span><span class="COMM">// Highlight strokeWidth is suppressed if</span><span class="WHIT">
2051
- <span class='line'>2044</span> </span><span class="WHIT"> </span><span class="COMM">// parameter suppressHighlightStrokeWidth is false or undefined.</span><span class="WHIT">
2052
- <span class='line'>2045</span> </span><span class="WHIT"> </span><span class="COMM">// suppressHighlightStrokeWidth is false if polygon attribute</span><span class="WHIT">
2053
- <span class='line'>2046</span> </span><span class="WHIT"> </span><span class="COMM">// highlightbystrokewidth is true.</span><span class="WHIT">
2054
- <span class='line'>2047</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ev.highlightstrokewidth</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">suppressHighlightStrokeWidth</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2055
- <span class='line'>2048</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="WHIT">
2056
- <span class='line'>2049</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.highlightstrokewidth</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2057
- <span class='line'>2050</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.strokewidth</span><span class="PUNC">)</span><span class="WHIT">
2058
- <span class='line'>2051</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2059
- <span class='line'>2052</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2060
- <span class='line'>2053</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2061
- <span class='line'>2054</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2062
- <span class='line'>2055</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="WHIT">
2063
- <span class='line'>2056</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2064
- <span class='line'>2057</span> </span><span class="WHIT"> </span><span class="NAME">this.updatePathWithArrowHeads</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2065
- <span class='line'>2058</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2066
- <span class='line'>2059</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2067
- <span class='line'>2060</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2068
- <span class='line'>2061</span>
2069
- <span class='line'>2062</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2070
- <span class='line'>2063</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2071
- <span class='line'>2064</span>
2072
- <span class='line'>2065</span> </span><span class="WHIT"> </span><span class="COMM">/**
2073
- <span class='line'>2066</span> * Uses the normal colors of an object, i.e. the opposite of {@link JXG.AbstractRenderer#highlight}.
2074
- <span class='line'>2067</span> * @param {JXG.GeometryElement} el Reference of the object that will get its normal colors.
2075
- <span class='line'>2068</span> * @returns {JXG.AbstractRenderer} Reference to the renderer
2076
- <span class='line'>2069</span> * @see JXG.AbstractRenderer#updateTextStyle
2077
- <span class='line'>2070</span> */</span><span class="WHIT">
2078
- <span class='line'>2071</span> </span><span class="WHIT"> </span><span class="NAME">noHighlight</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2079
- <span class='line'>2072</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
2080
- <span class='line'>2073</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
2081
- <span class='line'>2074</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">;</span><span class="WHIT">
2082
- <span class='line'>2075</span>
2083
- <span class='line'>2076</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2084
- <span class='line'>2077</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.draft</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2085
- <span class='line'>2078</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2086
- <span class='line'>2079</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2087
- <span class='line'>2080</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.borders.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2088
- <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="NAME">this.noHighlight</span><span class="PUNC">(</span><span class="NAME">el.borders</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2089
- <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2090
- <span class='line'>2083</span> </span><span class="WHIT"> </span><span class="COMM">// for (i = 0; i &lt; el.borders.length; i++) {</span><span class="WHIT">
2091
- <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="COMM">// this.setObjectStrokeColor(</span><span class="WHIT">
2092
- <span class='line'>2085</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i],</span><span class="WHIT">
2093
- <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i].visProp.strokecolor,</span><span class="WHIT">
2094
- <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i].visProp.strokeopacity</span><span class="WHIT">
2095
- <span class='line'>2088</span> </span><span class="WHIT"> </span><span class="COMM">// );</span><span class="WHIT">
2096
- <span class='line'>2089</span> </span><span class="WHIT"> </span><span class="COMM">// }</span><span class="WHIT">
2097
- <span class='line'>2090</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2098
- <span class='line'>2091</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_TEXT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2099
- <span class='line'>2092</span> </span><span class="WHIT"> </span><span class="NAME">this.updateTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2100
- <span class='line'>2093</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_IMAGE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2101
- <span class='line'>2094</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2102
- <span class='line'>2095</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2103
- <span class='line'>2096</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2104
- <span class='line'>2097</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.strokecolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.strokeopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2105
- <span class='line'>2098</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2106
- <span class='line'>2099</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2107
- <span class='line'>2100</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2108
- <span class='line'>2101</span>
2109
- <span class='line'>2102</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.strokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2110
- <span class='line'>2103</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2111
- <span class='line'>2104</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2112
- <span class='line'>2105</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2113
- <span class='line'>2106</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="WHIT">
2114
- <span class='line'>2107</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2115
- <span class='line'>2108</span> </span><span class="WHIT"> </span><span class="NAME">this.updatePathWithArrowHeads</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2116
- <span class='line'>2109</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2117
- <span class='line'>2110</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2118
- <span class='line'>2111</span>
2119
- <span class='line'>2112</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2120
- <span class='line'>2113</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2121
- <span class='line'>2114</span>
2122
- <span class='line'>2115</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
2123
- <span class='line'>2116</span> * renderer control
2124
- <span class='line'>2117</span> * **************************/</span><span class="WHIT">
2125
- <span class='line'>2118</span>
2126
- <span class='line'>2119</span> </span><span class="WHIT"> </span><span class="COMM">/**
2127
- <span class='line'>2120</span> * Stop redraw. This method is called before every update, so a non-vector-graphics based renderer can use this
2128
- <span class='line'>2121</span> * method to delete the contents of the drawing panel. This is an abstract method every descendant renderer
2129
- <span class='line'>2122</span> * should implement, if appropriate.
2130
- <span class='line'>2123</span> * @see JXG.AbstractRenderer#unsuspendRedraw
2131
- <span class='line'>2124</span> */</span><span class="WHIT">
2132
- <span class='line'>2125</span> </span><span class="WHIT"> </span><span class="NAME">suspendRedraw</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2133
- <span class='line'>2126</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2134
- <span class='line'>2127</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2135
- <span class='line'>2128</span>
2136
- <span class='line'>2129</span> </span><span class="WHIT"> </span><span class="COMM">/**
2137
- <span class='line'>2130</span> * Restart redraw. This method is called after updating all the rendering node attributes.
2138
- <span class='line'>2131</span> * @see JXG.AbstractRenderer#suspendRedraw
2139
- <span class='line'>2132</span> */</span><span class="WHIT">
2140
- <span class='line'>2133</span> </span><span class="WHIT"> </span><span class="NAME">unsuspendRedraw</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2141
- <span class='line'>2134</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2142
- <span class='line'>2135</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2143
- <span class='line'>2136</span>
2144
- <span class='line'>2137</span> </span><span class="WHIT"> </span><span class="COMM">/**
2145
- <span class='line'>2138</span> * The tiny zoom bar shown on the bottom of a board (if board attribute "showNavigation" is true).
2146
- <span class='line'>2139</span> * It is a div element and gets the CSS class "JXG_navigation" and the id {board id}_navigationbar.
2147
- <span class='line'>2140</span> * &lt;p>
2148
- <span class='line'>2141</span> * The buttons get the CSS class "JXG_navigation_button" and the id {board_id}_name where name is
2149
- <span class='line'>2142</span> * one of [top, down, left, right, out, 100, in, fullscreen, screenshot, reload, cleartraces].
2150
- <span class='line'>2143</span> * &lt;p>
2151
- <span class='line'>2144</span> * The symbols for zoom, navigation and reload are hard-coded.
2152
- <span class='line'>2145</span> *
2153
- <span class='line'>2146</span> * @param {JXG.Board} board Reference to a JSXGraph board.
2154
- <span class='line'>2147</span> * @param {Object} attr Attributes of the navigation bar
2155
- <span class='line'>2148</span> * @private
2156
- <span class='line'>2149</span> */</span><span class="WHIT">
2157
- <span class='line'>2150</span> </span><span class="WHIT"> </span><span class="NAME">drawNavigationBar</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2158
- <span class='line'>2151</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="PUNC">,</span><span class="WHIT">
2159
- <span class='line'>2152</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT">
2160
- <span class='line'>2153</span> </span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2161
- <span class='line'>2154</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2162
- <span class='line'>2155</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
2163
- <span class='line'>2156</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2164
- <span class='line'>2157</span>
2165
- <span class='line'>2158</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e.stopPropagation</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2166
- <span class='line'>2159</span> </span><span class="WHIT"> </span><span class="COMM">// Non IE&lt;=8</span><span class="WHIT">
2167
- <span class='line'>2160</span> </span><span class="WHIT"> </span><span class="NAME">e.stopPropagation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2168
- <span class='line'>2161</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2169
- <span class='line'>2162</span> </span><span class="WHIT"> </span><span class="NAME">e.cancelBubble</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2170
- <span class='line'>2163</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2171
- <span class='line'>2164</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2172
- <span class='line'>2165</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2173
- <span class='line'>2166</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">button</span><span class="PUNC">;</span><span class="WHIT">
2174
- <span class='line'>2167</span>
2175
- <span class='line'>2168</span> </span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
2176
- <span class='line'>2169</span>
2177
- <span class='line'>2170</span> </span><span class="WHIT"> </span><span class="NAME">button</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.createElement</span><span class="PUNC">(</span><span class="STRN">"span"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2178
- <span class='line'>2171</span> </span><span class="WHIT"> </span><span class="NAME">button.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">label</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// button.appendChild(doc.createTextNode(label));</span><span class="WHIT">
2179
- <span class='line'>2172</span>
2180
- <span class='line'>2173</span> </span><span class="WHIT"> </span><span class="COMM">// Style settings are superseded by adding the CSS class below</span><span class="WHIT">
2181
- <span class='line'>2174</span> </span><span class="WHIT"> </span><span class="NAME">button.style.paddingLeft</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"7px"</span><span class="PUNC">;</span><span class="WHIT">
2182
- <span class='line'>2175</span> </span><span class="WHIT"> </span><span class="NAME">button.style.paddingRight</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"7px"</span><span class="PUNC">;</span><span class="WHIT">
2183
- <span class='line'>2176</span>
2184
- <span class='line'>2177</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">button.classList</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2185
- <span class='line'>2178</span> </span><span class="WHIT"> </span><span class="COMM">// classList not available in IE 9</span><span class="WHIT">
2186
- <span class='line'>2179</span> </span><span class="WHIT"> </span><span class="NAME">button.classList.add</span><span class="PUNC">(</span><span class="STRN">"JXG_navigation_button"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2187
- <span class='line'>2180</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2188
- <span class='line'>2181</span> </span><span class="WHIT"> </span><span class="COMM">// button.setAttribute('tabindex', 0);</span><span class="WHIT">
2189
- <span class='line'>2182</span>
2190
- <span class='line'>2183</span> </span><span class="WHIT"> </span><span class="NAME">button.setAttribute</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2191
- <span class='line'>2184</span> </span><span class="WHIT"> </span><span class="NAME">node.appendChild</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2192
- <span class='line'>2185</span>
2193
- <span class='line'>2186</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="WHIT">
2194
- <span class='line'>2187</span> </span><span class="WHIT"> </span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT">
2195
- <span class='line'>2188</span> </span><span class="WHIT"> </span><span class="STRN">"click"</span><span class="PUNC">,</span><span class="WHIT">
2196
- <span class='line'>2189</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2197
- <span class='line'>2190</span> </span><span class="WHIT"> </span><span class="NAME">Type.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2198
- <span class='line'>2191</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2199
- <span class='line'>2192</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2200
- <span class='line'>2193</span> </span><span class="WHIT"> </span><span class="NAME">board</span><span class="WHIT">
2201
- <span class='line'>2194</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2202
- <span class='line'>2195</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the click from bubbling down to the board</span><span class="WHIT">
2203
- <span class='line'>2196</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerup"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2204
- <span class='line'>2197</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerdown"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2205
- <span class='line'>2198</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerleave"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2206
- <span class='line'>2199</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"mouseup"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2207
- <span class='line'>2200</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"mousedown"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2208
- <span class='line'>2201</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"touchend"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2209
- <span class='line'>2202</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"touchstart"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2210
- <span class='line'>2203</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2211
- <span class='line'>2204</span>
2212
- <span class='line'>2205</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Env.isBrowser</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2213
- <span class='line'>2206</span> </span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.containerObj.ownerDocument</span><span class="PUNC">;</span><span class="WHIT">
2214
- <span class='line'>2207</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.createElement</span><span class="PUNC">(</span><span class="STRN">"div"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2215
- <span class='line'>2208</span>
2216
- <span class='line'>2209</span> </span><span class="WHIT"> </span><span class="NAME">node.setAttribute</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigationbar"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2217
- <span class='line'>2210</span>
2218
- <span class='line'>2211</span> </span><span class="WHIT"> </span><span class="COMM">// Style settings are superseded by adding the CSS class below</span><span class="WHIT">
2219
- <span class='line'>2212</span> </span><span class="WHIT"> </span><span class="NAME">node.style.color</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.strokecolor</span><span class="PUNC">;</span><span class="WHIT">
2220
- <span class='line'>2213</span> </span><span class="WHIT"> </span><span class="NAME">node.style.backgroundColor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.fillcolor</span><span class="PUNC">;</span><span class="WHIT">
2221
- <span class='line'>2214</span> </span><span class="WHIT"> </span><span class="NAME">node.style.padding</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.padding</span><span class="PUNC">;</span><span class="WHIT">
2222
- <span class='line'>2215</span> </span><span class="WHIT"> </span><span class="NAME">node.style.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.position</span><span class="PUNC">;</span><span class="WHIT">
2223
- <span class='line'>2216</span> </span><span class="WHIT"> </span><span class="NAME">node.style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.fontsize</span><span class="PUNC">;</span><span class="WHIT">
2224
- <span class='line'>2217</span> </span><span class="WHIT"> </span><span class="NAME">node.style.cursor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.cursor</span><span class="PUNC">;</span><span class="WHIT">
2225
- <span class='line'>2218</span> </span><span class="WHIT"> </span><span class="NAME">node.style.zIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.zindex</span><span class="PUNC">;</span><span class="WHIT">
2226
- <span class='line'>2219</span> </span><span class="WHIT"> </span><span class="NAME">board.containerObj.appendChild</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2227
- <span class='line'>2220</span> </span><span class="WHIT"> </span><span class="NAME">node.style.right</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.right</span><span class="PUNC">;</span><span class="WHIT">
2228
- <span class='line'>2221</span> </span><span class="WHIT"> </span><span class="NAME">node.style.bottom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.bottom</span><span class="PUNC">;</span><span class="WHIT">
2229
- <span class='line'>2222</span>
2230
- <span class='line'>2223</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node.classList</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2231
- <span class='line'>2224</span> </span><span class="WHIT"> </span><span class="COMM">// classList not available in IE 9</span><span class="WHIT">
2232
- <span class='line'>2225</span> </span><span class="WHIT"> </span><span class="NAME">node.classList.add</span><span class="PUNC">(</span><span class="STRN">"JXG_navigation"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2233
- <span class='line'>2226</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2234
- <span class='line'>2227</span> </span><span class="WHIT"> </span><span class="COMM">// For XHTML we need unicode instead of HTML entities</span><span class="WHIT">
2235
- <span class='line'>2228</span>
2236
- <span class='line'>2229</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showfullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2237
- <span class='line'>2230</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2238
- <span class='line'>2231</span> </span><span class="WHIT"> </span><span class="NAME">board.attr.fullscreen.symbol</span><span class="PUNC">,</span><span class="WHIT">
2239
- <span class='line'>2232</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2240
- <span class='line'>2233</span> </span><span class="WHIT"> </span><span class="NAME">board.toFullscreen</span><span class="PUNC">(</span><span class="NAME">board.attr.fullscreen.id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2241
- <span class='line'>2234</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2242
- <span class='line'>2235</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_fullscreen"</span><span class="WHIT">
2243
- <span class='line'>2236</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2244
- <span class='line'>2237</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2245
- <span class='line'>2238</span>
2246
- <span class='line'>2239</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showscreenshot</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2247
- <span class='line'>2240</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2248
- <span class='line'>2241</span> </span><span class="WHIT"> </span><span class="NAME">board.attr.screenshot.symbol</span><span class="PUNC">,</span><span class="WHIT">
2249
- <span class='line'>2242</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2250
- <span class='line'>2243</span> </span><span class="WHIT"> </span><span class="NAME">window.setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2251
- <span class='line'>2244</span> </span><span class="WHIT"> </span><span class="NAME">board.renderer.screenshot</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2252
- <span class='line'>2245</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">330</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2253
- <span class='line'>2246</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2254
- <span class='line'>2247</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_screenshot"</span><span class="WHIT">
2255
- <span class='line'>2248</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2256
- <span class='line'>2249</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2257
- <span class='line'>2250</span>
2258
- <span class='line'>2251</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showreload</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2259
- <span class='line'>2252</span> </span><span class="WHIT"> </span><span class="COMM">// full reload circle: \u27F2</span><span class="WHIT">
2260
- <span class='line'>2253</span> </span><span class="WHIT"> </span><span class="COMM">// the board.reload() method does not exist during the creation</span><span class="WHIT">
2261
- <span class='line'>2254</span> </span><span class="WHIT"> </span><span class="COMM">// of this button. That's why this anonymous function wrapper is required.</span><span class="WHIT">
2262
- <span class='line'>2255</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2263
- <span class='line'>2256</span> </span><span class="WHIT"> </span><span class="STRN">"\u21BB"</span><span class="PUNC">,</span><span class="WHIT">
2264
- <span class='line'>2257</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2265
- <span class='line'>2258</span> </span><span class="WHIT"> </span><span class="NAME">board.reload</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2266
- <span class='line'>2259</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2267
- <span class='line'>2260</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_reload"</span><span class="WHIT">
2268
- <span class='line'>2261</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2269
- <span class='line'>2262</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2270
- <span class='line'>2263</span>
2271
- <span class='line'>2264</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showcleartraces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2272
- <span class='line'>2265</span> </span><span class="WHIT"> </span><span class="COMM">// clear traces symbol (otimes): \u27F2</span><span class="WHIT">
2273
- <span class='line'>2266</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2274
- <span class='line'>2267</span> </span><span class="WHIT"> </span><span class="STRN">"\u2297"</span><span class="PUNC">,</span><span class="WHIT">
2275
- <span class='line'>2268</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2276
- <span class='line'>2269</span> </span><span class="WHIT"> </span><span class="NAME">board.clearTraces</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2277
- <span class='line'>2270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2278
- <span class='line'>2271</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_cleartraces"</span><span class="WHIT">
2279
- <span class='line'>2272</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2280
- <span class='line'>2273</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2281
- <span class='line'>2274</span>
2282
- <span class='line'>2275</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.shownavigation</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2283
- <span class='line'>2276</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showzoom</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2284
- <span class='line'>2277</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2285
- <span class='line'>2278</span> </span><span class="WHIT"> </span><span class="STRN">"\u2013"</span><span class="PUNC">,</span><span class="WHIT">
2286
- <span class='line'>2279</span> </span><span class="WHIT"> </span><span class="NAME">board.zoomOut</span><span class="PUNC">,</span><span class="WHIT">
2287
- <span class='line'>2280</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_out"</span><span class="WHIT">
2288
- <span class='line'>2281</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2289
- <span class='line'>2282</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="STRN">"o"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.zoom100</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_100"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2290
- <span class='line'>2283</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="STRN">"+"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.zoomIn</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_in"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2291
- <span class='line'>2284</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2292
- <span class='line'>2285</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2293
- <span class='line'>2286</span> </span><span class="WHIT"> </span><span class="STRN">"\u2190"</span><span class="PUNC">,</span><span class="WHIT">
2294
- <span class='line'>2287</span> </span><span class="WHIT"> </span><span class="NAME">board.clickLeftArrow</span><span class="PUNC">,</span><span class="WHIT">
2295
- <span class='line'>2288</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_left"</span><span class="WHIT">
2296
- <span class='line'>2289</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2297
- <span class='line'>2290</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2298
- <span class='line'>2291</span> </span><span class="WHIT"> </span><span class="STRN">"\u2193"</span><span class="PUNC">,</span><span class="WHIT">
2299
- <span class='line'>2292</span> </span><span class="WHIT"> </span><span class="NAME">board.clickUpArrow</span><span class="PUNC">,</span><span class="WHIT">
2300
- <span class='line'>2293</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_down"</span><span class="WHIT">
2301
- <span class='line'>2294</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Down arrow</span><span class="WHIT">
2302
- <span class='line'>2295</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2303
- <span class='line'>2296</span> </span><span class="WHIT"> </span><span class="STRN">"\u2191"</span><span class="PUNC">,</span><span class="WHIT">
2304
- <span class='line'>2297</span> </span><span class="WHIT"> </span><span class="NAME">board.clickDownArrow</span><span class="PUNC">,</span><span class="WHIT">
2305
- <span class='line'>2298</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_up"</span><span class="WHIT">
2306
- <span class='line'>2299</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Up arrow</span><span class="WHIT">
2307
- <span class='line'>2300</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2308
- <span class='line'>2301</span> </span><span class="WHIT"> </span><span class="STRN">"\u2192"</span><span class="PUNC">,</span><span class="WHIT">
2309
- <span class='line'>2302</span> </span><span class="WHIT"> </span><span class="NAME">board.clickRightArrow</span><span class="PUNC">,</span><span class="WHIT">
2310
- <span class='line'>2303</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_right"</span><span class="WHIT">
2311
- <span class='line'>2304</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2312
- <span class='line'>2305</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2313
- <span class='line'>2306</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2314
- <span class='line'>2307</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2315
- <span class='line'>2308</span>
2316
- <span class='line'>2309</span> </span><span class="WHIT"> </span><span class="COMM">/**
2317
- <span class='line'>2310</span> * Wrapper for getElementById for maybe other renderers which elements are not directly accessible by DOM
2318
- <span class='line'>2311</span> * methods like document.getElementById().
2319
- <span class='line'>2312</span> * @param {String} id Unique identifier for element.
2320
- <span class='line'>2313</span> * @returns {Object} Reference to a JavaScript object. In case of SVG/VMLRenderer it's a reference to a SVG/VML node.
2321
- <span class='line'>2314</span> */</span><span class="WHIT">
2322
- <span class='line'>2315</span> </span><span class="WHIT"> </span><span class="NAME">getElementById</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2323
- <span class='line'>2316</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
2324
- <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">this.container</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2325
- <span class='line'>2318</span> </span><span class="WHIT"> </span><span class="COMM">// Use querySelector over getElementById for compatibility with both 'regular' document</span><span class="WHIT">
2326
- <span class='line'>2319</span> </span><span class="WHIT"> </span><span class="COMM">// and ShadowDOM fragments.</span><span class="WHIT">
2327
- <span class='line'>2320</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.container.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
2328
- <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="COMM">// Mask special symbols like '/' and '\' in id</span><span class="WHIT">
2329
- <span class='line'>2322</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">CSS</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">CSS.escape</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2330
- <span class='line'>2323</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CSS.escape</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2331
- <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2332
- <span class='line'>2325</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.container.querySelector</span><span class="PUNC">(</span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2333
- <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2334
- <span class='line'>2327</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
2335
- <span class='line'>2328</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2336
- <span class='line'>2329</span>
2337
- <span class='line'>2330</span> </span><span class="WHIT"> </span><span class="COMM">/**
2338
- <span class='line'>2331</span> * Remove an element and provide a function that inserts it into its original position. This method
2339
- <span class='line'>2332</span> * is taken from this article {@link https://developers.google.com/speed/articles/javascript-dom}.
2340
- <span class='line'>2333</span> * @author KeeKim Heng, Google Web Developer
2341
- <span class='line'>2334</span> * @param {Element} el The element to be temporarily removed
2342
- <span class='line'>2335</span> * @returns {Function} A function that inserts the element into its original position
2343
- <span class='line'>2336</span> */</span><span class="WHIT">
2344
- <span class='line'>2337</span> </span><span class="WHIT"> </span><span class="NAME">removeToInsertLater</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2345
- <span class='line'>2338</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parentNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.parentNode</span><span class="PUNC">,</span><span class="WHIT">
2346
- <span class='line'>2339</span> </span><span class="WHIT"> </span><span class="NAME">nextSibling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.nextSibling</span><span class="PUNC">;</span><span class="WHIT">
2347
- <span class='line'>2340</span>
2348
- <span class='line'>2341</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parentNode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2349
- <span class='line'>2342</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2350
- <span class='line'>2343</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2351
- <span class='line'>2344</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2352
- <span class='line'>2345</span>
2353
- <span class='line'>2346</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2354
- <span class='line'>2347</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">nextSibling</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2355
- <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nextSibling</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2356
- <span class='line'>2349</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2357
- <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.appendChild</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2358
- <span class='line'>2351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2359
- <span class='line'>2352</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2360
- <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2361
- <span class='line'>2354</span>
2362
- <span class='line'>2355</span> </span><span class="WHIT"> </span><span class="COMM">/**
2363
- <span class='line'>2356</span> * Resizes the rendering element
2364
- <span class='line'>2357</span> * @param {Number} w New width
2365
- <span class='line'>2358</span> * @param {Number} h New height
2366
- <span class='line'>2359</span> */</span><span class="WHIT">
2367
- <span class='line'>2360</span> </span><span class="WHIT"> </span><span class="NAME">resize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2368
- <span class='line'>2361</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2369
- <span class='line'>2362</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2370
- <span class='line'>2363</span>
2371
- <span class='line'>2364</span> </span><span class="WHIT"> </span><span class="COMM">/**
2372
- <span class='line'>2365</span> * Create crosshair elements (Fadenkreuz) for presentations.
2373
- <span class='line'>2366</span> * @param {Number} n Number of crosshairs.
2374
- <span class='line'>2367</span> */</span><span class="WHIT">
2375
- <span class='line'>2368</span> </span><span class="WHIT"> </span><span class="NAME">createTouchpoints</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2376
- <span class='line'>2369</span>
2377
- <span class='line'>2370</span> </span><span class="WHIT"> </span><span class="COMM">/**
2378
- <span class='line'>2371</span> * Show a specific crosshair.
2379
- <span class='line'>2372</span> * @param {Number} i Number of the crosshair to show
2380
- <span class='line'>2373</span> */</span><span class="WHIT">
2381
- <span class='line'>2374</span> </span><span class="WHIT"> </span><span class="NAME">showTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2382
- <span class='line'>2375</span>
2383
- <span class='line'>2376</span> </span><span class="WHIT"> </span><span class="COMM">/**
2384
- <span class='line'>2377</span> * Hide a specific crosshair.
2385
- <span class='line'>2378</span> * @param {Number} i Number of the crosshair to show
2386
- <span class='line'>2379</span> */</span><span class="WHIT">
2387
- <span class='line'>2380</span> </span><span class="WHIT"> </span><span class="NAME">hideTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2388
- <span class='line'>2381</span>
2389
- <span class='line'>2382</span> </span><span class="WHIT"> </span><span class="COMM">/**
2390
- <span class='line'>2383</span> * Move a specific crosshair.
2391
- <span class='line'>2384</span> * @param {Number} i Number of the crosshair to show
2392
- <span class='line'>2385</span> * @param {Array} pos New positon in screen coordinates
2393
- <span class='line'>2386</span> */</span><span class="WHIT">
2394
- <span class='line'>2387</span> </span><span class="WHIT"> </span><span class="NAME">updateTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2395
- <span class='line'>2388</span>
2396
- <span class='line'>2389</span> </span><span class="WHIT"> </span><span class="COMM">/**
2397
- <span class='line'>2390</span> * Convert SVG construction to base64 encoded SVG data URL.
2398
- <span class='line'>2391</span> * Only available on SVGRenderer.
2399
- <span class='line'>2392</span> *
2400
- <span class='line'>2393</span> * @see JXG.SVGRenderer#dumpToDataURI
2401
- <span class='line'>2394</span> */</span><span class="WHIT">
2402
- <span class='line'>2395</span> </span><span class="WHIT"> </span><span class="NAME">dumpToDataURI</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_ignoreTexts</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2403
- <span class='line'>2396</span>
2404
- <span class='line'>2397</span> </span><span class="WHIT"> </span><span class="COMM">/**
2405
- <span class='line'>2398</span> * Convert SVG construction to canvas.
2406
- <span class='line'>2399</span> * Only available on SVGRenderer.
2407
- <span class='line'>2400</span> *
2408
- <span class='line'>2401</span> * @see JXG.SVGRenderer#dumpToCanvas
2409
- <span class='line'>2402</span> */</span><span class="WHIT">
2410
- <span class='line'>2403</span> </span><span class="WHIT"> </span><span class="NAME">dumpToCanvas</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">canvasId</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_ignoreTexts</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2411
- <span class='line'>2404</span>
2412
- <span class='line'>2405</span> </span><span class="WHIT"> </span><span class="COMM">/**
2413
- <span class='line'>2406</span> * Display SVG image in html img-tag which enables
2414
- <span class='line'>2407</span> * easy download for the user.
2415
- <span class='line'>2408</span> *
2416
- <span class='line'>2409</span> * See JXG.SVGRenderer#screenshot
2417
- <span class='line'>2410</span> */</span><span class="WHIT">
2418
- <span class='line'>2411</span> </span><span class="WHIT"> </span><span class="NAME">screenshot</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2419
- <span class='line'>2412</span>
2420
- <span class='line'>2413</span> </span><span class="WHIT"> </span><span class="COMM">/**
2421
- <span class='line'>2414</span> * Move element into new layer. This is trivial for canvas, but needs more effort in SVG.
2422
- <span class='line'>2415</span> * Does not work dynamically, i.e. if level is a function.
2423
- <span class='line'>2416</span> *
2424
- <span class='line'>2417</span> * @param {JXG.GeometryElement} el Element which is put into different layer
2425
- <span class='line'>2418</span> * @param {Number} value Layer number
2426
- <span class='line'>2419</span> * @private
2427
- <span class='line'>2420</span> */</span><span class="WHIT">
2428
- <span class='line'>2421</span> </span><span class="WHIT"> </span><span class="NAME">setLayer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
2429
- <span class='line'>2422</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2430
- <span class='line'>2423</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2431
- <span class='line'>2424</span>
2432
- <span class='line'>2425</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.AbstractRenderer</span><span class="PUNC">;</span><span class="WHIT">
2433
- <span class='line'>2426</span> </span></pre></body></html>
1267
+ <span class='line'>1260</span> </span><span class="WHIT"> </span><span class="COMM">// Obsolete:</span><span class="WHIT">
1268
+ <span class='line'>1261</span> </span><span class="WHIT"> </span><span class="COMM">// // Restore the transformation necessary for fullscreen mode</span><span class="WHIT">
1269
+ <span class='line'>1262</span> </span><span class="WHIT"> </span><span class="COMM">// // MathJax removes it when handling dynamic content</span><span class="WHIT">
1270
+ <span class='line'>1263</span> </span><span class="WHIT"> </span><span class="COMM">// id = el.board.container;</span><span class="WHIT">
1271
+ <span class='line'>1264</span> </span><span class="WHIT"> </span><span class="COMM">// wrap_id = "fullscreenwrap_" + id;</span><span class="WHIT">
1272
+ <span class='line'>1265</span> </span><span class="WHIT"> </span><span class="COMM">// if (document.getElementById(wrap_id)) {</span><span class="WHIT">
1273
+ <span class='line'>1266</span> </span><span class="WHIT"> </span><span class="COMM">// scale = el.board.containerObj._cssFullscreenStore.scale;</span><span class="WHIT">
1274
+ <span class='line'>1267</span> </span><span class="WHIT"> </span><span class="COMM">// vshift = el.board.containerObj._cssFullscreenStore.vshift;</span><span class="WHIT">
1275
+ <span class='line'>1268</span> </span><span class="WHIT"> </span><span class="COMM">// Env.scaleJSXGraphDiv(</span><span class="WHIT">
1276
+ <span class='line'>1269</span> </span><span class="WHIT"> </span><span class="COMM">// "#" + wrap_id,</span><span class="WHIT">
1277
+ <span class='line'>1270</span> </span><span class="WHIT"> </span><span class="COMM">// "#" + id,</span><span class="WHIT">
1278
+ <span class='line'>1271</span> </span><span class="WHIT"> </span><span class="COMM">// scale,</span><span class="WHIT">
1279
+ <span class='line'>1272</span> </span><span class="WHIT"> </span><span class="COMM">// vshift</span><span class="WHIT">
1280
+ <span class='line'>1273</span> </span><span class="WHIT"> </span><span class="COMM">// );</span><span class="WHIT">
1281
+ <span class='line'>1274</span> </span><span class="WHIT"> </span><span class="COMM">// }</span><span class="WHIT">
1282
+ <span class='line'>1275</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1283
+ <span class='line'>1276</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"MathJax (not yet) loaded"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1284
+ <span class='line'>1277</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1285
+ <span class='line'>1278</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.usekatex</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1286
+ <span class='line'>1279</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1287
+ <span class='line'>1280</span> </span><span class="WHIT"> </span><span class="COMM">/* eslint-disable no-undef */</span><span class="WHIT">
1288
+ <span class='line'>1281</span> </span><span class="WHIT"> </span><span class="NAME">katex.render</span><span class="PUNC">(</span><span class="NAME">content</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1289
+ <span class='line'>1282</span> </span><span class="WHIT"> </span><span class="NAME">macros</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.katexmacros</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1290
+ <span class='line'>1283</span> </span><span class="WHIT"> </span><span class="NAME">throwOnError</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT">
1291
+ <span class='line'>1284</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1292
+ <span class='line'>1285</span> </span><span class="WHIT"> </span><span class="COMM">/* eslint-enable no-undef */</span><span class="WHIT">
1293
+ <span class='line'>1286</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1294
+ <span class='line'>1287</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"KaTeX not loaded (yet)"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1295
+ <span class='line'>1288</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1296
+ <span class='line'>1289</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.useasciimathml</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1297
+ <span class='line'>1290</span> </span><span class="WHIT"> </span><span class="COMM">// This is not a constructor.</span><span class="WHIT">
1298
+ <span class='line'>1291</span> </span><span class="WHIT"> </span><span class="COMM">// See http://asciimath.org/ for more information</span><span class="WHIT">
1299
+ <span class='line'>1292</span> </span><span class="WHIT"> </span><span class="COMM">// about AsciiMathML and the project's source code.</span><span class="WHIT">
1300
+ <span class='line'>1293</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1301
+ <span class='line'>1294</span> </span><span class="WHIT"> </span><span class="NAME">AMprocessNode</span><span class="PUNC">(</span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1302
+ <span class='line'>1295</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1303
+ <span class='line'>1296</span> </span><span class="WHIT"> </span><span class="NAME">JXG.debug</span><span class="PUNC">(</span><span class="STRN">"AsciiMathML not loaded (yet)"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1304
+ <span class='line'>1297</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1305
+ <span class='line'>1298</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1306
+ <span class='line'>1299</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1307
+ <span class='line'>1300</span>
1308
+ <span class='line'>1301</span> </span><span class="WHIT"> </span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.rotate</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1309
+ <span class='line'>1302</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1310
+ <span class='line'>1303</span> </span><span class="WHIT"> </span><span class="COMM">// Don't forget to convert to rad</span><span class="WHIT">
1311
+ <span class='line'>1304</span> </span><span class="WHIT"> </span><span class="NAME">angle</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1312
+ <span class='line'>1305</span> </span><span class="WHIT"> </span><span class="NAME">co</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.cos</span><span class="PUNC">(</span><span class="NAME">angle</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1313
+ <span class='line'>1306</span> </span><span class="WHIT"> </span><span class="NAME">si</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.sin</span><span class="PUNC">(</span><span class="NAME">angle</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1314
+ <span class='line'>1307</span>
1315
+ <span class='line'>1308</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.style</span><span class="PUNC">[</span><span class="STRN">'transform'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'matrix('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
1316
+ <span class='line'>1309</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">co</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">si</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">si</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">co</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
1317
+ <span class='line'>1310</span> </span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">;</span><span class="WHIT">
1318
+ <span class='line'>1311</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.style</span><span class="PUNC">[</span><span class="STRN">'transform-origin'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">to_v</span><span class="PUNC">;</span><span class="WHIT">
1319
+ <span class='line'>1312</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1320
+ <span class='line'>1313</span> </span><span class="WHIT"> </span><span class="NAME">this.transformImage</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.transformations</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1321
+ <span class='line'>1314</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1322
+ <span class='line'>1315</span> </span><span class="WHIT"> </span><span class="NAME">this.updateInternalText</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1323
+ <span class='line'>1316</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1324
+ <span class='line'>1317</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1325
+ <span class='line'>1318</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1326
+ <span class='line'>1319</span>
1327
+ <span class='line'>1320</span> </span><span class="WHIT"> </span><span class="COMM">/**
1328
+ <span class='line'>1321</span> * Converts string containing CSS properties into
1329
+ <span class='line'>1322</span> * array with key-value pair objects.
1330
+ <span class='line'>1323</span> *
1331
+ <span class='line'>1324</span> * @example
1332
+ <span class='line'>1325</span> * "color:blue; background-color:yellow" is converted to
1333
+ <span class='line'>1326</span> * [{'color': 'blue'}, {'backgroundColor': 'yellow'}]
1334
+ <span class='line'>1327</span> *
1335
+ <span class='line'>1328</span> * @param {String} cssString String containing CSS properties
1336
+ <span class='line'>1329</span> * @return {Array} Array of CSS key-value pairs
1337
+ <span class='line'>1330</span> */</span><span class="WHIT">
1338
+ <span class='line'>1331</span> </span><span class="WHIT"> </span><span class="NAME">_css2js</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1339
+ <span class='line'>1332</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pairs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1340
+ <span class='line'>1333</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1341
+ <span class='line'>1334</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT">
1342
+ <span class='line'>1335</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT">
1343
+ <span class='line'>1336</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">,</span><span class="WHIT">
1344
+ <span class='line'>1337</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT">
1345
+ <span class='line'>1338</span> </span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/;$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">";"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1346
+ <span class='line'>1339</span>
1347
+ <span class='line'>1340</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list.length</span><span class="PUNC">;</span><span class="WHIT">
1348
+ <span class='line'>1341</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1349
+ <span class='line'>1342</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1350
+ <span class='line'>1343</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">":"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1351
+ <span class='line'>1344</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="WHIT">
1352
+ <span class='line'>1345</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/-([a-z])/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">match</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">char</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1353
+ <span class='line'>1346</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">char.toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1354
+ <span class='line'>1347</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
1355
+ <span class='line'>1348</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1356
+ <span class='line'>1349</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.trim</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1357
+ <span class='line'>1350</span> </span><span class="WHIT"> </span><span class="NAME">pairs.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1358
+ <span class='line'>1351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1359
+ <span class='line'>1352</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1360
+ <span class='line'>1353</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">pairs</span><span class="PUNC">;</span><span class="WHIT">
1361
+ <span class='line'>1354</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1362
+ <span class='line'>1355</span>
1363
+ <span class='line'>1356</span> </span><span class="WHIT"> </span><span class="COMM">/**
1364
+ <span class='line'>1357</span> * Updates font-size, color and opacity propertiey and CSS style properties of a {@link JXG.Text} node.
1365
+ <span class='line'>1358</span> * This function is also called by highlight() and nohighlight().
1366
+ <span class='line'>1359</span> * @param {JXG.Text} el Reference to the {@link JXG.Text} object, that has to be updated.
1367
+ <span class='line'>1360</span> * @param {Boolean} doHighlight
1368
+ <span class='line'>1361</span> * @see Text
1369
+ <span class='line'>1362</span> * @see JXG.Text
1370
+ <span class='line'>1363</span> * @see JXG.AbstractRenderer#drawText
1371
+ <span class='line'>1364</span> * @see JXG.AbstractRenderer#drawInternalText
1372
+ <span class='line'>1365</span> * @see JXG.AbstractRenderer#updateText
1373
+ <span class='line'>1366</span> * @see JXG.AbstractRenderer#updateInternalText
1374
+ <span class='line'>1367</span> * @see JXG.AbstractRenderer#updateInternalTextStyle
1375
+ <span class='line'>1368</span> */</span><span class="WHIT">
1376
+ <span class='line'>1369</span> </span><span class="WHIT"> </span><span class="NAME">updateTextStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1377
+ <span class='line'>1370</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">,</span><span class="WHIT">
1378
+ <span class='line'>1371</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">,</span><span class="WHIT">
1379
+ <span class='line'>1372</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT">
1380
+ <span class='line'>1373</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">,</span><span class="WHIT">
1381
+ <span class='line'>1374</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT">
1382
+ <span class='line'>1375</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
1383
+ <span class='line'>1376</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Env.isBrowser</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">ev.display</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"internal"</span><span class="PUNC">,</span><span class="WHIT">
1384
+ <span class='line'>1377</span> </span><span class="WHIT"> </span><span class="NAME">nodeList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">"rendNode"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"rendNodeTag"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"rendNodeLabel"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1385
+ <span class='line'>1378</span> </span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodeList.length</span><span class="PUNC">,</span><span class="WHIT">
1386
+ <span class='line'>1379</span> </span><span class="WHIT"> </span><span class="NAME">fontUnit</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.fontunit</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1387
+ <span class='line'>1380</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">,</span><span class="WHIT">
1388
+ <span class='line'>1381</span> </span><span class="WHIT"> </span><span class="NAME">prop</span><span class="PUNC">,</span><span class="WHIT">
1389
+ <span class='line'>1382</span> </span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">,</span><span class="WHIT">
1390
+ <span class='line'>1383</span> </span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">,</span><span class="WHIT">
1391
+ <span class='line'>1384</span> </span><span class="WHIT"> </span><span class="NAME">styleList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">"cssdefaultstyle"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"cssstyle"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1392
+ <span class='line'>1385</span> </span><span class="WHIT"> </span><span class="NAME">lenS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">styleList.length</span><span class="PUNC">;</span><span class="WHIT">
1393
+ <span class='line'>1386</span>
1394
+ <span class='line'>1387</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1395
+ <span class='line'>1388</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokecolor</span><span class="PUNC">;</span><span class="WHIT">
1396
+ <span class='line'>1389</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokeopacity</span><span class="PUNC">;</span><span class="WHIT">
1397
+ <span class='line'>1390</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.highlightcssclass</span><span class="PUNC">;</span><span class="WHIT">
1398
+ <span class='line'>1391</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1399
+ <span class='line'>1392</span> </span><span class="WHIT"> </span><span class="NAME">sc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.strokecolor</span><span class="PUNC">;</span><span class="WHIT">
1400
+ <span class='line'>1393</span> </span><span class="WHIT"> </span><span class="NAME">so</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.strokeopacity</span><span class="PUNC">;</span><span class="WHIT">
1401
+ <span class='line'>1394</span> </span><span class="WHIT"> </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ev.cssclass</span><span class="PUNC">;</span><span class="WHIT">
1402
+ <span class='line'>1395</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1403
+ <span class='line'>1396</span>
1404
+ <span class='line'>1397</span> </span><span class="WHIT"> </span><span class="COMM">// This part is executed for all text elements except internal texts in canvas.</span><span class="WHIT">
1405
+ <span class='line'>1398</span> </span><span class="WHIT"> </span><span class="COMM">// HTML-texts or internal texts in SVG or VML.</span><span class="WHIT">
1406
+ <span class='line'>1399</span> </span><span class="WHIT"> </span><span class="COMM">// HTML internal</span><span class="WHIT">
1407
+ <span class='line'>1400</span> </span><span class="WHIT"> </span><span class="COMM">// SVG + +</span><span class="WHIT">
1408
+ <span class='line'>1401</span> </span><span class="WHIT"> </span><span class="COMM">// VML + +</span><span class="WHIT">
1409
+ <span class='line'>1402</span> </span><span class="WHIT"> </span><span class="COMM">// canvas + -</span><span class="WHIT">
1410
+ <span class='line'>1403</span> </span><span class="WHIT"> </span><span class="COMM">// no - -</span><span class="WHIT">
1411
+ <span class='line'>1404</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"html"</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"canvas"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1412
+ <span class='line'>1405</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenS</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1413
+ <span class='line'>1406</span> </span><span class="WHIT"> </span><span class="COMM">// First set cssString to</span><span class="WHIT">
1414
+ <span class='line'>1407</span> </span><span class="WHIT"> </span><span class="COMM">// ev.cssdefaultstyle of ev.highlightcssdefaultstyle,</span><span class="WHIT">
1415
+ <span class='line'>1408</span> </span><span class="WHIT"> </span><span class="COMM">// then to</span><span class="WHIT">
1416
+ <span class='line'>1409</span> </span><span class="WHIT"> </span><span class="COMM">// ev.cssstyle of ev.highlightcssstyle</span><span class="WHIT">
1417
+ <span class='line'>1410</span> </span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="WHIT">
1418
+ <span class='line'>1411</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="NAME">doHighlight</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"highlight"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT">
1419
+ <span class='line'>1412</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1420
+ <span class='line'>1413</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="PUNC">[</span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1421
+ <span class='line'>1414</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._css2js</span><span class="PUNC">(</span><span class="NAME">cssString</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1422
+ <span class='line'>1415</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1423
+ <span class='line'>1416</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1424
+ <span class='line'>1417</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1425
+ <span class='line'>1418</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cssList.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1426
+ <span class='line'>1419</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">[</span><span class="NAME">cssList</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
1427
+ <span class='line'>1420</span> </span><span class="WHIT"> </span><span class="NAME">cssList</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1428
+ <span class='line'>1421</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1429
+ <span class='line'>1422</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1430
+ <span class='line'>1423</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1431
+ <span class='line'>1424</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1432
+ <span class='line'>1425</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="PUNC">[</span><span class="NAME">styleList</span><span class="PUNC">[</span><span class="NAME">style</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cssString</span><span class="PUNC">;</span><span class="WHIT">
1433
+ <span class='line'>1426</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1434
+ <span class='line'>1427</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1435
+ <span class='line'>1428</span>
1436
+ <span class='line'>1429</span> </span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.fontsize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1437
+ <span class='line'>1430</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.visPropOld.fontsize</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1438
+ <span class='line'>1431</span> </span><span class="WHIT"> </span><span class="NAME">el.needsSizeUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1439
+ <span class='line'>1432</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1440
+ <span class='line'>1433</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1441
+ <span class='line'>1434</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1442
+ <span class='line'>1435</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">fontUnit</span><span class="PUNC">;</span><span class="WHIT">
1443
+ <span class='line'>1436</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1444
+ <span class='line'>1437</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1445
+ <span class='line'>1438</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1446
+ <span class='line'>1439</span> </span><span class="WHIT"> </span><span class="COMM">// IE needs special treatment.</span><span class="WHIT">
1447
+ <span class='line'>1440</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">lenN</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1448
+ <span class='line'>1441</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1449
+ <span class='line'>1442</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">[</span><span class="NAME">nodeList</span><span class="PUNC">[</span><span class="NAME">node</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">;</span><span class="WHIT">
1450
+ <span class='line'>1443</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1451
+ <span class='line'>1444</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1452
+ <span class='line'>1445</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1453
+ <span class='line'>1446</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld.fontsize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fs</span><span class="PUNC">;</span><span class="WHIT">
1454
+ <span class='line'>1447</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1455
+ <span class='line'>1448</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1456
+ <span class='line'>1449</span>
1457
+ <span class='line'>1450</span> </span><span class="WHIT"> </span><span class="NAME">this.setTabindex</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1458
+ <span class='line'>1451</span>
1459
+ <span class='line'>1452</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1460
+ <span class='line'>1453</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"html"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1461
+ <span class='line'>1454</span> </span><span class="WHIT"> </span><span class="COMM">// Set new CSS class</span><span class="WHIT">
1462
+ <span class='line'>1455</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.visPropOld.cssclass</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1463
+ <span class='line'>1456</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">;</span><span class="WHIT">
1464
+ <span class='line'>1457</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld.cssclass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">;</span><span class="WHIT">
1465
+ <span class='line'>1458</span> </span><span class="WHIT"> </span><span class="NAME">el.needsSizeUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1466
+ <span class='line'>1459</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1467
+ <span class='line'>1460</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1468
+ <span class='line'>1461</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1469
+ <span class='line'>1462</span> </span><span class="WHIT"> </span><span class="NAME">this.updateInternalTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">so</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1470
+ <span class='line'>1463</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1471
+ <span class='line'>1464</span>
1472
+ <span class='line'>1465</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1473
+ <span class='line'>1466</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1474
+ <span class='line'>1467</span>
1475
+ <span class='line'>1468</span> </span><span class="WHIT"> </span><span class="COMM">/**
1476
+ <span class='line'>1469</span> * Set color and opacity of internal texts.
1477
+ <span class='line'>1470</span> * This method is used for Canvas and VML.
1478
+ <span class='line'>1471</span> * SVG needs its own version.
1479
+ <span class='line'>1472</span> * @private
1480
+ <span class='line'>1473</span> * @see JXG.AbstractRenderer#updateTextStyle
1481
+ <span class='line'>1474</span> * @see JXG.SVGRenderer#updateInternalTextStyle
1482
+ <span class='line'>1475</span> */</span><span class="WHIT">
1483
+ <span class='line'>1476</span> </span><span class="WHIT"> </span><span class="NAME">updateInternalTextStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeOpacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1484
+ <span class='line'>1477</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">strokeOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1485
+ <span class='line'>1478</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1486
+ <span class='line'>1479</span>
1487
+ <span class='line'>1480</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1488
+ <span class='line'>1481</span> * Image related stuff
1489
+ <span class='line'>1482</span> * **************************/</span><span class="WHIT">
1490
+ <span class='line'>1483</span>
1491
+ <span class='line'>1484</span> </span><span class="WHIT"> </span><span class="COMM">/**
1492
+ <span class='line'>1485</span> * Draws an {@link JXG.Image} on a board; This is just a template that has to be implemented by special
1493
+ <span class='line'>1486</span> * renderers.
1494
+ <span class='line'>1487</span> * @param {JXG.Image} element Reference to the image object that is to be drawn
1495
+ <span class='line'>1488</span> * @see Image
1496
+ <span class='line'>1489</span> * @see JXG.Image
1497
+ <span class='line'>1490</span> * @see JXG.AbstractRenderer#updateImage
1498
+ <span class='line'>1491</span> */</span><span class="WHIT">
1499
+ <span class='line'>1492</span> </span><span class="WHIT"> </span><span class="NAME">drawImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1500
+ <span class='line'>1493</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1501
+ <span class='line'>1494</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1502
+ <span class='line'>1495</span>
1503
+ <span class='line'>1496</span> </span><span class="WHIT"> </span><span class="COMM">/**
1504
+ <span class='line'>1497</span> * Updates the properties of an {@link JXG.Image} element.
1505
+ <span class='line'>1498</span> * @param {JXG.Image} el Reference to an {@link JXG.Image} object, that has to be updated.
1506
+ <span class='line'>1499</span> * @see Image
1507
+ <span class='line'>1500</span> * @see JXG.Image
1508
+ <span class='line'>1501</span> * @see JXG.AbstractRenderer#drawImage
1509
+ <span class='line'>1502</span> */</span><span class="WHIT">
1510
+ <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="NAME">updateImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1511
+ <span class='line'>1504</span> </span><span class="WHIT"> </span><span class="NAME">this.updateRectPrim</span><span class="PUNC">(</span><span class="WHIT">
1512
+ <span class='line'>1505</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode</span><span class="PUNC">,</span><span class="WHIT">
1513
+ <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="NAME">el.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1514
+ <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="NAME">el.coords.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1515
+ <span class='line'>1508</span> </span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1516
+ <span class='line'>1509</span> </span><span class="WHIT"> </span><span class="NAME">el.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT">
1517
+ <span class='line'>1510</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1518
+ <span class='line'>1511</span>
1519
+ <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageURL</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1520
+ <span class='line'>1513</span> </span><span class="WHIT"> </span><span class="NAME">this.transformImage</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.transformations</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1521
+ <span class='line'>1514</span> </span><span class="WHIT"> </span><span class="NAME">this._updateVisual</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">stroke</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dash</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1522
+ <span class='line'>1515</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1523
+ <span class='line'>1516</span>
1524
+ <span class='line'>1517</span> </span><span class="WHIT"> </span><span class="COMM">/**
1525
+ <span class='line'>1518</span> * Multiplication of transformations without updating. That means, at that point it is expected that the
1526
+ <span class='line'>1519</span> * matrices contain numbers only. First, the origin in user coords is translated to &lt;tt>(0,0)&lt;/tt> in screen
1527
+ <span class='line'>1520</span> * coords. Then, the stretch factors are divided out. After the transformations in user coords, the stretch
1528
+ <span class='line'>1521</span> * factors are multiplied in again, and the origin in user coords is translated back to its position. This
1529
+ <span class='line'>1522</span> * method does not have to be implemented in a new renderer.
1530
+ <span class='line'>1523</span> * @param {JXG.GeometryElement} el A JSXGraph element. We only need its board property.
1531
+ <span class='line'>1524</span> * @param {Array} transformations An array of JXG.Transformations.
1532
+ <span class='line'>1525</span> * @returns {Array} A matrix represented by a two dimensional array of numbers.
1533
+ <span class='line'>1526</span> * @see JXG.AbstractRenderer#transformImage
1534
+ <span class='line'>1527</span> */</span><span class="WHIT">
1535
+ <span class='line'>1528</span> </span><span class="WHIT"> </span><span class="NAME">joinTransforms</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transformations</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1536
+ <span class='line'>1529</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1537
+ <span class='line'>1530</span> </span><span class="WHIT"> </span><span class="NAME">ox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.origin.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1538
+ <span class='line'>1531</span> </span><span class="WHIT"> </span><span class="NAME">oy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.origin.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1539
+ <span class='line'>1532</span> </span><span class="WHIT"> </span><span class="NAME">ux</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.unitX</span><span class="PUNC">,</span><span class="WHIT">
1540
+ <span class='line'>1533</span> </span><span class="WHIT"> </span><span class="NAME">uy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.unitY</span><span class="PUNC">,</span><span class="WHIT">
1541
+ <span class='line'>1534</span> </span><span class="WHIT"> </span><span class="COMM">// Translate to 0,0 in screen coords</span><span class="WHIT">
1542
+ <span class='line'>1535</span> </span><span class="WHIT"> </span><span class="COMM">/*
1543
+ <span class='line'>1536</span> m = [[1, 0, 0], [0, 1, 0], [0, 0, 1]],
1544
+ <span class='line'>1537</span> mpre1 = [[1, 0, 0],
1545
+ <span class='line'>1538</span> [-ox, 1, 0],
1546
+ <span class='line'>1539</span> [-oy, 0, 1]],
1547
+ <span class='line'>1540</span> // Scale
1548
+ <span class='line'>1541</span> mpre2 = [[1, 0, 0],
1549
+ <span class='line'>1542</span> [0, 1 / ux, 0],
1550
+ <span class='line'>1543</span> [0, 0, -1 / uy]],
1551
+ <span class='line'>1544</span> // Scale back
1552
+ <span class='line'>1545</span> mpost2 = [[1, 0, 0],
1553
+ <span class='line'>1546</span> [0, ux, 0],
1554
+ <span class='line'>1547</span> [0, 0, -uy]],
1555
+ <span class='line'>1548</span> // Translate back
1556
+ <span class='line'>1549</span> mpost1 = [[1, 0, 0],
1557
+ <span class='line'>1550</span> [ox, 1, 0],
1558
+ <span class='line'>1551</span> [oy, 0, 1]],
1559
+ <span class='line'>1552</span> */</span><span class="WHIT">
1560
+ <span class='line'>1553</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">transformations.length</span><span class="PUNC">,</span><span class="WHIT">
1561
+ <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="COMM">// Translate to 0,0 in screen coords and then scale</span><span class="WHIT">
1562
+ <span class='line'>1555</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
1563
+ <span class='line'>1556</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1564
+ <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">-</span><span class="NAME">ox</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1565
+ <span class='line'>1558</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">oy</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">uy</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">uy</span><span class="PUNC">]</span><span class="WHIT">
1566
+ <span class='line'>1559</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1567
+ <span class='line'>1560</span>
1568
+ <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1569
+ <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpre1, m);</span><span class="WHIT">
1570
+ <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpre2, m);</span><span class="WHIT">
1571
+ <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.matMatMult</span><span class="PUNC">(</span><span class="NAME">transformations</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">matrix</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1572
+ <span class='line'>1565</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpost2, m);</span><span class="WHIT">
1573
+ <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="COMM">//m = Mat.matMatMult(mpost1, m);</span><span class="WHIT">
1574
+ <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1575
+ <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="COMM">// Scale back and then translate back</span><span class="WHIT">
1576
+ <span class='line'>1569</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.matMatMult</span><span class="PUNC">(</span><span class="WHIT">
1577
+ <span class='line'>1570</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
1578
+ <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1579
+ <span class='line'>1572</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">ox</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ux</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1580
+ <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">oy</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">uy</span><span class="PUNC">]</span><span class="WHIT">
1581
+ <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1582
+ <span class='line'>1575</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT">
1583
+ <span class='line'>1576</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1584
+ <span class='line'>1577</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
1585
+ <span class='line'>1578</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1586
+ <span class='line'>1579</span>
1587
+ <span class='line'>1580</span> </span><span class="WHIT"> </span><span class="COMM">/**
1588
+ <span class='line'>1581</span> * Applies transformations on images and text elements. This method has to implemented in
1589
+ <span class='line'>1582</span> * all descendant classes where text and image transformations are to be supported.
1590
+ <span class='line'>1583</span> * &lt;p>
1591
+ <span class='line'>1584</span> * Only affine transformation are supported, no proper projective transformations. This means, the
1592
+ <span class='line'>1585</span> * respective entries of the transformation matrix are simply ignored.
1593
+ <span class='line'>1586</span> *
1594
+ <span class='line'>1587</span> * @param {JXG.Image|JXG.Text} element A {@link JXG.Image} or {@link JXG.Text} object.
1595
+ <span class='line'>1588</span> * @param {Array} transformations An array of {@link JXG.Transformation} objects. This is usually the
1596
+ <span class='line'>1589</span> * transformations property of the given element &lt;tt>el&lt;/tt>.
1597
+ <span class='line'>1590</span> */</span><span class="WHIT">
1598
+ <span class='line'>1591</span> </span><span class="WHIT"> </span><span class="NAME">transformImage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transformations</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1599
+ <span class='line'>1592</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1600
+ <span class='line'>1593</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1601
+ <span class='line'>1594</span>
1602
+ <span class='line'>1595</span> </span><span class="WHIT"> </span><span class="COMM">/**
1603
+ <span class='line'>1596</span> * If the URL of the image is provided by a function the URL has to be updated during updateImage()
1604
+ <span class='line'>1597</span> * @param {JXG.Image} element Reference to an image object.
1605
+ <span class='line'>1598</span> * @see JXG.AbstractRenderer#updateImage
1606
+ <span class='line'>1599</span> */</span><span class="WHIT">
1607
+ <span class='line'>1600</span> </span><span class="WHIT"> </span><span class="NAME">updateImageURL</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1608
+ <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1609
+ <span class='line'>1602</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1610
+ <span class='line'>1603</span>
1611
+ <span class='line'>1604</span> </span><span class="WHIT"> </span><span class="COMM">/**
1612
+ <span class='line'>1605</span> * Updates CSS style properties of a {@link JXG.Image} node.
1613
+ <span class='line'>1606</span> * In SVGRenderer opacity is the only available style element.
1614
+ <span class='line'>1607</span> * This function is called by highlight() and nohighlight().
1615
+ <span class='line'>1608</span> * This function works for VML.
1616
+ <span class='line'>1609</span> * It does not work for Canvas.
1617
+ <span class='line'>1610</span> * SVGRenderer overwrites this method.
1618
+ <span class='line'>1611</span> * @param {JXG.Text} el Reference to the {@link JXG.Image} object, that has to be updated.
1619
+ <span class='line'>1612</span> * @param {Boolean} doHighlight
1620
+ <span class='line'>1613</span> * @see Image
1621
+ <span class='line'>1614</span> * @see JXG.Image
1622
+ <span class='line'>1615</span> * @see JXG.AbstractRenderer#highlight
1623
+ <span class='line'>1616</span> * @see JXG.AbstractRenderer#noHighlight
1624
+ <span class='line'>1617</span> */</span><span class="WHIT">
1625
+ <span class='line'>1618</span> </span><span class="WHIT"> </span><span class="NAME">updateImageStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1626
+ <span class='line'>1619</span> </span><span class="WHIT"> </span><span class="NAME">el.rendNode.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="WHIT">
1627
+ <span class='line'>1620</span> </span><span class="WHIT"> </span><span class="NAME">doHighlight</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">el.visProp.highlightcssclass</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">el.visProp.cssclass</span><span class="WHIT">
1628
+ <span class='line'>1621</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1629
+ <span class='line'>1622</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1630
+ <span class='line'>1623</span>
1631
+ <span class='line'>1624</span> </span><span class="WHIT"> </span><span class="NAME">drawForeignObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1632
+ <span class='line'>1625</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1633
+ <span class='line'>1626</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1634
+ <span class='line'>1627</span>
1635
+ <span class='line'>1628</span> </span><span class="WHIT"> </span><span class="NAME">updateForeignObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1636
+ <span class='line'>1629</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1637
+ <span class='line'>1630</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1638
+ <span class='line'>1631</span>
1639
+ <span class='line'>1632</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1640
+ <span class='line'>1633</span> * Render primitive objects
1641
+ <span class='line'>1634</span> * **************************/</span><span class="WHIT">
1642
+ <span class='line'>1635</span>
1643
+ <span class='line'>1636</span> </span><span class="WHIT"> </span><span class="COMM">/**
1644
+ <span class='line'>1637</span> * Appends a node to a specific layer level. This is just an abstract method and has to be implemented
1645
+ <span class='line'>1638</span> * in all renderers that want to use the &lt;tt>createPrim&lt;/tt> model to draw.
1646
+ <span class='line'>1639</span> * @param {Node} node A DOM tree node.
1647
+ <span class='line'>1640</span> * @param {Number} level The layer the node is attached to. This is the index of the layer in
1648
+ <span class='line'>1641</span> * {@link JXG.SVGRenderer#layer} or the &lt;tt>z-index&lt;/tt> style property of the node in VMLRenderer.
1649
+ <span class='line'>1642</span> */</span><span class="WHIT">
1650
+ <span class='line'>1643</span> </span><span class="WHIT"> </span><span class="NAME">appendChildPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1651
+ <span class='line'>1644</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1652
+ <span class='line'>1645</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1653
+ <span class='line'>1646</span>
1654
+ <span class='line'>1647</span> </span><span class="WHIT"> </span><span class="COMM">/**
1655
+ <span class='line'>1648</span> * Stores the rendering nodes. This is an abstract method which has to be implemented in all renderers that use
1656
+ <span class='line'>1649</span> * the &lt;tt>createPrim&lt;/tt> method.
1657
+ <span class='line'>1650</span> * @param {JXG.GeometryElement} element A JSXGraph element.
1658
+ <span class='line'>1651</span> * @param {String} type The XML node name. Only used in VMLRenderer.
1659
+ <span class='line'>1652</span> */</span><span class="WHIT">
1660
+ <span class='line'>1653</span> </span><span class="WHIT"> </span><span class="NAME">appendNodesToElement</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1661
+ <span class='line'>1654</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1662
+ <span class='line'>1655</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1663
+ <span class='line'>1656</span>
1664
+ <span class='line'>1657</span> </span><span class="WHIT"> </span><span class="COMM">/**
1665
+ <span class='line'>1658</span> * Creates a node of a given type with a given id.
1666
+ <span class='line'>1659</span> * @param {String} type The type of the node to create.
1667
+ <span class='line'>1660</span> * @param {String} id Set the id attribute to this.
1668
+ <span class='line'>1661</span> * @returns {Node} Reference to the created node.
1669
+ <span class='line'>1662</span> */</span><span class="WHIT">
1670
+ <span class='line'>1663</span> </span><span class="WHIT"> </span><span class="NAME">createPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1671
+ <span class='line'>1664</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1672
+ <span class='line'>1665</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1673
+ <span class='line'>1666</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1674
+ <span class='line'>1667</span>
1675
+ <span class='line'>1668</span> </span><span class="WHIT"> </span><span class="COMM">/**
1676
+ <span class='line'>1669</span> * Removes an element node. Just a stub.
1677
+ <span class='line'>1670</span> * @param {Node} node The node to remove.
1678
+ <span class='line'>1671</span> */</span><span class="WHIT">
1679
+ <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="NAME">remove</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1680
+ <span class='line'>1673</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1681
+ <span class='line'>1674</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1682
+ <span class='line'>1675</span>
1683
+ <span class='line'>1676</span> </span><span class="WHIT"> </span><span class="COMM">/**
1684
+ <span class='line'>1677</span> * Can be used to create the nodes to display arrows. This is an abstract method which has to be implemented
1685
+ <span class='line'>1678</span> * in any descendant renderer.
1686
+ <span class='line'>1679</span> * @param {JXG.GeometryElement} element The element the arrows are to be attached to.
1687
+ <span class='line'>1680</span> * @param {Object} arrowData Data concerning possible arrow heads
1688
+ <span class='line'>1681</span> *
1689
+ <span class='line'>1682</span> */</span><span class="WHIT">
1690
+ <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="NAME">makeArrows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arrowData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1691
+ <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1692
+ <span class='line'>1685</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1693
+ <span class='line'>1686</span>
1694
+ <span class='line'>1687</span> </span><span class="WHIT"> </span><span class="COMM">/**
1695
+ <span class='line'>1688</span> * Updates width of an arrow DOM node. Used in
1696
+ <span class='line'>1689</span> * @param {Node} node The arrow node.
1697
+ <span class='line'>1690</span> * @param {Number} width
1698
+ <span class='line'>1691</span> * @param {Node} parentNode Used in IE only
1699
+ <span class='line'>1692</span> */</span><span class="WHIT">
1700
+ <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="NAME">_setArrowWidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parentNode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1701
+ <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1702
+ <span class='line'>1695</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1703
+ <span class='line'>1696</span>
1704
+ <span class='line'>1697</span> </span><span class="WHIT"> </span><span class="COMM">/**
1705
+ <span class='line'>1698</span> * Updates an ellipse node primitive. This is an abstract method which has to be implemented in all renderers
1706
+ <span class='line'>1699</span> * that use the &lt;tt>createPrim&lt;/tt> method.
1707
+ <span class='line'>1700</span> * @param {Node} node Reference to the node.
1708
+ <span class='line'>1701</span> * @param {Number} x Centre X coordinate
1709
+ <span class='line'>1702</span> * @param {Number} y Centre Y coordinate
1710
+ <span class='line'>1703</span> * @param {Number} rx The x-axis radius.
1711
+ <span class='line'>1704</span> * @param {Number} ry The y-axis radius.
1712
+ <span class='line'>1705</span> */</span><span class="WHIT">
1713
+ <span class='line'>1706</span> </span><span class="WHIT"> </span><span class="NAME">updateEllipsePrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">rx</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ry</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1714
+ <span class='line'>1707</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1715
+ <span class='line'>1708</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1716
+ <span class='line'>1709</span>
1717
+ <span class='line'>1710</span> </span><span class="WHIT"> </span><span class="COMM">/**
1718
+ <span class='line'>1711</span> * Refreshes a line node. This is an abstract method which has to be implemented in all renderers that use
1719
+ <span class='line'>1712</span> * the &lt;tt>createPrim&lt;/tt> method.
1720
+ <span class='line'>1713</span> * @param {Node} node The node to be refreshed.
1721
+ <span class='line'>1714</span> * @param {Number} p1x The first point's x coordinate.
1722
+ <span class='line'>1715</span> * @param {Number} p1y The first point's y coordinate.
1723
+ <span class='line'>1716</span> * @param {Number} p2x The second point's x coordinate.
1724
+ <span class='line'>1717</span> * @param {Number} p2y The second point's y coordinate.
1725
+ <span class='line'>1718</span> * @param {JXG.Board} board
1726
+ <span class='line'>1719</span> */</span><span class="WHIT">
1727
+ <span class='line'>1720</span> </span><span class="WHIT"> </span><span class="NAME">updateLinePrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p1x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p1y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p2x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p2y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1728
+ <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1729
+ <span class='line'>1722</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1730
+ <span class='line'>1723</span>
1731
+ <span class='line'>1724</span> </span><span class="WHIT"> </span><span class="COMM">/**
1732
+ <span class='line'>1725</span> * Updates a path element. This is an abstract method which has to be implemented in all renderers that use
1733
+ <span class='line'>1726</span> * the &lt;tt>createPrim&lt;/tt> method.
1734
+ <span class='line'>1727</span> * @param {Node} node The path node.
1735
+ <span class='line'>1728</span> * @param {String} pathString A string formatted like e.g. &lt;em>'M 1,2 L 3,1 L5,5'&lt;/em>. The format of the string
1736
+ <span class='line'>1729</span> * depends on the rendering engine.
1737
+ <span class='line'>1730</span> * @param {JXG.Board} board Reference to the element's board.
1738
+ <span class='line'>1731</span> */</span><span class="WHIT">
1739
+ <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="NAME">updatePathPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pathString</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1740
+ <span class='line'>1733</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1741
+ <span class='line'>1734</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1742
+ <span class='line'>1735</span>
1743
+ <span class='line'>1736</span> </span><span class="WHIT"> </span><span class="COMM">/**
1744
+ <span class='line'>1737</span> * Builds a path data string to draw a point with a face other than &lt;em>rect&lt;/em> and &lt;em>circle&lt;/em>. Since
1745
+ <span class='line'>1738</span> * the format of such a string usually depends on the renderer this method
1746
+ <span class='line'>1739</span> * is only an abstract method. Therefore, it has to be implemented in the descendant renderer itself unless
1747
+ <span class='line'>1740</span> * the renderer does not use the createPrim interface but the draw* interfaces to paint.
1748
+ <span class='line'>1741</span> * @param {JXG.Point} element The point element
1749
+ <span class='line'>1742</span> * @param {Number} size A positive number describing the size. Usually the half of the width and height of
1750
+ <span class='line'>1743</span> * the drawn point.
1751
+ <span class='line'>1744</span> * @param {String} type A string describing the point's face. This method only accepts the shortcut version of
1752
+ <span class='line'>1745</span> * each possible face: &lt;tt>x, +, |, -, [], &lt;>, ^, v, >, &lt; &lt;/tt>
1753
+ <span class='line'>1746</span> */</span><span class="WHIT">
1754
+ <span class='line'>1747</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringPoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1755
+ <span class='line'>1748</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1756
+ <span class='line'>1749</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1757
+ <span class='line'>1750</span>
1758
+ <span class='line'>1751</span> </span><span class="WHIT"> </span><span class="COMM">/**
1759
+ <span class='line'>1752</span> * Builds a path data string from a {@link JXG.Curve} element. Since the path data strings heavily depend on the
1760
+ <span class='line'>1753</span> * underlying rendering technique this method is just a stub. Although such a path string is of no use for the
1761
+ <span class='line'>1754</span> * CanvasRenderer, this method is used there to draw a path directly.
1762
+ <span class='line'>1755</span> * @param element
1763
+ <span class='line'>1756</span> */</span><span class="WHIT">
1764
+ <span class='line'>1757</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1765
+ <span class='line'>1758</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1766
+ <span class='line'>1759</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1767
+ <span class='line'>1760</span>
1768
+ <span class='line'>1761</span> </span><span class="WHIT"> </span><span class="COMM">/**
1769
+ <span class='line'>1762</span> * Builds a path data string from a {@link JXG.Curve} element such that the curve looks like hand drawn. Since
1770
+ <span class='line'>1763</span> * the path data strings heavily depend on the underlying rendering technique this method is just a stub.
1771
+ <span class='line'>1764</span> * Although such a path string is of no use for the CanvasRenderer, this method is used there to draw a path
1772
+ <span class='line'>1765</span> * directly.
1773
+ <span class='line'>1766</span> * @param element
1774
+ <span class='line'>1767</span> */</span><span class="WHIT">
1775
+ <span class='line'>1768</span> </span><span class="WHIT"> </span><span class="NAME">updatePathStringBezierPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1776
+ <span class='line'>1769</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1777
+ <span class='line'>1770</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1778
+ <span class='line'>1771</span>
1779
+ <span class='line'>1772</span> </span><span class="WHIT"> </span><span class="COMM">/**
1780
+ <span class='line'>1773</span> * Update a polygon primitive.
1781
+ <span class='line'>1774</span> * @param {Node} node
1782
+ <span class='line'>1775</span> * @param {JXG.Polygon} element A JSXGraph element of type {@link JXG.Polygon}
1783
+ <span class='line'>1776</span> */</span><span class="WHIT">
1784
+ <span class='line'>1777</span> </span><span class="WHIT"> </span><span class="NAME">updatePolygonPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1785
+ <span class='line'>1778</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1786
+ <span class='line'>1779</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1787
+ <span class='line'>1780</span>
1788
+ <span class='line'>1781</span> </span><span class="WHIT"> </span><span class="COMM">/**
1789
+ <span class='line'>1782</span> * Update a rectangle primitive. This is used only for points with face of type 'rect'.
1790
+ <span class='line'>1783</span> * @param {Node} node The node yearning to be updated.
1791
+ <span class='line'>1784</span> * @param {Number} x x coordinate of the top left vertex.
1792
+ <span class='line'>1785</span> * @param {Number} y y coordinate of the top left vertex.
1793
+ <span class='line'>1786</span> * @param {Number} w Width of the rectangle.
1794
+ <span class='line'>1787</span> * @param {Number} h The rectangle's height.
1795
+ <span class='line'>1788</span> */</span><span class="WHIT">
1796
+ <span class='line'>1789</span> </span><span class="WHIT"> </span><span class="NAME">updateRectPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1797
+ <span class='line'>1790</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1798
+ <span class='line'>1791</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1799
+ <span class='line'>1792</span>
1800
+ <span class='line'>1793</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
1801
+ <span class='line'>1794</span> * Set Attributes
1802
+ <span class='line'>1795</span> * **************************/</span><span class="WHIT">
1803
+ <span class='line'>1796</span>
1804
+ <span class='line'>1797</span> </span><span class="WHIT"> </span><span class="COMM">/**
1805
+ <span class='line'>1798</span> * Sets a node's attribute.
1806
+ <span class='line'>1799</span> * @param {Node} node The node that is to be updated.
1807
+ <span class='line'>1800</span> * @param {String} key Name of the attribute.
1808
+ <span class='line'>1801</span> * @param {String} val New value for the attribute.
1809
+ <span class='line'>1802</span> */</span><span class="WHIT">
1810
+ <span class='line'>1803</span> </span><span class="WHIT"> </span><span class="NAME">setPropertyPrim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1811
+ <span class='line'>1804</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1812
+ <span class='line'>1805</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1813
+ <span class='line'>1806</span>
1814
+ <span class='line'>1807</span> </span><span class="WHIT"> </span><span class="NAME">setTabindex</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1815
+ <span class='line'>1808</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1816
+ <span class='line'>1809</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element.board.attr.keyboard.enabled</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">element.rendNode</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1817
+ <span class='line'>1810</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">element.visProp.tabindex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1818
+ <span class='line'>1811</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.visPropCalc.visible</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">element.visProp.fixed</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1819
+ <span class='line'>1812</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1820
+ <span class='line'>1813</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1821
+ <span class='line'>1814</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">element.visPropOld.tabindex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1822
+ <span class='line'>1815</span> </span><span class="WHIT"> </span><span class="NAME">element.rendNode.setAttribute</span><span class="PUNC">(</span><span class="STRN">"tabindex"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1823
+ <span class='line'>1816</span> </span><span class="WHIT"> </span><span class="NAME">element.visPropOld.tabindex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1824
+ <span class='line'>1817</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1825
+ <span class='line'>1818</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1826
+ <span class='line'>1819</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1827
+ <span class='line'>1820</span>
1828
+ <span class='line'>1821</span> </span><span class="WHIT"> </span><span class="COMM">/**
1829
+ <span class='line'>1822</span> * Shows or hides an element on the canvas; Only a stub, requires implementation in the derived renderer.
1830
+ <span class='line'>1823</span> * @param {JXG.GeometryElement} element Reference to the object that has to appear.
1831
+ <span class='line'>1824</span> * @param {Boolean} value true to show the element, false to hide the element.
1832
+ <span class='line'>1825</span> */</span><span class="WHIT">
1833
+ <span class='line'>1826</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1834
+ <span class='line'>1827</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1835
+ <span class='line'>1828</span> </span><span class="WHIT"> </span><span class="NAME">element.visPropOld.visible</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
1836
+ <span class='line'>1829</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1837
+ <span class='line'>1830</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1838
+ <span class='line'>1831</span>
1839
+ <span class='line'>1832</span> </span><span class="WHIT"> </span><span class="COMM">/**
1840
+ <span class='line'>1833</span> * Shows a hidden element on the canvas; Only a stub, requires implementation in the derived renderer.
1841
+ <span class='line'>1834</span> *
1842
+ <span class='line'>1835</span> * Please use JXG.AbstractRenderer#display instead
1843
+ <span class='line'>1836</span> * @param {JXG.GeometryElement} element Reference to the object that has to appear.
1844
+ <span class='line'>1837</span> * @see JXG.AbstractRenderer#hide
1845
+ <span class='line'>1838</span> * @deprecated
1846
+ <span class='line'>1839</span> */</span><span class="WHIT">
1847
+ <span class='line'>1840</span> </span><span class="WHIT"> </span><span class="NAME">show</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1848
+ <span class='line'>1841</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1849
+ <span class='line'>1842</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1850
+ <span class='line'>1843</span>
1851
+ <span class='line'>1844</span> </span><span class="WHIT"> </span><span class="COMM">/**
1852
+ <span class='line'>1845</span> * Hides an element on the canvas; Only a stub, requires implementation in the derived renderer.
1853
+ <span class='line'>1846</span> *
1854
+ <span class='line'>1847</span> * Please use JXG.AbstractRenderer#display instead
1855
+ <span class='line'>1848</span> * @param {JXG.GeometryElement} element Reference to the geometry element that has to disappear.
1856
+ <span class='line'>1849</span> * @see JXG.AbstractRenderer#show
1857
+ <span class='line'>1850</span> * @deprecated
1858
+ <span class='line'>1851</span> */</span><span class="WHIT">
1859
+ <span class='line'>1852</span> </span><span class="WHIT"> </span><span class="NAME">hide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1860
+ <span class='line'>1853</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1861
+ <span class='line'>1854</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1862
+ <span class='line'>1855</span>
1863
+ <span class='line'>1856</span> </span><span class="WHIT"> </span><span class="COMM">/**
1864
+ <span class='line'>1857</span> * Sets the buffering as recommended by SVGWG. Until now only Opera supports this and will be ignored by other
1865
+ <span class='line'>1858</span> * browsers. Although this feature is only supported by SVG we have this method in {@link JXG.AbstractRenderer}
1866
+ <span class='line'>1859</span> * because it is called from outside the renderer.
1867
+ <span class='line'>1860</span> * @param {Node} node The SVG DOM Node which buffering type to update.
1868
+ <span class='line'>1861</span> * @param {String} type Either 'auto', 'dynamic', or 'static'. For an explanation see
1869
+ <span class='line'>1862</span> * {@link https://www.w3.org/TR/SVGTiny12/painting.html#BufferedRenderingProperty}.
1870
+ <span class='line'>1863</span> */</span><span class="WHIT">
1871
+ <span class='line'>1864</span> </span><span class="WHIT"> </span><span class="NAME">setBuffering</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1872
+ <span class='line'>1865</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1873
+ <span class='line'>1866</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1874
+ <span class='line'>1867</span>
1875
+ <span class='line'>1868</span> </span><span class="WHIT"> </span><span class="COMM">/**
1876
+ <span class='line'>1869</span> * Sets an element's dash style.
1877
+ <span class='line'>1870</span> * @param {JXG.GeometryElement} element An JSXGraph element.
1878
+ <span class='line'>1871</span> */</span><span class="WHIT">
1879
+ <span class='line'>1872</span> </span><span class="WHIT"> </span><span class="NAME">setDashStyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1880
+ <span class='line'>1873</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1881
+ <span class='line'>1874</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1882
+ <span class='line'>1875</span>
1883
+ <span class='line'>1876</span> </span><span class="WHIT"> </span><span class="COMM">/**
1884
+ <span class='line'>1877</span> * Puts an object into draft mode, i.e. it's visual appearance will be changed. For GEONE&lt;sub>x&lt;/sub>T backwards
1885
+ <span class='line'>1878</span> * compatibility.
1886
+ <span class='line'>1879</span> * @param {JXG.GeometryElement} el Reference of the object that is in draft mode.
1887
+ <span class='line'>1880</span> */</span><span class="WHIT">
1888
+ <span class='line'>1881</span> </span><span class="WHIT"> </span><span class="NAME">setDraft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1889
+ <span class='line'>1882</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.draft</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1890
+ <span class='line'>1883</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
1891
+ <span class='line'>1884</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1892
+ <span class='line'>1885</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.color</span><span class="PUNC">,</span><span class="WHIT">
1893
+ <span class='line'>1886</span> </span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.opacity</span><span class="PUNC">;</span><span class="WHIT">
1894
+ <span class='line'>1887</span>
1895
+ <span class='line'>1888</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1896
+ <span class='line'>1889</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1897
+ <span class='line'>1890</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1898
+ <span class='line'>1891</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1899
+ <span class='line'>1892</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_POINT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1900
+ <span class='line'>1893</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1901
+ <span class='line'>1894</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1902
+ <span class='line'>1895</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1903
+ <span class='line'>1896</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1904
+ <span class='line'>1897</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftColor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">draftOpacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1905
+ <span class='line'>1898</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.board.options.elements.draft.strokeWidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1906
+ <span class='line'>1899</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1907
+ <span class='line'>1900</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1908
+ <span class='line'>1901</span>
1909
+ <span class='line'>1902</span> </span><span class="WHIT"> </span><span class="COMM">/**
1910
+ <span class='line'>1903</span> * Puts an object from draft mode back into normal mode.
1911
+ <span class='line'>1904</span> * @param {JXG.GeometryElement} el Reference of the object that no longer is in draft mode.
1912
+ <span class='line'>1905</span> */</span><span class="WHIT">
1913
+ <span class='line'>1906</span> </span><span class="WHIT"> </span><span class="NAME">removeDraft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1914
+ <span class='line'>1907</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1915
+ <span class='line'>1908</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1916
+ <span class='line'>1909</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1917
+ <span class='line'>1910</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1918
+ <span class='line'>1911</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_POINT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1919
+ <span class='line'>1912</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1920
+ <span class='line'>1913</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1921
+ <span class='line'>1914</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokecolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokeopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1922
+ <span class='line'>1915</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.strokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1923
+ <span class='line'>1916</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1924
+ <span class='line'>1917</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1925
+ <span class='line'>1918</span>
1926
+ <span class='line'>1919</span> </span><span class="WHIT"> </span><span class="COMM">/**
1927
+ <span class='line'>1920</span> * Sets up nodes for rendering a gradient fill.
1928
+ <span class='line'>1921</span> * @param element
1929
+ <span class='line'>1922</span> */</span><span class="WHIT">
1930
+ <span class='line'>1923</span> </span><span class="WHIT"> </span><span class="NAME">setGradient</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1931
+ <span class='line'>1924</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1932
+ <span class='line'>1925</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1933
+ <span class='line'>1926</span>
1934
+ <span class='line'>1927</span> </span><span class="WHIT"> </span><span class="COMM">/**
1935
+ <span class='line'>1928</span> * Updates the gradient fill.
1936
+ <span class='line'>1929</span> * @param {JXG.GeometryElement} element An JSXGraph element with an area that can be filled.
1937
+ <span class='line'>1930</span> */</span><span class="WHIT">
1938
+ <span class='line'>1931</span> </span><span class="WHIT"> </span><span class="NAME">updateGradient</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1939
+ <span class='line'>1932</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1940
+ <span class='line'>1933</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1941
+ <span class='line'>1934</span>
1942
+ <span class='line'>1935</span> </span><span class="WHIT"> </span><span class="COMM">/**
1943
+ <span class='line'>1936</span> * Sets the transition duration (in milliseconds) for fill color and stroke
1944
+ <span class='line'>1937</span> * color and opacity.
1945
+ <span class='line'>1938</span> * @param {JXG.GeometryElement} element Reference of the object that wants a
1946
+ <span class='line'>1939</span> * new transition duration.
1947
+ <span class='line'>1940</span> * @param {Number} duration (Optional) duration in milliseconds. If not given,
1948
+ <span class='line'>1941</span> * element.visProp.transitionDuration is taken. This is the default.
1949
+ <span class='line'>1942</span> */</span><span class="WHIT">
1950
+ <span class='line'>1943</span> </span><span class="WHIT"> </span><span class="NAME">setObjectTransition</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1951
+ <span class='line'>1944</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1952
+ <span class='line'>1945</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1953
+ <span class='line'>1946</span>
1954
+ <span class='line'>1947</span> </span><span class="WHIT"> </span><span class="COMM">/**
1955
+ <span class='line'>1948</span> * Sets an objects fill color.
1956
+ <span class='line'>1949</span> * @param {JXG.GeometryElement} element Reference of the object that wants a new fill color.
1957
+ <span class='line'>1950</span> * @param {String} color Color in a HTML/CSS compatible format. If you don't want any fill color at all, choose
1958
+ <span class='line'>1951</span> * 'none'.
1959
+ <span class='line'>1952</span> * @param {Number} opacity Opacity of the fill color. Must be between 0 and 1.
1960
+ <span class='line'>1953</span> */</span><span class="WHIT">
1961
+ <span class='line'>1954</span> </span><span class="WHIT"> </span><span class="NAME">setObjectFillColor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1962
+ <span class='line'>1955</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1963
+ <span class='line'>1956</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1964
+ <span class='line'>1957</span>
1965
+ <span class='line'>1958</span> </span><span class="WHIT"> </span><span class="COMM">/**
1966
+ <span class='line'>1959</span> * Changes an objects stroke color to the given color.
1967
+ <span class='line'>1960</span> * @param {JXG.GeometryElement} element Reference of the {@link JXG.GeometryElement} that gets a new stroke
1968
+ <span class='line'>1961</span> * color.
1969
+ <span class='line'>1962</span> * @param {String} color Color value in a HTML compatible format, e.g. &lt;strong>#00ff00&lt;/strong> or
1970
+ <span class='line'>1963</span> * &lt;strong>green&lt;/strong> for green.
1971
+ <span class='line'>1964</span> * @param {Number} opacity Opacity of the fill color. Must be between 0 and 1.
1972
+ <span class='line'>1965</span> */</span><span class="WHIT">
1973
+ <span class='line'>1966</span> </span><span class="WHIT"> </span><span class="NAME">setObjectStrokeColor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opacity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1974
+ <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1975
+ <span class='line'>1968</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1976
+ <span class='line'>1969</span>
1977
+ <span class='line'>1970</span> </span><span class="WHIT"> </span><span class="COMM">/**
1978
+ <span class='line'>1971</span> * Sets an element's stroke width.
1979
+ <span class='line'>1972</span> * @param {JXG.GeometryElement} element Reference to the geometry element.
1980
+ <span class='line'>1973</span> * @param {Number} width The new stroke width to be assigned to the element.
1981
+ <span class='line'>1974</span> */</span><span class="WHIT">
1982
+ <span class='line'>1975</span> </span><span class="WHIT"> </span><span class="NAME">setObjectStrokeWidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1983
+ <span class='line'>1976</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1984
+ <span class='line'>1977</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1985
+ <span class='line'>1978</span>
1986
+ <span class='line'>1979</span> </span><span class="WHIT"> </span><span class="COMM">/**
1987
+ <span class='line'>1980</span> * Sets the shadow properties to a geometry element. This method is only a stub, it is implemented in the actual
1988
+ <span class='line'>1981</span> * renderers.
1989
+ <span class='line'>1982</span> * @param {JXG.GeometryElement} element Reference to a geometry object, that should get a shadow
1990
+ <span class='line'>1983</span> */</span><span class="WHIT">
1991
+ <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="NAME">setShadow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1992
+ <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
1993
+ <span class='line'>1986</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1994
+ <span class='line'>1987</span>
1995
+ <span class='line'>1988</span> </span><span class="WHIT"> </span><span class="COMM">/**
1996
+ <span class='line'>1989</span> * Highlights an object, i.e. changes the current colors of the object to its highlighting colors
1997
+ <span class='line'>1990</span> * and highlighting strokewidth.
1998
+ <span class='line'>1991</span> * @param {JXG.GeometryElement} el Reference of the object that will be highlighted.
1999
+ <span class='line'>1992</span> * @param {Boolean} [suppressHighlightStrokeWidth=undefined] If undefined or false, highlighting also changes strokeWidth. This might not be
2000
+ <span class='line'>1993</span> * the cases for polygon borders. Thus, if a polygon is highlighted, its polygon borders change strokeWidth only if the polygon attribute
2001
+ <span class='line'>1994</span> * highlightByStrokeWidth == true.
2002
+ <span class='line'>1995</span> * @returns {JXG.AbstractRenderer} Reference to the renderer
2003
+ <span class='line'>1996</span> * @see JXG.AbstractRenderer#updateTextStyle
2004
+ <span class='line'>1997</span> */</span><span class="WHIT">
2005
+ <span class='line'>1998</span> </span><span class="WHIT"> </span><span class="NAME">highlight</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">suppressHighlightStrokeWidth</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2006
+ <span class='line'>1999</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">do_hl</span><span class="PUNC">,</span><span class="WHIT">
2007
+ <span class='line'>2000</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
2008
+ <span class='line'>2001</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">;</span><span class="WHIT">
2009
+ <span class='line'>2002</span>
2010
+ <span class='line'>2003</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2011
+ <span class='line'>2004</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">ev.draft</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2012
+ <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2013
+ <span class='line'>2006</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2014
+ <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="NAME">do_hl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.highlightbystrokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2015
+ <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.borders.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2016
+ <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="NAME">this.highlight</span><span class="PUNC">(</span><span class="NAME">el.borders</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">do_hl</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2017
+ <span class='line'>2010</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2018
+ <span class='line'>2011</span> </span><span class="WHIT"> </span><span class="COMM">/*
2019
+ <span class='line'>2012</span> for (i = 0; i &lt; el.borders.length; i++) {
2020
+ <span class='line'>2013</span> this.setObjectStrokeColor(
2021
+ <span class='line'>2014</span> el.borders[i],
2022
+ <span class='line'>2015</span> el.borders[i].visProp.highlightstrokecolor,
2023
+ <span class='line'>2016</span> el.borders[i].visProp.highlightstrokeopacity
2024
+ <span class='line'>2017</span> );
2025
+ <span class='line'>2018</span> }
2026
+ <span class='line'>2019</span> */</span><span class="WHIT">
2027
+ <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2028
+ <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_TEXT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2029
+ <span class='line'>2022</span> </span><span class="WHIT"> </span><span class="NAME">this.updateTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2030
+ <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_IMAGE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2031
+ <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2032
+ <span class='line'>2025</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="WHIT">
2033
+ <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2034
+ <span class='line'>2027</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT">
2035
+ <span class='line'>2028</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="WHIT">
2036
+ <span class='line'>2029</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2037
+ <span class='line'>2030</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2038
+ <span class='line'>2031</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="WHIT">
2039
+ <span class='line'>2032</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2040
+ <span class='line'>2033</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokecolor</span><span class="PUNC">,</span><span class="WHIT">
2041
+ <span class='line'>2034</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightstrokeopacity</span><span class="WHIT">
2042
+ <span class='line'>2035</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2043
+ <span class='line'>2036</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="WHIT">
2044
+ <span class='line'>2037</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
2045
+ <span class='line'>2038</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillcolor</span><span class="PUNC">,</span><span class="WHIT">
2046
+ <span class='line'>2039</span> </span><span class="WHIT"> </span><span class="NAME">ev.highlightfillopacity</span><span class="WHIT">
2047
+ <span class='line'>2040</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2048
+ <span class='line'>2041</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2049
+ <span class='line'>2042</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2050
+ <span class='line'>2043</span>
2051
+ <span class='line'>2044</span> </span><span class="WHIT"> </span><span class="COMM">// Highlight strokeWidth is suppressed if</span><span class="WHIT">
2052
+ <span class='line'>2045</span> </span><span class="WHIT"> </span><span class="COMM">// parameter suppressHighlightStrokeWidth is false or undefined.</span><span class="WHIT">
2053
+ <span class='line'>2046</span> </span><span class="WHIT"> </span><span class="COMM">// suppressHighlightStrokeWidth is false if polygon attribute</span><span class="WHIT">
2054
+ <span class='line'>2047</span> </span><span class="WHIT"> </span><span class="COMM">// highlightbystrokewidth is true.</span><span class="WHIT">
2055
+ <span class='line'>2048</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ev.highlightstrokewidth</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">suppressHighlightStrokeWidth</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2056
+ <span class='line'>2049</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="WHIT">
2057
+ <span class='line'>2050</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.highlightstrokewidth</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2058
+ <span class='line'>2051</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.strokewidth</span><span class="PUNC">)</span><span class="WHIT">
2059
+ <span class='line'>2052</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2060
+ <span class='line'>2053</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2061
+ <span class='line'>2054</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2062
+ <span class='line'>2055</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2063
+ <span class='line'>2056</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="WHIT">
2064
+ <span class='line'>2057</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2065
+ <span class='line'>2058</span> </span><span class="WHIT"> </span><span class="NAME">this.updatePathWithArrowHeads</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2066
+ <span class='line'>2059</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2067
+ <span class='line'>2060</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2068
+ <span class='line'>2061</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2069
+ <span class='line'>2062</span>
2070
+ <span class='line'>2063</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2071
+ <span class='line'>2064</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2072
+ <span class='line'>2065</span>
2073
+ <span class='line'>2066</span> </span><span class="WHIT"> </span><span class="COMM">/**
2074
+ <span class='line'>2067</span> * Uses the normal colors of an object, i.e. the opposite of {@link JXG.AbstractRenderer#highlight}.
2075
+ <span class='line'>2068</span> * @param {JXG.GeometryElement} el Reference of the object that will get its normal colors.
2076
+ <span class='line'>2069</span> * @returns {JXG.AbstractRenderer} Reference to the renderer
2077
+ <span class='line'>2070</span> * @see JXG.AbstractRenderer#updateTextStyle
2078
+ <span class='line'>2071</span> */</span><span class="WHIT">
2079
+ <span class='line'>2072</span> </span><span class="WHIT"> </span><span class="NAME">noHighlight</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2080
+ <span class='line'>2073</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
2081
+ <span class='line'>2074</span> </span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT">
2082
+ <span class='line'>2075</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">;</span><span class="WHIT">
2083
+ <span class='line'>2076</span>
2084
+ <span class='line'>2077</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectTransition</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2085
+ <span class='line'>2078</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">el.visProp.draft</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2086
+ <span class='line'>2079</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_POLYGON</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2087
+ <span class='line'>2080</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2088
+ <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.borders.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2089
+ <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="NAME">this.noHighlight</span><span class="PUNC">(</span><span class="NAME">el.borders</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2090
+ <span class='line'>2083</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2091
+ <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="COMM">// for (i = 0; i &lt; el.borders.length; i++) {</span><span class="WHIT">
2092
+ <span class='line'>2085</span> </span><span class="WHIT"> </span><span class="COMM">// this.setObjectStrokeColor(</span><span class="WHIT">
2093
+ <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i],</span><span class="WHIT">
2094
+ <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i].visProp.strokecolor,</span><span class="WHIT">
2095
+ <span class='line'>2088</span> </span><span class="WHIT"> </span><span class="COMM">// el.borders[i].visProp.strokeopacity</span><span class="WHIT">
2096
+ <span class='line'>2089</span> </span><span class="WHIT"> </span><span class="COMM">// );</span><span class="WHIT">
2097
+ <span class='line'>2090</span> </span><span class="WHIT"> </span><span class="COMM">// }</span><span class="WHIT">
2098
+ <span class='line'>2091</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2099
+ <span class='line'>2092</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_TEXT</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2100
+ <span class='line'>2093</span> </span><span class="WHIT"> </span><span class="NAME">this.updateTextStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2101
+ <span class='line'>2094</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_IMAGE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2102
+ <span class='line'>2095</span> </span><span class="WHIT"> </span><span class="NAME">this.updateImageStyle</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2103
+ <span class='line'>2096</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2104
+ <span class='line'>2097</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2105
+ <span class='line'>2098</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.strokecolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.strokeopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2106
+ <span class='line'>2099</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectFillColor</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillcolor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev.fillopacity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2107
+ <span class='line'>2100</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2108
+ <span class='line'>2101</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2109
+ <span class='line'>2102</span>
2110
+ <span class='line'>2103</span> </span><span class="WHIT"> </span><span class="NAME">sw</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">ev.strokewidth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2111
+ <span class='line'>2104</span> </span><span class="WHIT"> </span><span class="NAME">this.setObjectStrokeWidth</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sw</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2112
+ <span class='line'>2105</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
2113
+ <span class='line'>2106</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_LINE</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2114
+ <span class='line'>2107</span> </span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_CLASS_CURVE</span><span class="WHIT">
2115
+ <span class='line'>2108</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2116
+ <span class='line'>2109</span> </span><span class="WHIT"> </span><span class="NAME">this.updatePathWithArrowHeads</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2117
+ <span class='line'>2110</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2118
+ <span class='line'>2111</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2119
+ <span class='line'>2112</span>
2120
+ <span class='line'>2113</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
2121
+ <span class='line'>2114</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2122
+ <span class='line'>2115</span>
2123
+ <span class='line'>2116</span> </span><span class="WHIT"> </span><span class="COMM">/* **************************
2124
+ <span class='line'>2117</span> * renderer control
2125
+ <span class='line'>2118</span> * **************************/</span><span class="WHIT">
2126
+ <span class='line'>2119</span>
2127
+ <span class='line'>2120</span> </span><span class="WHIT"> </span><span class="COMM">/**
2128
+ <span class='line'>2121</span> * Stop redraw. This method is called before every update, so a non-vector-graphics based renderer can use this
2129
+ <span class='line'>2122</span> * method to delete the contents of the drawing panel. This is an abstract method every descendant renderer
2130
+ <span class='line'>2123</span> * should implement, if appropriate.
2131
+ <span class='line'>2124</span> * @see JXG.AbstractRenderer#unsuspendRedraw
2132
+ <span class='line'>2125</span> */</span><span class="WHIT">
2133
+ <span class='line'>2126</span> </span><span class="WHIT"> </span><span class="NAME">suspendRedraw</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2134
+ <span class='line'>2127</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2135
+ <span class='line'>2128</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2136
+ <span class='line'>2129</span>
2137
+ <span class='line'>2130</span> </span><span class="WHIT"> </span><span class="COMM">/**
2138
+ <span class='line'>2131</span> * Restart redraw. This method is called after updating all the rendering node attributes.
2139
+ <span class='line'>2132</span> * @see JXG.AbstractRenderer#suspendRedraw
2140
+ <span class='line'>2133</span> */</span><span class="WHIT">
2141
+ <span class='line'>2134</span> </span><span class="WHIT"> </span><span class="NAME">unsuspendRedraw</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2142
+ <span class='line'>2135</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2143
+ <span class='line'>2136</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2144
+ <span class='line'>2137</span>
2145
+ <span class='line'>2138</span> </span><span class="WHIT"> </span><span class="COMM">/**
2146
+ <span class='line'>2139</span> * The tiny zoom bar shown on the bottom of a board (if board attribute "showNavigation" is true).
2147
+ <span class='line'>2140</span> * It is a div element and gets the CSS class "JXG_navigation" and the id {board id}_navigationbar.
2148
+ <span class='line'>2141</span> * &lt;p>
2149
+ <span class='line'>2142</span> * The buttons get the CSS class "JXG_navigation_button" and the id {board_id}_name where name is
2150
+ <span class='line'>2143</span> * one of [top, down, left, right, out, 100, in, fullscreen, screenshot, reload, cleartraces].
2151
+ <span class='line'>2144</span> * &lt;p>
2152
+ <span class='line'>2145</span> * The symbols for zoom, navigation and reload are hard-coded.
2153
+ <span class='line'>2146</span> *
2154
+ <span class='line'>2147</span> * @param {JXG.Board} board Reference to a JSXGraph board.
2155
+ <span class='line'>2148</span> * @param {Object} attr Attributes of the navigation bar
2156
+ <span class='line'>2149</span> * @private
2157
+ <span class='line'>2150</span> */</span><span class="WHIT">
2158
+ <span class='line'>2151</span> </span><span class="WHIT"> </span><span class="NAME">drawNavigationBar</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2159
+ <span class='line'>2152</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="PUNC">,</span><span class="WHIT">
2160
+ <span class='line'>2153</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT">
2161
+ <span class='line'>2154</span> </span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2162
+ <span class='line'>2155</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2163
+ <span class='line'>2156</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
2164
+ <span class='line'>2157</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2165
+ <span class='line'>2158</span>
2166
+ <span class='line'>2159</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e.stopPropagation</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2167
+ <span class='line'>2160</span> </span><span class="WHIT"> </span><span class="COMM">// Non IE&lt;=8</span><span class="WHIT">
2168
+ <span class='line'>2161</span> </span><span class="WHIT"> </span><span class="NAME">e.stopPropagation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2169
+ <span class='line'>2162</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2170
+ <span class='line'>2163</span> </span><span class="WHIT"> </span><span class="NAME">e.cancelBubble</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2171
+ <span class='line'>2164</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2172
+ <span class='line'>2165</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2173
+ <span class='line'>2166</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2174
+ <span class='line'>2167</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">button</span><span class="PUNC">;</span><span class="WHIT">
2175
+ <span class='line'>2168</span>
2176
+ <span class='line'>2169</span> </span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
2177
+ <span class='line'>2170</span>
2178
+ <span class='line'>2171</span> </span><span class="WHIT"> </span><span class="NAME">button</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.createElement</span><span class="PUNC">(</span><span class="STRN">"span"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2179
+ <span class='line'>2172</span> </span><span class="WHIT"> </span><span class="NAME">button.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">label</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// button.appendChild(doc.createTextNode(label));</span><span class="WHIT">
2180
+ <span class='line'>2173</span>
2181
+ <span class='line'>2174</span> </span><span class="WHIT"> </span><span class="COMM">// Style settings are superseded by adding the CSS class below</span><span class="WHIT">
2182
+ <span class='line'>2175</span> </span><span class="WHIT"> </span><span class="NAME">button.style.paddingLeft</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"7px"</span><span class="PUNC">;</span><span class="WHIT">
2183
+ <span class='line'>2176</span> </span><span class="WHIT"> </span><span class="NAME">button.style.paddingRight</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"7px"</span><span class="PUNC">;</span><span class="WHIT">
2184
+ <span class='line'>2177</span>
2185
+ <span class='line'>2178</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">button.classList</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2186
+ <span class='line'>2179</span> </span><span class="WHIT"> </span><span class="COMM">// classList not available in IE 9</span><span class="WHIT">
2187
+ <span class='line'>2180</span> </span><span class="WHIT"> </span><span class="NAME">button.classList.add</span><span class="PUNC">(</span><span class="STRN">"JXG_navigation_button"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2188
+ <span class='line'>2181</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2189
+ <span class='line'>2182</span> </span><span class="WHIT"> </span><span class="COMM">// button.setAttribute('tabindex', 0);</span><span class="WHIT">
2190
+ <span class='line'>2183</span>
2191
+ <span class='line'>2184</span> </span><span class="WHIT"> </span><span class="NAME">button.setAttribute</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2192
+ <span class='line'>2185</span> </span><span class="WHIT"> </span><span class="NAME">node.appendChild</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2193
+ <span class='line'>2186</span>
2194
+ <span class='line'>2187</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="WHIT">
2195
+ <span class='line'>2188</span> </span><span class="WHIT"> </span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT">
2196
+ <span class='line'>2189</span> </span><span class="WHIT"> </span><span class="STRN">"click"</span><span class="PUNC">,</span><span class="WHIT">
2197
+ <span class='line'>2190</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2198
+ <span class='line'>2191</span> </span><span class="WHIT"> </span><span class="NAME">Type.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2199
+ <span class='line'>2192</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2200
+ <span class='line'>2193</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2201
+ <span class='line'>2194</span> </span><span class="WHIT"> </span><span class="NAME">board</span><span class="WHIT">
2202
+ <span class='line'>2195</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2203
+ <span class='line'>2196</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the click from bubbling down to the board</span><span class="WHIT">
2204
+ <span class='line'>2197</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerup"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2205
+ <span class='line'>2198</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerdown"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2206
+ <span class='line'>2199</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"pointerleave"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2207
+ <span class='line'>2200</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"mouseup"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2208
+ <span class='line'>2201</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"mousedown"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2209
+ <span class='line'>2202</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"touchend"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2210
+ <span class='line'>2203</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">button</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"touchstart"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelbubble</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2211
+ <span class='line'>2204</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2212
+ <span class='line'>2205</span>
2213
+ <span class='line'>2206</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Env.isBrowser</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"no"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2214
+ <span class='line'>2207</span> </span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.containerObj.ownerDocument</span><span class="PUNC">;</span><span class="WHIT">
2215
+ <span class='line'>2208</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.createElement</span><span class="PUNC">(</span><span class="STRN">"div"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2216
+ <span class='line'>2209</span>
2217
+ <span class='line'>2210</span> </span><span class="WHIT"> </span><span class="NAME">node.setAttribute</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigationbar"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2218
+ <span class='line'>2211</span>
2219
+ <span class='line'>2212</span> </span><span class="WHIT"> </span><span class="COMM">// Style settings are superseded by adding the CSS class below</span><span class="WHIT">
2220
+ <span class='line'>2213</span> </span><span class="WHIT"> </span><span class="NAME">node.style.color</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.strokecolor</span><span class="PUNC">;</span><span class="WHIT">
2221
+ <span class='line'>2214</span> </span><span class="WHIT"> </span><span class="NAME">node.style.backgroundColor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.fillcolor</span><span class="PUNC">;</span><span class="WHIT">
2222
+ <span class='line'>2215</span> </span><span class="WHIT"> </span><span class="NAME">node.style.padding</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.padding</span><span class="PUNC">;</span><span class="WHIT">
2223
+ <span class='line'>2216</span> </span><span class="WHIT"> </span><span class="NAME">node.style.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.position</span><span class="PUNC">;</span><span class="WHIT">
2224
+ <span class='line'>2217</span> </span><span class="WHIT"> </span><span class="NAME">node.style.fontSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.fontsize</span><span class="PUNC">;</span><span class="WHIT">
2225
+ <span class='line'>2218</span> </span><span class="WHIT"> </span><span class="NAME">node.style.cursor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.cursor</span><span class="PUNC">;</span><span class="WHIT">
2226
+ <span class='line'>2219</span> </span><span class="WHIT"> </span><span class="NAME">node.style.zIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.zindex</span><span class="PUNC">;</span><span class="WHIT">
2227
+ <span class='line'>2220</span> </span><span class="WHIT"> </span><span class="NAME">board.containerObj.appendChild</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2228
+ <span class='line'>2221</span> </span><span class="WHIT"> </span><span class="NAME">node.style.right</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.right</span><span class="PUNC">;</span><span class="WHIT">
2229
+ <span class='line'>2222</span> </span><span class="WHIT"> </span><span class="NAME">node.style.bottom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">attr.bottom</span><span class="PUNC">;</span><span class="WHIT">
2230
+ <span class='line'>2223</span>
2231
+ <span class='line'>2224</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node.classList</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2232
+ <span class='line'>2225</span> </span><span class="WHIT"> </span><span class="COMM">// classList not available in IE 9</span><span class="WHIT">
2233
+ <span class='line'>2226</span> </span><span class="WHIT"> </span><span class="NAME">node.classList.add</span><span class="PUNC">(</span><span class="STRN">"JXG_navigation"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2234
+ <span class='line'>2227</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2235
+ <span class='line'>2228</span> </span><span class="WHIT"> </span><span class="COMM">// For XHTML we need unicode instead of HTML entities</span><span class="WHIT">
2236
+ <span class='line'>2229</span>
2237
+ <span class='line'>2230</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showfullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2238
+ <span class='line'>2231</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2239
+ <span class='line'>2232</span> </span><span class="WHIT"> </span><span class="NAME">board.attr.fullscreen.symbol</span><span class="PUNC">,</span><span class="WHIT">
2240
+ <span class='line'>2233</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2241
+ <span class='line'>2234</span> </span><span class="WHIT"> </span><span class="NAME">board.toFullscreen</span><span class="PUNC">(</span><span class="NAME">board.attr.fullscreen.id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2242
+ <span class='line'>2235</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2243
+ <span class='line'>2236</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_fullscreen"</span><span class="WHIT">
2244
+ <span class='line'>2237</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2245
+ <span class='line'>2238</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2246
+ <span class='line'>2239</span>
2247
+ <span class='line'>2240</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showscreenshot</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2248
+ <span class='line'>2241</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2249
+ <span class='line'>2242</span> </span><span class="WHIT"> </span><span class="NAME">board.attr.screenshot.symbol</span><span class="PUNC">,</span><span class="WHIT">
2250
+ <span class='line'>2243</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2251
+ <span class='line'>2244</span> </span><span class="WHIT"> </span><span class="NAME">window.setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2252
+ <span class='line'>2245</span> </span><span class="WHIT"> </span><span class="NAME">board.renderer.screenshot</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2253
+ <span class='line'>2246</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">330</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2254
+ <span class='line'>2247</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2255
+ <span class='line'>2248</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_screenshot"</span><span class="WHIT">
2256
+ <span class='line'>2249</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2257
+ <span class='line'>2250</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2258
+ <span class='line'>2251</span>
2259
+ <span class='line'>2252</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showreload</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2260
+ <span class='line'>2253</span> </span><span class="WHIT"> </span><span class="COMM">// full reload circle: \u27F2</span><span class="WHIT">
2261
+ <span class='line'>2254</span> </span><span class="WHIT"> </span><span class="COMM">// the board.reload() method does not exist during the creation</span><span class="WHIT">
2262
+ <span class='line'>2255</span> </span><span class="WHIT"> </span><span class="COMM">// of this button. That's why this anonymous function wrapper is required.</span><span class="WHIT">
2263
+ <span class='line'>2256</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2264
+ <span class='line'>2257</span> </span><span class="WHIT"> </span><span class="STRN">"\u21BB"</span><span class="PUNC">,</span><span class="WHIT">
2265
+ <span class='line'>2258</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2266
+ <span class='line'>2259</span> </span><span class="WHIT"> </span><span class="NAME">board.reload</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2267
+ <span class='line'>2260</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2268
+ <span class='line'>2261</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_reload"</span><span class="WHIT">
2269
+ <span class='line'>2262</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2270
+ <span class='line'>2263</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2271
+ <span class='line'>2264</span>
2272
+ <span class='line'>2265</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showcleartraces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2273
+ <span class='line'>2266</span> </span><span class="WHIT"> </span><span class="COMM">// clear traces symbol (otimes): \u27F2</span><span class="WHIT">
2274
+ <span class='line'>2267</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2275
+ <span class='line'>2268</span> </span><span class="WHIT"> </span><span class="STRN">"\u2297"</span><span class="PUNC">,</span><span class="WHIT">
2276
+ <span class='line'>2269</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2277
+ <span class='line'>2270</span> </span><span class="WHIT"> </span><span class="NAME">board.clearTraces</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2278
+ <span class='line'>2271</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2279
+ <span class='line'>2272</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_cleartraces"</span><span class="WHIT">
2280
+ <span class='line'>2273</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2281
+ <span class='line'>2274</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2282
+ <span class='line'>2275</span>
2283
+ <span class='line'>2276</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.shownavigation</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2284
+ <span class='line'>2277</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board.attr.showzoom</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2285
+ <span class='line'>2278</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2286
+ <span class='line'>2279</span> </span><span class="WHIT"> </span><span class="STRN">"\u2013"</span><span class="PUNC">,</span><span class="WHIT">
2287
+ <span class='line'>2280</span> </span><span class="WHIT"> </span><span class="NAME">board.zoomOut</span><span class="PUNC">,</span><span class="WHIT">
2288
+ <span class='line'>2281</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_out"</span><span class="WHIT">
2289
+ <span class='line'>2282</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2290
+ <span class='line'>2283</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="STRN">"o"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.zoom100</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_100"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2291
+ <span class='line'>2284</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="STRN">"+"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.zoomIn</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_in"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2292
+ <span class='line'>2285</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2293
+ <span class='line'>2286</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2294
+ <span class='line'>2287</span> </span><span class="WHIT"> </span><span class="STRN">"\u2190"</span><span class="PUNC">,</span><span class="WHIT">
2295
+ <span class='line'>2288</span> </span><span class="WHIT"> </span><span class="NAME">board.clickLeftArrow</span><span class="PUNC">,</span><span class="WHIT">
2296
+ <span class='line'>2289</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_left"</span><span class="WHIT">
2297
+ <span class='line'>2290</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2298
+ <span class='line'>2291</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2299
+ <span class='line'>2292</span> </span><span class="WHIT"> </span><span class="STRN">"\u2193"</span><span class="PUNC">,</span><span class="WHIT">
2300
+ <span class='line'>2293</span> </span><span class="WHIT"> </span><span class="NAME">board.clickUpArrow</span><span class="PUNC">,</span><span class="WHIT">
2301
+ <span class='line'>2294</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_down"</span><span class="WHIT">
2302
+ <span class='line'>2295</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Down arrow</span><span class="WHIT">
2303
+ <span class='line'>2296</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2304
+ <span class='line'>2297</span> </span><span class="WHIT"> </span><span class="STRN">"\u2191"</span><span class="PUNC">,</span><span class="WHIT">
2305
+ <span class='line'>2298</span> </span><span class="WHIT"> </span><span class="NAME">board.clickDownArrow</span><span class="PUNC">,</span><span class="WHIT">
2306
+ <span class='line'>2299</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_up"</span><span class="WHIT">
2307
+ <span class='line'>2300</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Up arrow</span><span class="WHIT">
2308
+ <span class='line'>2301</span> </span><span class="WHIT"> </span><span class="NAME">createButton</span><span class="PUNC">(</span><span class="WHIT">
2309
+ <span class='line'>2302</span> </span><span class="WHIT"> </span><span class="STRN">"\u2192"</span><span class="PUNC">,</span><span class="WHIT">
2310
+ <span class='line'>2303</span> </span><span class="WHIT"> </span><span class="NAME">board.clickRightArrow</span><span class="PUNC">,</span><span class="WHIT">
2311
+ <span class='line'>2304</span> </span><span class="WHIT"> </span><span class="NAME">board.container</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"_navigation_right"</span><span class="WHIT">
2312
+ <span class='line'>2305</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2313
+ <span class='line'>2306</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2314
+ <span class='line'>2307</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2315
+ <span class='line'>2308</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2316
+ <span class='line'>2309</span>
2317
+ <span class='line'>2310</span> </span><span class="WHIT"> </span><span class="COMM">/**
2318
+ <span class='line'>2311</span> * Wrapper for getElementById for maybe other renderers which elements are not directly accessible by DOM
2319
+ <span class='line'>2312</span> * methods like document.getElementById().
2320
+ <span class='line'>2313</span> * @param {String} id Unique identifier for element.
2321
+ <span class='line'>2314</span> * @returns {Object} Reference to a JavaScript object. In case of SVG/VMLRenderer it's a reference to a SVG/VML node.
2322
+ <span class='line'>2315</span> */</span><span class="WHIT">
2323
+ <span class='line'>2316</span> </span><span class="WHIT"> </span><span class="NAME">getElementById</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2324
+ <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
2325
+ <span class='line'>2318</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">this.container</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2326
+ <span class='line'>2319</span> </span><span class="WHIT"> </span><span class="COMM">// Use querySelector over getElementById for compatibility with both 'regular' document</span><span class="WHIT">
2327
+ <span class='line'>2320</span> </span><span class="WHIT"> </span><span class="COMM">// and ShadowDOM fragments.</span><span class="WHIT">
2328
+ <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.container.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
2329
+ <span class='line'>2322</span> </span><span class="WHIT"> </span><span class="COMM">// Mask special symbols like '/' and '\' in id</span><span class="WHIT">
2330
+ <span class='line'>2323</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">CSS</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Type.exists</span><span class="PUNC">(</span><span class="NAME">CSS.escape</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2331
+ <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CSS.escape</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2332
+ <span class='line'>2325</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2333
+ <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.container.querySelector</span><span class="PUNC">(</span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2334
+ <span class='line'>2327</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2335
+ <span class='line'>2328</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
2336
+ <span class='line'>2329</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2337
+ <span class='line'>2330</span>
2338
+ <span class='line'>2331</span> </span><span class="WHIT"> </span><span class="COMM">/**
2339
+ <span class='line'>2332</span> * Remove an element and provide a function that inserts it into its original position. This method
2340
+ <span class='line'>2333</span> * is taken from this article {@link https://developers.google.com/speed/articles/javascript-dom}.
2341
+ <span class='line'>2334</span> * @author KeeKim Heng, Google Web Developer
2342
+ <span class='line'>2335</span> * @param {Element} el The element to be temporarily removed
2343
+ <span class='line'>2336</span> * @returns {Function} A function that inserts the element into its original position
2344
+ <span class='line'>2337</span> */</span><span class="WHIT">
2345
+ <span class='line'>2338</span> </span><span class="WHIT"> </span><span class="NAME">removeToInsertLater</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2346
+ <span class='line'>2339</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parentNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.parentNode</span><span class="PUNC">,</span><span class="WHIT">
2347
+ <span class='line'>2340</span> </span><span class="WHIT"> </span><span class="NAME">nextSibling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.nextSibling</span><span class="PUNC">;</span><span class="WHIT">
2348
+ <span class='line'>2341</span>
2349
+ <span class='line'>2342</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parentNode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2350
+ <span class='line'>2343</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2351
+ <span class='line'>2344</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2352
+ <span class='line'>2345</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2353
+ <span class='line'>2346</span>
2354
+ <span class='line'>2347</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2355
+ <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">nextSibling</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2356
+ <span class='line'>2349</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nextSibling</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2357
+ <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2358
+ <span class='line'>2351</span> </span><span class="WHIT"> </span><span class="NAME">parentNode.appendChild</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2359
+ <span class='line'>2352</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2360
+ <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2361
+ <span class='line'>2354</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2362
+ <span class='line'>2355</span>
2363
+ <span class='line'>2356</span> </span><span class="WHIT"> </span><span class="COMM">/**
2364
+ <span class='line'>2357</span> * Resizes the rendering element
2365
+ <span class='line'>2358</span> * @param {Number} w New width
2366
+ <span class='line'>2359</span> * @param {Number} h New height
2367
+ <span class='line'>2360</span> */</span><span class="WHIT">
2368
+ <span class='line'>2361</span> </span><span class="WHIT"> </span><span class="NAME">resize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2369
+ <span class='line'>2362</span> </span><span class="WHIT"> </span><span class="COMM">/* stub */</span><span class="WHIT">
2370
+ <span class='line'>2363</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2371
+ <span class='line'>2364</span>
2372
+ <span class='line'>2365</span> </span><span class="WHIT"> </span><span class="COMM">/**
2373
+ <span class='line'>2366</span> * Create crosshair elements (Fadenkreuz) for presentations.
2374
+ <span class='line'>2367</span> * @param {Number} n Number of crosshairs.
2375
+ <span class='line'>2368</span> */</span><span class="WHIT">
2376
+ <span class='line'>2369</span> </span><span class="WHIT"> </span><span class="NAME">createTouchpoints</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2377
+ <span class='line'>2370</span>
2378
+ <span class='line'>2371</span> </span><span class="WHIT"> </span><span class="COMM">/**
2379
+ <span class='line'>2372</span> * Show a specific crosshair.
2380
+ <span class='line'>2373</span> * @param {Number} i Number of the crosshair to show
2381
+ <span class='line'>2374</span> */</span><span class="WHIT">
2382
+ <span class='line'>2375</span> </span><span class="WHIT"> </span><span class="NAME">showTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2383
+ <span class='line'>2376</span>
2384
+ <span class='line'>2377</span> </span><span class="WHIT"> </span><span class="COMM">/**
2385
+ <span class='line'>2378</span> * Hide a specific crosshair.
2386
+ <span class='line'>2379</span> * @param {Number} i Number of the crosshair to show
2387
+ <span class='line'>2380</span> */</span><span class="WHIT">
2388
+ <span class='line'>2381</span> </span><span class="WHIT"> </span><span class="NAME">hideTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2389
+ <span class='line'>2382</span>
2390
+ <span class='line'>2383</span> </span><span class="WHIT"> </span><span class="COMM">/**
2391
+ <span class='line'>2384</span> * Move a specific crosshair.
2392
+ <span class='line'>2385</span> * @param {Number} i Number of the crosshair to show
2393
+ <span class='line'>2386</span> * @param {Array} pos New positon in screen coordinates
2394
+ <span class='line'>2387</span> */</span><span class="WHIT">
2395
+ <span class='line'>2388</span> </span><span class="WHIT"> </span><span class="NAME">updateTouchpoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2396
+ <span class='line'>2389</span>
2397
+ <span class='line'>2390</span> </span><span class="WHIT"> </span><span class="COMM">/**
2398
+ <span class='line'>2391</span> * Convert SVG construction to base64 encoded SVG data URL.
2399
+ <span class='line'>2392</span> * Only available on SVGRenderer.
2400
+ <span class='line'>2393</span> *
2401
+ <span class='line'>2394</span> * @see JXG.SVGRenderer#dumpToDataURI
2402
+ <span class='line'>2395</span> */</span><span class="WHIT">
2403
+ <span class='line'>2396</span> </span><span class="WHIT"> </span><span class="NAME">dumpToDataURI</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_ignoreTexts</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2404
+ <span class='line'>2397</span>
2405
+ <span class='line'>2398</span> </span><span class="WHIT"> </span><span class="COMM">/**
2406
+ <span class='line'>2399</span> * Convert SVG construction to canvas.
2407
+ <span class='line'>2400</span> * Only available on SVGRenderer.
2408
+ <span class='line'>2401</span> *
2409
+ <span class='line'>2402</span> * @see JXG.SVGRenderer#dumpToCanvas
2410
+ <span class='line'>2403</span> */</span><span class="WHIT">
2411
+ <span class='line'>2404</span> </span><span class="WHIT"> </span><span class="NAME">dumpToCanvas</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">canvasId</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_ignoreTexts</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2412
+ <span class='line'>2405</span>
2413
+ <span class='line'>2406</span> </span><span class="WHIT"> </span><span class="COMM">/**
2414
+ <span class='line'>2407</span> * Display SVG image in html img-tag which enables
2415
+ <span class='line'>2408</span> * easy download for the user.
2416
+ <span class='line'>2409</span> *
2417
+ <span class='line'>2410</span> * See JXG.SVGRenderer#screenshot
2418
+ <span class='line'>2411</span> */</span><span class="WHIT">
2419
+ <span class='line'>2412</span> </span><span class="WHIT"> </span><span class="NAME">screenshot</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2420
+ <span class='line'>2413</span>
2421
+ <span class='line'>2414</span> </span><span class="WHIT"> </span><span class="COMM">/**
2422
+ <span class='line'>2415</span> * Move element into new layer. This is trivial for canvas, but needs more effort in SVG.
2423
+ <span class='line'>2416</span> * Does not work dynamically, i.e. if level is a function.
2424
+ <span class='line'>2417</span> *
2425
+ <span class='line'>2418</span> * @param {JXG.GeometryElement} el Element which is put into different layer
2426
+ <span class='line'>2419</span> * @param {Number} value Layer number
2427
+ <span class='line'>2420</span> * @private
2428
+ <span class='line'>2421</span> */</span><span class="WHIT">
2429
+ <span class='line'>2422</span> </span><span class="WHIT"> </span><span class="NAME">setLayer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
2430
+ <span class='line'>2423</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2431
+ <span class='line'>2424</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2432
+ <span class='line'>2425</span>
2433
+ <span class='line'>2426</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.AbstractRenderer</span><span class="PUNC">;</span><span class="WHIT">
2434
+ <span class='line'>2427</span> </span></pre></body></html>