changeset 632:8c00e2be925e

inital veraion 2.7 r2891 of svg-edit
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Thu, 05 Feb 2015 16:37:37 +0100
parents 6d6e3a8caa03
children a081395860f4
files htdocs/svg-edit/AUTHORS htdocs/svg-edit/CHANGES htdocs/svg-edit/LICENSE htdocs/svg-edit/Makefile htdocs/svg-edit/README htdocs/svg-edit/build/svg-edit-2.7.1.zip htdocs/svg-edit/build/svg-edit-2.7.zip htdocs/svg-edit/build/tools/COPYING htdocs/svg-edit/build/tools/README htdocs/svg-edit/build/tools/closure-compiler.jar htdocs/svg-edit/build/tools/ship.py htdocs/svg-edit/build/tools/yuicompressor.jar htdocs/svg-edit/chrome-app/icon_128.png htdocs/svg-edit/chrome-app/manifest.json htdocs/svg-edit/clipart/moon.svg htdocs/svg-edit/clipart/star.svg htdocs/svg-edit/clipart/sun.svg htdocs/svg-edit/docs/files/svgcanvas-js.html htdocs/svg-edit/docs/index.html htdocs/svg-edit/docs/index/Files.html htdocs/svg-edit/docs/index/Functions.html htdocs/svg-edit/docs/index/General.html htdocs/svg-edit/docs/javascript/main.js htdocs/svg-edit/docs/javascript/searchdata.js htdocs/svg-edit/docs/search/FilesS.html htdocs/svg-edit/docs/search/FunctionsA.html htdocs/svg-edit/docs/search/FunctionsC.html htdocs/svg-edit/docs/search/FunctionsD.html htdocs/svg-edit/docs/search/FunctionsG.html htdocs/svg-edit/docs/search/FunctionsM.html htdocs/svg-edit/docs/search/FunctionsO.html htdocs/svg-edit/docs/search/FunctionsR.html htdocs/svg-edit/docs/search/FunctionsS.html htdocs/svg-edit/docs/search/GeneralA.html htdocs/svg-edit/docs/search/GeneralC.html htdocs/svg-edit/docs/search/GeneralD.html htdocs/svg-edit/docs/search/GeneralF.html htdocs/svg-edit/docs/search/GeneralG.html htdocs/svg-edit/docs/search/GeneralL.html htdocs/svg-edit/docs/search/GeneralM.html htdocs/svg-edit/docs/search/GeneralO.html htdocs/svg-edit/docs/search/GeneralR.html htdocs/svg-edit/docs/search/GeneralS.html htdocs/svg-edit/docs/search/NoResults.html htdocs/svg-edit/docs/styles/main.css htdocs/svg-edit/editor/browser-not-supported.html htdocs/svg-edit/editor/browser.js htdocs/svg-edit/editor/canvg/canvg.js htdocs/svg-edit/editor/canvg/rgbcolor.js htdocs/svg-edit/editor/config-sample.js htdocs/svg-edit/editor/contextmenu.js htdocs/svg-edit/editor/contextmenu/jquery.contextMenu.js htdocs/svg-edit/editor/coords.js htdocs/svg-edit/editor/draw.js htdocs/svg-edit/editor/embedapi.html htdocs/svg-edit/editor/embedapi.js htdocs/svg-edit/editor/extensions/allowedMimeTypes.php htdocs/svg-edit/editor/extensions/closepath_icons.svg htdocs/svg-edit/editor/extensions/ext-arrows.js htdocs/svg-edit/editor/extensions/ext-closepath.js htdocs/svg-edit/editor/extensions/ext-connector.js htdocs/svg-edit/editor/extensions/ext-eyedropper.js htdocs/svg-edit/editor/extensions/ext-foreignobject.js htdocs/svg-edit/editor/extensions/ext-grid.js htdocs/svg-edit/editor/extensions/ext-helloworld.js htdocs/svg-edit/editor/extensions/ext-imagelib.js htdocs/svg-edit/editor/extensions/ext-imagelib.xml htdocs/svg-edit/editor/extensions/ext-markers.js htdocs/svg-edit/editor/extensions/ext-mathjax.js htdocs/svg-edit/editor/extensions/ext-overview_window.js htdocs/svg-edit/editor/extensions/ext-panning.js htdocs/svg-edit/editor/extensions/ext-panning.xml htdocs/svg-edit/editor/extensions/ext-php_savefile.js htdocs/svg-edit/editor/extensions/ext-polygon.js htdocs/svg-edit/editor/extensions/ext-server_moinsave.js htdocs/svg-edit/editor/extensions/ext-server_opensave.js htdocs/svg-edit/editor/extensions/ext-shapes.js htdocs/svg-edit/editor/extensions/ext-shapes.xml htdocs/svg-edit/editor/extensions/ext-star.js htdocs/svg-edit/editor/extensions/ext-storage.js htdocs/svg-edit/editor/extensions/ext-webappfind.js htdocs/svg-edit/editor/extensions/ext-xdomain-messaging.js htdocs/svg-edit/editor/extensions/eyedropper-icon.xml htdocs/svg-edit/editor/extensions/eyedropper.png htdocs/svg-edit/editor/extensions/fileopen.php htdocs/svg-edit/editor/extensions/filesave.php htdocs/svg-edit/editor/extensions/foreignobject-icons.xml htdocs/svg-edit/editor/extensions/grid-icon.xml htdocs/svg-edit/editor/extensions/helloworld-icon.xml htdocs/svg-edit/editor/extensions/imagelib/index.html htdocs/svg-edit/editor/extensions/imagelib/smiley.svg htdocs/svg-edit/editor/extensions/markers-icons.xml htdocs/svg-edit/editor/extensions/mathjax-icons.xml htdocs/svg-edit/editor/extensions/polygon-icons.svg htdocs/svg-edit/editor/extensions/savefile.php htdocs/svg-edit/editor/extensions/shapelib/animal.json htdocs/svg-edit/editor/extensions/shapelib/arrow.json htdocs/svg-edit/editor/extensions/shapelib/dialog_balloon.json htdocs/svg-edit/editor/extensions/shapelib/electronics.json htdocs/svg-edit/editor/extensions/shapelib/flowchart.json htdocs/svg-edit/editor/extensions/shapelib/game.json htdocs/svg-edit/editor/extensions/shapelib/math.json htdocs/svg-edit/editor/extensions/shapelib/misc.json htdocs/svg-edit/editor/extensions/shapelib/music.json htdocs/svg-edit/editor/extensions/shapelib/object.json htdocs/svg-edit/editor/extensions/shapelib/raphael.txt htdocs/svg-edit/editor/extensions/shapelib/raphael_1.json htdocs/svg-edit/editor/extensions/shapelib/raphael_2.json htdocs/svg-edit/editor/extensions/shapelib/symbol.json htdocs/svg-edit/editor/extensions/star-icons.svg htdocs/svg-edit/editor/extensions/webappfind-icon.svg htdocs/svg-edit/editor/history.js htdocs/svg-edit/editor/images/README.txt htdocs/svg-edit/editor/images/align-bottom.png htdocs/svg-edit/editor/images/align-bottom.svg htdocs/svg-edit/editor/images/align-center.png htdocs/svg-edit/editor/images/align-center.svg htdocs/svg-edit/editor/images/align-left.png htdocs/svg-edit/editor/images/align-left.svg htdocs/svg-edit/editor/images/align-middle.png htdocs/svg-edit/editor/images/align-middle.svg htdocs/svg-edit/editor/images/align-right.png htdocs/svg-edit/editor/images/align-right.svg htdocs/svg-edit/editor/images/align-top.png htdocs/svg-edit/editor/images/align-top.svg htdocs/svg-edit/editor/images/bold.png htdocs/svg-edit/editor/images/cancel.png htdocs/svg-edit/editor/images/circle.png htdocs/svg-edit/editor/images/clear.png htdocs/svg-edit/editor/images/clone.png htdocs/svg-edit/editor/images/conn.svg htdocs/svg-edit/editor/images/copy.png htdocs/svg-edit/editor/images/cut.png htdocs/svg-edit/editor/images/delete.png htdocs/svg-edit/editor/images/document-properties.png htdocs/svg-edit/editor/images/dropdown.gif htdocs/svg-edit/editor/images/ellipse.png htdocs/svg-edit/editor/images/eye.png htdocs/svg-edit/editor/images/fhpath.png htdocs/svg-edit/editor/images/flyouth.png htdocs/svg-edit/editor/images/flyup.gif htdocs/svg-edit/editor/images/freehand-circle.png htdocs/svg-edit/editor/images/freehand-square.png htdocs/svg-edit/editor/images/go-down.png htdocs/svg-edit/editor/images/go-up.png htdocs/svg-edit/editor/images/image.png htdocs/svg-edit/editor/images/italic.png htdocs/svg-edit/editor/images/line.png htdocs/svg-edit/editor/images/link_controls.png htdocs/svg-edit/editor/images/logo.png htdocs/svg-edit/editor/images/logo.svg htdocs/svg-edit/editor/images/move_bottom.png htdocs/svg-edit/editor/images/move_top.png htdocs/svg-edit/editor/images/node_clone.png htdocs/svg-edit/editor/images/node_delete.png htdocs/svg-edit/editor/images/none.png htdocs/svg-edit/editor/images/open.png htdocs/svg-edit/editor/images/paste.png htdocs/svg-edit/editor/images/path.png htdocs/svg-edit/editor/images/polygon.png htdocs/svg-edit/editor/images/polygon.svg htdocs/svg-edit/editor/images/rect.png htdocs/svg-edit/editor/images/redo.png htdocs/svg-edit/editor/images/reorient.png htdocs/svg-edit/editor/images/rotate.png htdocs/svg-edit/editor/images/save.png htdocs/svg-edit/editor/images/select.png htdocs/svg-edit/editor/images/select_node.png htdocs/svg-edit/editor/images/sep.png htdocs/svg-edit/editor/images/shape_group_elements.png htdocs/svg-edit/editor/images/shape_ungroup.png htdocs/svg-edit/editor/images/source.png htdocs/svg-edit/editor/images/spinbtn_updn_big.png htdocs/svg-edit/editor/images/square.png htdocs/svg-edit/editor/images/svg_edit_icons.svg htdocs/svg-edit/editor/images/svg_edit_icons.svgz htdocs/svg-edit/editor/images/text.png htdocs/svg-edit/editor/images/text.svg htdocs/svg-edit/editor/images/to_path.png htdocs/svg-edit/editor/images/undo.png htdocs/svg-edit/editor/images/view-refresh.png htdocs/svg-edit/editor/images/wave.png htdocs/svg-edit/editor/images/wireframe.png htdocs/svg-edit/editor/images/zoom.png htdocs/svg-edit/editor/jgraduate/LICENSE htdocs/svg-edit/editor/jgraduate/README htdocs/svg-edit/editor/jgraduate/css/jPicker.css htdocs/svg-edit/editor/jgraduate/css/jgraduate.css htdocs/svg-edit/editor/jgraduate/images/AlphaBar.png htdocs/svg-edit/editor/jgraduate/images/Bars.png htdocs/svg-edit/editor/jgraduate/images/Maps.png htdocs/svg-edit/editor/jgraduate/images/NoColor.png htdocs/svg-edit/editor/jgraduate/images/bar-opacity.png htdocs/svg-edit/editor/jgraduate/images/map-opacity.png htdocs/svg-edit/editor/jgraduate/images/mappoint.gif htdocs/svg-edit/editor/jgraduate/images/mappoint_c.png htdocs/svg-edit/editor/jgraduate/images/mappoint_f.png htdocs/svg-edit/editor/jgraduate/images/picker.gif htdocs/svg-edit/editor/jgraduate/images/preview-opacity.png htdocs/svg-edit/editor/jgraduate/images/rangearrows.gif htdocs/svg-edit/editor/jgraduate/images/rangearrows2.gif htdocs/svg-edit/editor/jgraduate/jpicker.js htdocs/svg-edit/editor/jgraduate/jpicker.min.js htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.js htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.min.js htdocs/svg-edit/editor/jquery-svg.js htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.8.17.custom.min.js htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.8.custom.min.js htdocs/svg-edit/editor/jquery.js htdocs/svg-edit/editor/jquerybbq/jquery.bbq.min.js htdocs/svg-edit/editor/js-hotkeys/README.md htdocs/svg-edit/editor/js-hotkeys/jquery.hotkeys.min.js htdocs/svg-edit/editor/locale/README.txt htdocs/svg-edit/editor/locale/lang.af.js htdocs/svg-edit/editor/locale/lang.ar.js htdocs/svg-edit/editor/locale/lang.az.js htdocs/svg-edit/editor/locale/lang.be.js htdocs/svg-edit/editor/locale/lang.bg.js htdocs/svg-edit/editor/locale/lang.ca.js htdocs/svg-edit/editor/locale/lang.cs.js htdocs/svg-edit/editor/locale/lang.cy.js htdocs/svg-edit/editor/locale/lang.da.js htdocs/svg-edit/editor/locale/lang.de.js htdocs/svg-edit/editor/locale/lang.el.js htdocs/svg-edit/editor/locale/lang.en.js htdocs/svg-edit/editor/locale/lang.es.js htdocs/svg-edit/editor/locale/lang.et.js htdocs/svg-edit/editor/locale/lang.fa.js htdocs/svg-edit/editor/locale/lang.fi.js htdocs/svg-edit/editor/locale/lang.fr.js htdocs/svg-edit/editor/locale/lang.fy.js htdocs/svg-edit/editor/locale/lang.ga.js htdocs/svg-edit/editor/locale/lang.gl.js htdocs/svg-edit/editor/locale/lang.he.js htdocs/svg-edit/editor/locale/lang.hi.js htdocs/svg-edit/editor/locale/lang.hr.js htdocs/svg-edit/editor/locale/lang.hu.js htdocs/svg-edit/editor/locale/lang.hy.js htdocs/svg-edit/editor/locale/lang.id.js htdocs/svg-edit/editor/locale/lang.is.js htdocs/svg-edit/editor/locale/lang.it.js htdocs/svg-edit/editor/locale/lang.ja.js htdocs/svg-edit/editor/locale/lang.ko.js htdocs/svg-edit/editor/locale/lang.lt.js htdocs/svg-edit/editor/locale/lang.lv.js htdocs/svg-edit/editor/locale/lang.mk.js htdocs/svg-edit/editor/locale/lang.ms.js htdocs/svg-edit/editor/locale/lang.mt.js htdocs/svg-edit/editor/locale/lang.nl.js htdocs/svg-edit/editor/locale/lang.no.js htdocs/svg-edit/editor/locale/lang.pl.js htdocs/svg-edit/editor/locale/lang.pt-BR.js htdocs/svg-edit/editor/locale/lang.pt-PT.js htdocs/svg-edit/editor/locale/lang.ro.js htdocs/svg-edit/editor/locale/lang.ru.js htdocs/svg-edit/editor/locale/lang.sk.js htdocs/svg-edit/editor/locale/lang.sl.js htdocs/svg-edit/editor/locale/lang.sq.js htdocs/svg-edit/editor/locale/lang.sr.js htdocs/svg-edit/editor/locale/lang.sv.js htdocs/svg-edit/editor/locale/lang.sw.js htdocs/svg-edit/editor/locale/lang.test.js htdocs/svg-edit/editor/locale/lang.th.js htdocs/svg-edit/editor/locale/lang.tl.js htdocs/svg-edit/editor/locale/lang.tr.js htdocs/svg-edit/editor/locale/lang.uk.js htdocs/svg-edit/editor/locale/lang.vi.js htdocs/svg-edit/editor/locale/lang.yi.js htdocs/svg-edit/editor/locale/lang.zh-CN.js htdocs/svg-edit/editor/locale/lang.zh-HK.js htdocs/svg-edit/editor/locale/lang.zh-TW.js htdocs/svg-edit/editor/locale/locale.js htdocs/svg-edit/editor/math.js htdocs/svg-edit/editor/path.js htdocs/svg-edit/editor/recalculate.js htdocs/svg-edit/editor/sanitize.js htdocs/svg-edit/editor/select.js htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.css htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.js htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.min.js htdocs/svg-edit/editor/spinbtn/spinbtn_updn.png htdocs/svg-edit/editor/svg-editor.css htdocs/svg-edit/editor/svg-editor.html htdocs/svg-edit/editor/svg-editor.js htdocs/svg-edit/editor/svg-editor.manifest htdocs/svg-edit/editor/svgcanvas.js htdocs/svg-edit/editor/svgedit.compiled.js htdocs/svg-edit/editor/svgedit.js htdocs/svg-edit/editor/svgicons/jquery.svgicons.js htdocs/svg-edit/editor/svgtransformlist.js htdocs/svg-edit/editor/svgutils.js htdocs/svg-edit/editor/touch.js htdocs/svg-edit/editor/units.js htdocs/svg-edit/examples/arbelos.svg htdocs/svg-edit/examples/mickey.svg htdocs/svg-edit/extras/tojson.py htdocs/svg-edit/extras/topo.py htdocs/svg-edit/extras/update-langs.py htdocs/svg-edit/firefox-extension/chrome.manifest htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.css htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.js htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.xul htdocs/svg-edit/firefox-extension/handlers.js htdocs/svg-edit/firefox-extension/install.rdf htdocs/svg-edit/opera-widget/config.xml htdocs/svg-edit/opera-widget/handlers.js htdocs/svg-edit/opera-widget/index.html htdocs/svg-edit/opera-widget/style.css htdocs/svg-edit/screencasts/svgedit-screencast-1.txt htdocs/svg-edit/screencasts/svgedit-screencast-2.txt htdocs/svg-edit/screencasts/svgedit-screencast-3.txt htdocs/svg-edit/screencasts/svgopen2010/index.html htdocs/svg-edit/screencasts/svgopen2010/logo.svg htdocs/svg-edit/screencasts/svgopen2010/script.js htdocs/svg-edit/screencasts/svgopen2010/style.css htdocs/svg-edit/test/all_tests.html htdocs/svg-edit/test/contextmenu_test.html htdocs/svg-edit/test/coords_test.html htdocs/svg-edit/test/draw_test.html htdocs/svg-edit/test/history_test.html htdocs/svg-edit/test/jquery-svg_test.html htdocs/svg-edit/test/math_test.html htdocs/svg-edit/test/path_test.html htdocs/svg-edit/test/qunit/qunit.css htdocs/svg-edit/test/qunit/qunit.js htdocs/svg-edit/test/recalculate_test.html htdocs/svg-edit/test/sanitize_test.html htdocs/svg-edit/test/select_test.html htdocs/svg-edit/test/svgtransformlist_test.html htdocs/svg-edit/test/svgutils_test.html htdocs/svg-edit/test/test1.html htdocs/svg-edit/test/units_test.html htdocs/svg-edit/wave/json2.js htdocs/svg-edit/wave/manifest.xml htdocs/svg-edit/wave/svg-edit.xml htdocs/svg-edit/wave/wave.js
diffstat 336 files changed, 65168 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/AUTHORS	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,22 @@
+Narendra Sisodiya <narendra.sisodiya@gmail.com>
+Pavol Rusnak <rusnakp@gmail.com>
+Jeff Schiller <codedread@gmail.com>
+Vidar Hokstad <vidar.hokstad@gmail.com>
+Alexis Deveria <adeveria@gmail.com>
+
+Translation credits:
+
+ar: Tarik Belaam <dubraise@gmail.com> (العربية)
+cs: Jan Ptacek <jan.ptacek@gmail.com> (Čeština)
+de: Reimar Bauer <rb.proj@googlemail.com> (Deutsch)
+es: Alicia Puerto <alicia.puerto.g@gmail.com> (Español)
+fa: Payman Delshad <payman@opera.com> (فارسی)
+fr: wormsxulla <wormsxulla@yahoo.com> (Français)
+fy: Wander Nauta <info@wandernauta.nl> (Frysk)
+hi: Tavish Naruka <tavishnaruka@gmail.com> (हिन्दी)
+ja: Dong <iwadon@yarhalla.jpn.org> (日本語)
+nl: Jaap Blom <jaap.blom@gmail.com> (Nederlands)
+ro: Christian Tzurcanu <christian.tzurcanu@gmail.com> (Româneşte)
+ru: Laurent Dufloux <laurent.dufloux@etu.upmc.fr> (Русский)
+sk: Pavol Rusnak <rusnakp@gmail.com> (Slovenčina)
+zh-TW: 黃瀚生 (Han Sheng Huang) <zenixls2@gmail.com> (台灣正體)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/CHANGES	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,146 @@
+2.7.1 (applied to 2.7 branch) - April 17, 2014
+-----------------------------------------------------------
+* Fix important ID situation with embedded API
+* Update functions available to embedded editor 
+
+2.7 (Deltoid curve) - April 7th, 2014
+-----------------------------------------------
+* Export to PNG, JPEG, BMP, WEBP (including quality control for JPEG/WEBP) for default editor and for the server_opensave extension
+* Added Star, Polygon, and Panning Extensions r2318 r2319 r2333
+* Added non-default extension, ext-xdomain-messaging.js, moving cross-domain messaging code (as used by the embedded editor) out of core and requiring, when the extension IS included, that configuration (an array "allowedOrigins") be set in order to allow access by any domain (even same domain).
+* Cause embedded editor to pass on URL arguments to the child editor (child iframe)
+* Added default extension, ext-storage.js moving storage setting code into this (optional) extension; contains dialog to ask user whether they wish to utilize local storage for prefs and/or content; provides configuration options to tweak behaviors.
+* Allow for a new file config.js within the editor folder (but not committed to SVN and ignored) which is always loaded and can be used for supplying configuration which happens early enough to affect URL or user storage configuration, in addition to extension behavior configuration. Provided config-sample.js to indicate types of configuration one could use (see also defaultPrefs, defaultExtensions, and defaultConfig within svg-editor.js )
+* Added configuration "preventAllURLConfig", "lockExtensions", and/or "preventURLContentLoading" for greater control of what can be configured via URL.
+* Allow second argument object to setConfig containing "allowInitialUserOverride" booleans to allow for preference config in config.js to be overridden by URL or preferences in user storage; also can supply "overwrite" boolean in 2nd argument object if set to false to prevent overwriting of any prior-set configuration (URL config/pref setting occurs in this manner automatically for security reasons).
+* Allow server_opensave extension to work wholly client-side (if browser supports the download attribute)
+* Added WebAppFind extension
+* Added new php_savefile extension to replace outdated, non-functioning server-save code; requires user to create "savefile_config.php" file and do any validation there (for their own security)
+* Use addEventListener for 'beforeunload' event so user can add their own if desired
+* Changed locale behavior to always load from locale file, including English. Allow extensions to add new "langReady" callback which is passed an object with "lang" and "uiStrings" properties whenever the locale data is first made available or changed by the user (this callback will not be invoked until the locale data is available). Extensions can add strings to all locales and utilize this mechanism.
+* Made fixes impacting path issues and also ext-connector.js
+* Fixed a bug where the position number supplied on an extension object was too high (e.g., if too few other extensions were included, the extension might not show up because its position was set too high).
+* Added Polish locale
+* Zoom features
+* Make extension paths relative within extensions (issue 1184)
+* Security improvements and other fixes
+* Embedded editor can now work same domain without JSON parsing and the consequent potential loss of arguments or return values.
+* Potentially breaking API changes:
+** Disallowed "extPath", "imgPath", "langPath", and "jGraduatePath" setting via URL and prevent cross-domain/cross-folder extensions being set by URL (security enhancement)
+** Deprecated "pngsave" option called by setCustomHandlers() in favor of "exportImage" (to accommodate export of other image types). Second argument will now supply, in addition to "issues" and "svg", the properties "type" (currently 'PNG', 'JPEG', 'BMP', 'WEBP'), "mimeType", and "quality" (for 'JPEG' and 'WEBP' types).
+** Default extensions will now always load (along with those supplied in the URL unless the latter is prohibited by configuration), so if you do not wish your old code to load all of the default extensions, you will need to add &noDefaultExtensions=true to the URL (or add equivalent configuration in config.js). ext-overview_window.js can now be excluded though it is still a default.
+** Preferences and configuration options must be within the list supplied within svg-editor.js (should include those of all documented extensions).
+** Embedded messaging will no longer work by default for privacy/data integrity reasons. One must include the "ext-xdomain-messaging.js" extension and supply an array configuration item, "allowedOrigins" with potential values including: "*" (to allow all domains--strongly discouraged!), "null" as a string to allow file:// access, window.location.origin (to allow same domain access), or specific trusted origins. The embedded editor works without the extension if the main editor is on the same domain, but if cross-domain control is needed, the "allowedOrigins" array must be supplied by a call to svgEditor.setConfig({allowedOrigins: [origin1, origin2, etc.]}) in the new config.js file.
+
+2.6 (Cycloid) - January 15th, 2013
+----------------------------------------------
+* Support for Internet Explorer 9
+* Context menu
+* Cut/Copy/Paste/Paste in Place options
+* Gridlines, snap to grid
+* Merge layers
+* Duplicate layer
+* Image library
+* Shape library
+* Basic Server-based tools for file opening/saving
+* In-group editing
+* Cut/Copy/Paste
+* full list: http://code.google.com/p/svg-edit/issues/list?can=1&q=label%3ANeededFor-2.6
+
+2.5 - June 15, 2010
+-------------------
+* Open Local Files (Firefox 3.6+ only)
+* Import SVG into Drawing (Firefox 3.6+ only)
+* Ability to create extensions/plugins
+* Main menu and overal interface improvements
+* Create and select elements outside the canvas
+* Base support for the svg:use element
+* Add/Edit Sub-paths
+* Multiple path segment selection
+* Radial Gradient support
+* Connector lines
+* Arrows & Markers
+* Smoother freehand paths
+* Foreign markup support (ForeignObject?/MathML)
+* Configurable options
+* File-loading options
+* Eye-dropper tool (copy element style)
+* Stroke linejoin and linecap options
+* Export to PNG
+* Blur tool
+* Page-align single elements
+* Inline text editing
+* Line draw snapping with Shift key
+
+2.4 - January 11, 2010
+----------------------
+* Zoom
+* Layers
+* UI Localization
+* Wireframe Mode
+* Resizable UI (SVG icons)
+* Set background color and/or image (for tracing)
+* Convert Shapes to Paths
+* X, Y coordinates for all elements
+* Draggable Dialog boxes
+* Select Non-Adjacent Elements
+* Fixed-ratio resize
+* Automatic Tool Switching
+* Raster Images
+* Group elements
+* Add/Remove path nodes
+* Curved Paths
+* Floating point values for all attributes
+* Text fields for all attributes
+* Title element
+
+2.3 - September 08, 2009
+------------------------
+* Align Objects
+* Rotate Objects
+* Clone Objects
+* Select Next/Prev Object
+* Edit SVG Source
+* Gradient picking
+* Polygon Mode (Path Editing, Phase 1)
+
+2.2 - July 08, 2009
+-------------------
+* Multiselect Mode
+* Undo/Redo Actions
+* Resize Elements
+* Contextual tools for rect, circle, ellipse, line, text elements
+* Some updated button images
+* Stretched the UI to fit the browser window
+* Resizing of the SVG canvas
+* Upgraded to jPicker 1.0.8
+
+2.1 - June 17, 2009
+-------------------
+* tooltips added to all UI elements
+* fix flyout menus
+* ask before clearing the drawing (suggested by martin.vidner)
+* control group, fill and stroke opacity
+* fix flyouts when using color picker
+* change license from GPLv2 to Apache License v2.0
+* replaced Farbtastic with jPicker, because of the license issues
+* removed dependency on svgcanvas.svg, now created in JavaScript
+* added Select tool
+* using jQuery hosted by Google instead of local version
+* allow dragging of elements
+* save SVG file to separate tab
+* create and edit text elements
+* context panel tools
+* change rect radius, font-family, font-size
+* added keystroke shortcuts for all tools
+* move to top/bottom
+
+2.0 - June 03, 2009
+-------------------
+* rewritten SVG-edit, so now it uses OOP
+* draw ellipse, square
+* created HTML interface similar to Inkscape
+
+1.0 - February 06, 2009
+-------------------
+* SVG-Edit released
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/LICENSE	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,19 @@
+Copyright (c) 2009-2012 by SVG-edit authors (see AUTHORS file)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/Makefile	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,103 @@
+NAME=svg-edit
+VERSION=2.7.1
+PACKAGE=$(NAME)-$(VERSION)
+MAKEDOCS=naturaldocs/NaturalDocs
+CLOSURE=build/tools/closure-compiler.jar
+ZIP=zip
+
+# All files that will be compiled by the Closure compiler.
+
+JS_FILES=\
+	svgedit.js \
+	jquery-svg.js \
+	contextmenu/jquery.contextmenu.js \
+	browser.js \
+	svgtransformlist.js \
+	math.js \
+	units.js \
+	svgutils.js \
+	sanitize.js \
+	history.js \
+	coords.js \
+	recalculate.js \
+	select.js \
+	draw.js \
+	path.js \
+	svgcanvas.js \
+	svg-editor.js \
+	locale/locale.js \
+	contextmenu.js
+
+JS_INPUT_FILES=$(addprefix editor/, $(JS_FILES))
+JS_BUILD_FILES=$(addprefix build/$(PACKAGE)/, $(JS_FILES))
+CLOSURE_JS_ARGS=$(addprefix --js , $(JS_INPUT_FILES))
+COMPILED_JS=editor/svgedit.compiled.js
+
+all: release firefox opera
+
+# The build directory relies on the JS being compiled.
+build/$(PACKAGE): $(COMPILED_JS)
+	rm -rf config
+	mkdir config
+	if [ -x $(MAKEDOCS) ] ; then $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r ; fi
+
+	# Make build directory and copy all editor contents into it
+	mkdir -p build/$(PACKAGE)
+	cp -r editor/* build/$(PACKAGE)
+
+	# Remove all hidden .svn directories
+	-find build/$(PACKAGE) -name .svn -type d | xargs rm -rf {} \;
+
+	# Create the release version of the main HTML file.
+	build/tools/ship.py --i=editor/svg-editor.html --on=svg_edit_release > build/$(PACKAGE)/svg-editor.html
+
+# NOTE: Some files are not ready for the Closure compiler: (jquery)
+# NOTE: Our code safely compiles under SIMPLE_OPTIMIZATIONS
+# NOTE: Our code is *not* ready for ADVANCED_OPTIMIZATIONS
+# NOTE: WHITESPACE_ONLY and --formatting PRETTY_PRINT is helpful for debugging.
+$(COMPILED_JS):
+	java -jar $(CLOSURE) \
+		--compilation_level SIMPLE_OPTIMIZATIONS \
+		$(CLOSURE_JS_ARGS) \
+		--js_output_file $(COMPILED_JS)
+
+compile: $(COMPILED_JS)
+
+release: build/$(PACKAGE)
+	cd build ; $(ZIP) $(PACKAGE).zip -r $(PACKAGE) ; cd ..
+	tar -z -c -f build/$(PACKAGE)-src.tar.gz \
+	    --exclude='\.svn' \
+	    --exclude='build/*' \
+	    .
+
+firefox: build/$(PACKAGE)
+	mkdir -p build/firefox/content/editor
+	cp -r firefox-extension/* build/firefox
+	rm -rf build/firefox/content/.svn
+	cp -r build/$(PACKAGE)/* build/firefox/content/editor
+	rm -f build/firefox/content/editor/embedapi.js
+	cd build/firefox ; $(ZIP) ../$(PACKAGE).xpi -r * ; cd ../..
+
+opera: build/$(PACKAGE)
+	mkdir -p build/opera/editor
+	cp opera-widget/* build/opera
+	cp -r build/$(PACKAGE)/* build/opera/editor
+	cd build/opera ; $(ZIP) ../$(PACKAGE).wgt -r * ; cd ../..
+
+chrome:
+	mkdir -p build/svgedit_app
+	cp -a chrome-app/* build/svgedit_app
+	cd build ; $(ZIP) -r $(PACKAGE)-crx.zip svgedit_app ; rm -rf svgedit_app; cd ..
+
+jgraduate:
+	java -jar $(CLOSURE) --js editor/jgraduate/jquery.jgraduate.js --js_output_file editor/jgraduate/jquery.jgraduate.min.js
+clean:
+	rm -rf config
+	rm -rf build/$(PACKAGE)
+	rm -rf build/firefox
+	rm -rf build/opera
+	rm -rf build/$(PACKAGE).zip
+	rm -rf build/$(PACKAGE)-src.tar.gz
+	rm -rf build/$(PACKAGE).xpi
+	rm -rf build/$(PACKAGE).wgt
+	rm -rf $(COMPILED_JS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/README	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,21 @@
+SVG-edit, a web based SVG editor
+
+http://code.google.com/p/svg-edit/
+
+see AUTHORS file for authors
+
+-----
+
+SVG-edit contains code from these projects:
+
+jQuery JavaScript Library v1.3.2
+http://jquery.com/
+Copyright (c) 2009 John Resig
+
+jQuery js-Hotkeys
+http://code.google.com/p/js-hotkeys/
+Copyright (c) 2008 Tzury Bar Yochay
+
+jPicker
+http://www.digitalmagicpro.com/jPicker/
+Copyright (c) 2009 Christopher T. Tillman
Binary file htdocs/svg-edit/build/svg-edit-2.7.1.zip has changed
Binary file htdocs/svg-edit/build/svg-edit-2.7.zip has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/build/tools/COPYING	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/build/tools/README	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,289 @@
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+//
+// Contents
+//
+
+The Closure Compiler performs checking, instrumentation, and
+optimizations on JavaScript code. The purpose of this README is to
+explain how to build and run the Closure Compiler.
+
+The Closure Compiler requires Java 6 or higher.
+http://www.java.com/
+
+
+//
+// Building The Closure Compiler
+//
+
+There are three ways to get a Closure Compiler executable.
+
+1) Use one we built for you.
+
+Pre-built Closure binaries can be found at
+http://code.google.com/p/closure-compiler/downloads/list
+
+
+2) Check out the source and build it with Apache Ant.
+
+First, check out the full source tree of the Closure Compiler. There
+are instructions on how to do this at the project site.
+http://code.google.com/p/closure-compiler/source/checkout
+
+Apache Ant is a cross-platform build tool.
+http://ant.apache.org/
+
+At the root of the source tree, there is an Ant file named
+build.xml. To use it, navigate to the same directory and type the
+command
+
+ant jar
+
+This will produce a jar file called "build/compiler.jar".
+
+
+3) Check out the source and build it with Eclipse.
+
+Eclipse is a cross-platform IDE.
+http://www.eclipse.org/
+
+Under Eclipse's File menu, click "New > Project ..." and create a
+"Java Project."  You will see an options screen. Give the project a
+name, select "Create project from existing source," and choose the
+root of the checked-out source tree as the existing directory. Verify
+that you are using JRE version 6 or higher.
+
+Eclipse can use the build.xml file to discover rules. When you
+navigate to the build.xml file, you will see all the build rules in
+the "Outline" pane. Run the "jar" rule to build the compiler in
+build/compiler.jar.
+
+
+//
+// Running The Closure Compiler
+//
+
+Once you have the jar binary, running the Closure Compiler is straightforward.
+
+On the command line, type
+
+java -jar compiler.jar
+
+This starts the compiler in interactive mode. Type
+
+var x = 17 + 25;
+
+then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux)
+and "Enter" again. The Compiler will respond:
+
+var x=42;
+
+The Closure Compiler has many options for reading input from a file,
+writing output to a file, checking your code, and running
+optimizations. To learn more, type
+
+java -jar compiler.jar --help
+
+You can read more detailed documentation about the many flags at
+http://code.google.com/closure/compiler/docs/gettingstarted_app.html
+
+
+//
+// Compiling Multiple Scripts
+//
+
+If you have multiple scripts, you should compile them all together with
+one compile command.
+
+java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
+
+The Closure Compiler will concatenate the files in the order they're
+passed at the command line.
+
+If you need to compile many, many scripts together, you may start to
+run into problems with managing dependencies between scripts. You
+should check out the Closure Library. It contains functions for
+enforcing dependencies between scripts, and a tool called calcdeps.py
+that knows how to give scripts to the Closure Compiler in the right
+order.
+
+http://code.google.com/p/closure-library/
+
+//
+// Licensing
+//
+
+Unless otherwise stated, all source files are licensed under
+the Apache License, Version 2.0.
+
+
+-----
+Code under:
+src/com/google/javascript/rhino
+test/com/google/javascript/rhino
+
+URL: http://www.mozilla.org/rhino
+Version:  1.5R3, with heavy modifications
+License:  Netscape Public License and MPL / GPL dual license
+
+Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an
+implementation of JavaScript for the JVM.  The JavaScript parser and
+the parse tree data structures were extracted and modified
+significantly for use by Google's JavaScript compiler.
+
+Local Modifications: The packages have been renamespaced. All code not
+relavant to parsing has been removed. A JSDoc parser and static typing
+system have been added.
+
+
+-----
+Code in:
+lib/libtrunk_rhino_parser_jarjared.jar
+
+Rhino
+URL: http://www.mozilla.org/rhino
+Version:  Trunk
+License:  Netscape Public License and MPL / GPL dual license
+
+Description: Mozilla Rhino is an implementation of JavaScript for the JVM.
+
+Local Modifications: None. We've used JarJar to renamespace the code
+post-compilation. See:
+http://code.google.com/p/jarjar/
+
+
+-----
+Code in:
+lib/args4j_deploy.jar
+
+Args4j
+URL: https://args4j.dev.java.net/
+Version: 2.0.9
+License: MIT
+
+Description:
+args4j is a small Java class library that makes it easy to parse command line
+options/arguments in your CUI application.
+
+Local Modifications: None.
+
+
+-----
+Code in:
+lib/guava-r06.jar
+
+Guava Libraries
+URL: http://code.google.com/p/guava-libraries/
+Version:  R6
+License: Apache License 2.0
+
+Description: Google's core Java libraries.
+
+Local Modifications: None.
+
+
+-----
+Code in:
+lib/hamcrest-core-1.1.jar
+
+Hamcrest
+URL: http://code.google.com/p/hamcrest
+License: BSD
+License File: LICENSE
+
+Description:
+Provides a library of matcher objects (also known as constraints or
+predicates) allowing 'match' rules to be defined declaratively, to be used in
+other frameworks. Typical scenarios include testing frameworks, mocking
+libraries and UI validation rules.
+
+Local modifications:
+The original jars contained both source code and compiled classes.
+
+hamcrest-core-1.1.jar just contains the compiled classes.
+
+
+
+-----
+Code in:
+lib/jsr305.jar
+
+Annotations for software defect detection
+URL: http://code.google.com/p/jsr-305/
+Version: svn revision 47
+License: BSD License
+
+Description: Annotations for software defect detection.
+
+Local Modifications: None.
+
+
+----
+Code in:
+lib/junit.jar
+
+JUnit
+URL:  http://sourceforge.net/projects/junit/
+Version:  4.5
+License:  Common Public License 1.0
+
+Description: A framework for writing and running automated tests in Java.
+
+Local Modifications: None.
+
+
+---
+Code in:
+lib/protobuf-java-2.3.0.jar
+
+Protocol Buffers
+URL: http://code.google.com/p/protobuf/
+Version: 2.3.0
+License: New BSD License
+
+Description: Supporting libraries for protocol buffers,
+an encoding of structured data.
+
+Local Modifications: None
+
+
+---
+Code in:
+lib/ant_deploy.jar
+
+URL: http://ant.apache.org/bindownload.cgi
+Version: 1.6.5
+License: Apache License 2.0
+Description:
+  Ant is a Java based build tool. In theory it is kind of like "make"
+  without make's wrinkles and with the full portability of pure java code.
+
+Local Modifications:
+  Modified apache-ant-1.6.5/bin/ant to look in the ant.runfiles directory
+
+
+---
+Code in:
+lib/json.jar
+URL: http://json.org/java/index.html
+Version: JSON version 2
+License: MIT license
+Description:
+JSON is a set of java files for use in transmitting data in JSON format.
+
+Local Modifications: None
+
Binary file htdocs/svg-edit/build/tools/closure-compiler.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/build/tools/ship.py	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,155 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# ship.py
+#
+# Licensed under the Apache 2 License as is the rest of the project
+# Copyright (c) 2011 Jeff Schiller
+#
+# This script has very little real-world application.  It is only used in our pure-client web app
+# served on GoogleCode so we can have one HTML file, run a build script and generate a 'release'
+# version without having to maintain two separate HTML files.  It does this by evaluating
+# 'processing comments' that are suspicously similar to IE conditional comments and then outputting
+# a new HTML file after evaluating particular variables.
+#
+# This script takes the following inputs:
+#
+# * a HTML file (--i=in.html)
+# * a series of flag names (--on=Foo --on=Bar)
+#
+# Example:
+#
+# in.html:
+#   <!--{if foo}>
+#     FOO!
+#   <!{else}-->
+#     BAR!
+#   <!--{endif}-->
+#
+# $ ship.py --i in.html --on foo
+#
+# out.html:
+#   <!--{if foo}-->
+#     FOO!
+#   <!--{else}>
+#     BAR!
+#   <!{endif}-->
+#
+# It has the following limitations:
+#
+# 1) Only if-else-endif are currently supported.
+# 2) All processing comments must be on one line with no other non-whitespace characters.
+# 3) Comments cannot be nested.
+
+import optparse
+import os
+
+inside_if = False
+last_if_true = False
+
+_options_parser = optparse.OptionParser(
+	usage='%prog --i input.html [--on flag1]',
+	description=('Rewrites an HTML file based on conditional comments and flags'))
+_options_parser.add_option('--i',
+	action='store', dest='input_html_file', help='Input HTML filename')
+_options_parser.add_option('--on',
+	action='append', type='string', dest='enabled_flags',
+	help='name of flag to enable')
+
+def parse_args(args=None):
+  options, rargs = _options_parser.parse_args(args)
+  return options, (None, None)
+
+def parseComment(line, line_num, enabled_flags):
+  global inside_if
+  global last_if_true
+
+  start = line.find('{')
+  end = line.find('}')
+  statement = line[start+1:end].strip()
+  if statement.startswith('if '):
+    if inside_if == True:
+      print 'Fatal Error: Nested {if} found on line ' + str(line_num)
+      print line
+      quit()
+
+    # Evaluate whether the expression is true/false.
+    # only one variable name allowed for now
+    variable_name = statement[3:].strip()
+    if variable_name in enabled_flags:
+      last_if_true = True
+      line = '<!--{if ' + variable_name + '}-->'
+    else:
+      last_if_true = False
+      line = '<!--{if ' + variable_name + '}>'
+
+    inside_if = True
+
+  elif statement == 'else':
+    if inside_if == False:
+      print 'Fatal Error: {else} found without {if} on line ' + str(line_num)
+      print line
+      quit()
+    if inside_if == 'else':
+      print 'Fatal Error: Multiple {else} clauses found in the same if on line ' + str(line_num)
+      print line
+      quit()
+
+    if last_if_true:
+      line = '<!--{else}>'
+    else:
+      line = '<!{else}-->'
+
+    # invert the logic so the endif clause is closed properly
+    last_if_true = not last_if_true
+
+    # ensure we don't have two else statements in the same if
+    inside_if = 'else'
+
+  elif statement == 'endif':
+    if inside_if == False:
+      print 'Fatal Error: {endif} found without {if} on line ' + str(line_num)
+      print line
+      quit()
+
+    if last_if_true:
+      line = '<!--{endif}-->'
+    else:
+      line = '<!{endif}-->'
+
+    inside_if = False
+
+  return line
+
+
+def ship(inFileName, enabled_flags):
+  # read in HTML file
+  lines = file(inFileName, 'r').readlines()
+  out_lines = []
+  i = 0
+
+  # loop for each line of markup
+  for line in lines:
+    strline = line.strip()
+    # if we find a comment, process it and print out
+    if strline.startswith('<!--{') or strline.startswith('<!{'):
+      # using the same indentation as the previous line
+      start = line.find('<')
+      out_lines.append(line[:start] \
+        + parseComment(strline, i, enabled_flags) \
+        + os.linesep)
+    else: # else append line to the output list
+      out_lines.append(line)
+    i += 1
+  
+  return ''.join(out_lines)
+
+if __name__ == '__main__':
+  options, (input, output) = parse_args()
+
+  if options.input_html_file != None:
+    enabled_flags = []
+    if options.enabled_flags != None:
+      enabled_flags.extend(options.enabled_flags)
+    out_file = ship(options.input_html_file, enabled_flags)
+    print out_file
Binary file htdocs/svg-edit/build/tools/yuicompressor.jar has changed
Binary file htdocs/svg-edit/chrome-app/icon_128.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/chrome-app/manifest.json	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+{
+  "name": "SVG-edit",
+  "description": "A fast, web-based, Javascript-driven SVG editor that works in any modern browser",
+  "version": "2.6",
+  "app": {
+    "urls": [
+      "*://svg-edit.googlecode.com/svn/tags/stable/"
+    ],
+    "launch": {
+      "web_url": "http://svg-edit.googlecode.com/svn/tags/stable/editor/svg-editor.html"
+    }
+  },
+  "icons": {
+    "128": "icon_128.png"
+  },
+  "permissions": [
+    "unlimitedStorage",
+    "notifications"
+  ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/clipart/moon.svg	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="100" xmlns="http://www.w3.org/2000/svg" height="100" viewBox="0 0 205.5 255.87">
+ <g display="inline">
+  <title>Layer 1</title>
+  <path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/>
+  <path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/>
+  <path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/>
+  <path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/>
+  <path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/>
+  <path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/>
+  <path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/>
+ </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/clipart/star.svg	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100">
+ <path id="svg_1" stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/clipart/sun.svg	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg id="svg4562" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="330.42" width="309.18" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata id="metadata4567"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs4565"/><g id="g4569" fill-rule="nonzero" transform="matrix(1.25,0,0,-1.25,-2.8758105,798.03929)" fill="#f9a749"><path id="path4595" d="M160.13,603.66h0.09-0.09"/><g id="g5207" transform="matrix(2.30724,0,0,2.30724,-136.436,314.961)"><path id="path4735" d="M118.02,123.06c0.15,0,0.31-0.05,0.41,0.11,0.11-0.58,0.21-1.15,0.37-1.78l-0.16-0.1-0.21,0.52c-0.57-1.57,0.37-3.14,0.63-4.65,0.52-0.68,0.52-1.62,0.47-2.51-0.63,0.11-0.31-0.68-0.73-0.78,0.1-0.26,0.31-0.47,0.26-0.84-0.94-0.42-1.62,0.63-1.78,1.26-0.15,0.31-0.15,0.73-0.52,0.99-0.16-0.84-0.78-0.05-1.25-0.16-1.15,5.7-0.84,11.65-0.73,17.71,0.42,1.2,0,2.3,0.1,3.61,0.32-0.79,0-1.78,0.26-2.62,0.11,0.68,0.37,1.26,0.26,1.99l0.26-2.35h0.11v6.74c-0.11-6.06,2.14-11.34,2.25-17.14"/><path id="path4761" d="M115.93,131.06l-0.16,2.14,0.16-1.78v-0.36"/><path id="path4763" d="M131.08,114.13c-0.89-0.89-1.83-1.83-2.77-2.25-0.11,3.19,1.62,6.22,2.66,9.3,1.88,3.5,3.03,7.42,5.75,10.66l0.36,0.99c-2.14-6.16-3.6-12.64-6-18.7"/><path id="path4765" d="M102.5,114.76c0.21-0.11,0.31,0.15,0.47,0.26-0.05-1.36,0.73-1.31-0.1-2.51-0.37-0.26-0.74-0.42-1.26-0.37-3.864,3.56-5.222,8.73-6.633,13.01l1.097-2.61c-0.627,2.87-1.619,5.9-2.508,8.88,2.195-5.85,5.486-11.39,8.934-16.66"/><path id="path4767" d="M115.51,126.2l0.15-2.67-0.15,2.67"/><path id="path4769" d="M157.51,118.52c-5.59-4.18-12.07-8.83-15.78-15.41-2.09-0.58-3.86-1.94-6.27-1.78,0.58,0.26-0.26,0.84,0,1.25h-0.52c0.42,0.47,1.2,0.58,1.26,1.26-0.47,0.15-0.21,1.51-1.36,1.04,0.26,0.63,0.89,0.79,1.51,0.84,0.58,1.36,2.15,0.89,3.14,1.51,5.53,3.82,10.29,9.56,16.56,11.81,0.52-0.1,1.36,0.26,1.46-0.52"/><path id="path4771" d="M79.148,110.26l0.261,0.26c3.03-1.98,5.694-5.01,9.142-5.9,0.732,0.16,1.045,0.11,1.776,0.11,0.105-0.27,0-0.68,0.366-0.89,0.627,0.36,0.731-0.37,0.993-0.73-0.209-0.32-0.679,0.1-0.836-0.37,0.313-0.63,1.567-0.31,1.462-1.25-0.574-0.94-2.507-0.05-1.723-1.884l-0.366-1.515c-5.329,1.358-8.254,6.739-12.068,10.399l1.619-1.1c-0.104-0.05-0.156,0.05-0.209,0.11l-0.261-0.27c0.888-0.26,1.097-1.35,2.142-1.35-0.209,1.04-1.724,1.56-2.298,2.61,0.783-0.16,1.514-1.1,2.298-1.62-0.47,1.04-1.515,1.93-2.664,2.77l-2.612,3.13c1.045-1.04,1.828-1.88,2.978-2.51"/><path id="path4773" d="M116.55,111.88c5.38,0.58,10.03-1.62,14.16-4.28-6.11,1.57-12.69,4.07-18.96,0.78-1-0.15-2.09-0.62-2.51-1.62l0.16-0.42-0.89-0.36c0,0.16,0.05,0.31-0.11,0.36-0.42-0.41-1.36-0.1-1.77-0.73l0.1-0.1c-0.52-0.31-1.77-1.05-2.71-0.78-4.184-3.29-7.476-7.005-9.409-11.759,0.471,0,1.097,0.888,1.097,1.359,0.157,0.104,0.209,0.313,0.366,0.261l0.157-0.157c-0.314,0.731,0.731,0.94,0.888,1.515-0.157-0.575-1.202-1.672-0.627-2.508l-2.142-3.395c-0.679,0.261-0.522-0.575-0.784-0.836,0.418-1.829-1.097-4.232-1.097-6.53,0.052-1.672-0.992-2.56-0.261-4.023l0.104,0.104c0.105-0.156,0.418-1.358-0.208-0.992-0.157-0.314,0.261-0.314,0.208-0.366-0.208-0.418-0.104-1.045,0.262-1.358l0.156,0.104c0.314-0.679,0.889-1.828,0.471-2.612,0.731,0,0.679-1.097,0.992-1.672,0.418-2.298,1.568-4.597,3.292-6.478,0.261-0.783,1.201-1.306,1.619-2.037,0.836,0.261,1.676-1.306,2.406-0.732l-0.16,0.105c1.46-0.418,1.1-2.09,2.87-1.985,1.94-1.15,4.29-0.418,6.43-0.627,2.77-0.679,5.12,1.253,7.63,0.731,1.67,0.522,3.29,1.568,5.01,1.515,2.98,1.463,6.32,2.926,8.41,6.165,4.24,5.538,6.22,12.381,5.28,19.8-1.46,6.164-7.26,12.538-13.79,13.268-7.42,1.62-13.43-2.402-17.29-8.41-2.62-4.336-3.3-11.18-0.42-15.672,2.35-4.545,7.62-5.747,12.54-5.225,2.71,0.418,5.59,1.463,6.89,4.127,2.46,3.762,0.79,8.934,0,12.904-0.63,1.359-2.04,1.933-3.24,2.508-2.77-0.052-5.43-0.157-7.42-2.142,0.42-2.926-0.15-6.374,2.93-8.15,1.1-0.261,1.93-1.045,3.24-0.731,0.36-1.045-1.15-0.575-1.62-0.993-2.04,0.784-4.02,1.933-4.55,4.232l-0.62,6.53c0.78,3.448,4.75,3.291,7.52,3.866,3.19-0.47,5.85-2.09,7.78-4.754,0.58-1.881,1.52-3.761,1.15-5.903,0.84-2.09,0-4.336-0.26-6.635-1.15-2.978-2.92-6.008-5.9-7.889-4.02-0.783-8.2-1.567-12.17,0-5.12,1.358-9.35,6.478-10.03,11.65-1.41,8.464,3.13,15.986,9.92,20.427,6.2,3.96,14.76,3.11,20.69-1.463,6.63-5.224,10.55-12.747,9.67-21.471-0.32-7.732-5.23-14.576-12.07-18.285-3.19-0.888-6.53-2.873-9.62-2.665-2.66-0.157-5.01-0.783-7.94-0.365l-1.09-0.366,0.1-0.522c0.47,0.104,0.89,0.156,1.41,0.156-4.49-0.365-9.51,0.523-13.059,2.978-0.679,0.94-1.829,0.94-2.508,1.515-4.545,2.09-5.694,7.157-7.522,11.18l-0.105,1.254c0.209-0.627,0.47-1.254,0.731-1.881,0.575,1.359-0.522,2.299-0.522,3.762-1.724,4.231-0.418,9.874,0,13.792,0.105,0.94,0.94,2.194,0.522,2.612,0.262,1.253,0.68,2.351,1.254,3.5,1.149-0.209,0.731,1.097,1.149,1.672,1.359,1.515,1.725,3.447,3.501,5.017,0.94,0.21,0.992-0.58,1.724,0-0.523-0.68-0.784-0.21-1.463-0.52,0.313,0.1,0.47-0.68,0.836-0.53-0.105-0.15-0.523-0.15-0.366-0.47,0.314-0.15,0.627,0.26,0.888,0.47-0.052,0.32,0.261,0.63,0.523,1.05,0.731-0.05,1.515,0.94,1.619,1.36-0.313,0.41-0.47-0.32-0.783-0.27l0.417,0.37-0.522,0.16,0.732,0.73v-0.11c0.414-0.26,0.884,0,1.144,0.37l-0.52,0.37c2.98,1.09,4.81,4.85,8.15,5.27,2.25,1.41,5.07,1.94,7.94,1.99v-0.11"/><path id="path4775" d="M114.78,110.37c-0.53-0.16-0.94-0.68-1.62-0.47,0.47,0.31,1.09,0.31,1.62,0.47"/><path id="path4777" d="M112.01,110.26h0.52-0.52"/><path id="path4779" d="M101.25,103.73l-0.63-0.62,0.63,0.62"/><path id="path4781" d="M98.582,102.74l-0.105,0.26h0.366l-0.261-0.26"/><path id="path4783" d="M98.843,102.58l-0.627-0.47,0.627,0.47"/><path id="path4785" d="M96.231,100.96l-0.366-0.36,0.366,0.36"/><path id="path4787" d="M91.842,98.718l-0.156-0.627,0.156,0.627"/><path id="path4789" d="M163.41,97.725c0-0.156,0.06-0.209,0.16-0.261-6.43-2.09-12.33-5.485-19.33-6.269-0.36,0.261-0.94,0.105-1.25,0.522,0.21,0.575,0.42,1.15,0.99,1.62-0.36,0.784-2.14-0.052-1.52,1.097,1.68,0.261,3.14,0.94,4.55,1.672,5.01,0.522,10.19,0.313,15.05,1.619h1.35"/><path id="path4791" d="M70.893,91.456c4.441,0.105,8.202-0.731,12.643-0.261,0.313,1.097,1.828-0.104,1.776,0.993,1.202-0.418-0.261-0.941,0.366-1.724,0.731-0.47,1.724-0.679,2.037-1.411-0.104-0.575-1.358-0.731-0.522-1.358-2.873-0.209-6.74-0.105-9.665-0.157-3.552,0.418-7,1.045-10.135,2.403,1.097,0.157,2.403-0.261,3.5-0.104-3.813,0.679-7.261,2.403-10.762,3.866l10.762-2.247"/><path id="path4793" d="M94.35,93.703l-0.157-0.366,0.157,0.366"/><path id="path4795" d="M151.87,79.806c5.12-0.679,10.92,0.157,14.83-3.134-0.2-0.627,0.27-0.889,0.63-1.254l-1.67,0.627c-7.36,0.836-16.46-1.881-21.42,4.231,0.52,0.47,0.94,0.627,1.62,0.888,2.25,0.105,3.97-1.097,6.01-1.358"/><path id="path4797" d="M88.447,79.649h0.105v-0.47h-0.105v0.47z"/><path id="path4799" d="M85.835,76.672c0.47,0,0.835-0.575,1.097-0.784l0.156-0.627c-0.313,0.157-0.418-0.261-0.627-0.366-0.104-0.209,0.157-0.261,0.209-0.365,0.262,0.104,0.366,0.313,0.627,0.261,0.366-0.575,0.366-0.888,0.523-1.515-0.209,0-0.366-0.261-0.523-0.366,0.627-0.47-0.052-1.097,0.157-1.515-1.881-1.881-4.702-1.463-6.792-2.769-3.552-1.41-7.261-2.873-11.127-3.134l-3.761-0.732c1.149,0.471,2.507,0.784,3.5,1.359-2.038,0.157-4.127-0.888-6.008-0.627,1.776,0.784,3.03,1.933,4.754,2.873-0.105,0.209-0.366,0.105-0.523,0.157l0.157,0.104h-0.888l1.358,0.262-0.104,0.104c-0.052,0,0.679-0.052,0.888,0.261-0.105,0.888,2.403,0.314,1.097,0.993,0.314,0.313,0.732,0.261,1.15,0.261l-0.366-0.261c1.41,0,2.351,1.149,3.761,1.619,0.94,0.471,1.985,0.575,2.717,1.515l-0.105,0.157c1.568,0.366,3.03,2.351,4.911,2.508,0.627,1.045,2.194,0.052,3.344,0.365l0.418,0.262"/><path id="path4801" d="M91.215,74.634l0.105,0.157,0.261-0.418c-0.783-0.313-0.104-1.41-0.104-1.724-0.47,1.202-0.732,2.351-0.784,3.605,0.366-0.157-0.209-1.306,0.522-1.62"/><path id="path4803" d="M90.85,71.029c-0.157-0.104-0.157-0.261-0.157-0.418l-0.261,0.784,0.418-0.366"/><path id="path4805" d="M90.954,70.507l0.105-0.522-0.105,0.522"/><path id="path4807" d="M149.15,62.88c2.2-1.62,3.97-3.866,4.76-6.27-4.76,2.561-10.35,4.128-14.32,8.621,0.16,0.731,0.99,0.156,1.41,0.522l-0.26,0.261c3.4,1.15,5.59-2.142,8.41-3.134"/><path id="path4809" d="M94.35,60.738c-1.149-1.254,1.776-2.299-0.157-3.292-4.858-4.701-10.291-10.239-15.672-14.889l2.298,2.508c-0.783,0.209-1.41-0.836-2.037-1.149l-2.247-2.142c0.836,0.836,1.829,1.724,1.986,2.664-1.463-0.992-2.978-2.037-4.493-3.03,0.836,1.202,1.881,1.515,2.612,2.508-0.052,0.156-0.209,0.156-0.366,0.156,4.545,6.113,9.769,12.538,16.038,17.397-0.156,0.366,0.262,0.68,0.523,0.784,0.731,0,1.149-0.94,1.515-1.515"/><path id="path4811" d="M97.223,60.477l1.515-1.15c-1.149,0.261-2.142,0.784-3.03,1.672,0.627,0.052,0.732-0.888,1.515-0.522"/><path id="path4813" d="M125.54,57.864c-0.16-0.104-0.37-0.156-0.63-0.156,0.21,0.052,0.42,0.156,0.63,0.156"/><path id="path4815" d="M129.93,53.685c1.25,0.157,0.21-1.045,0.52-1.463l-0.37-0.784c1.15-4.336,1.88-9.037,1.73-13.791-3.4,4.858-4.39,10.866-6.9,16.195h0.16c0.26,0.261-0.05,0.574-0.26,0.731,1.25,0.941,3.5,1.463,5.01,0.523l0.11-1.411"/><path id="path4817" d="M110.49,51.7c-0.36-0.523,0.53-0.836,0.79-1.254-1.1-0.104-0.21-1.619-1.41-1.359-4.45-6.373-7.16-13.478-10.139-20.478-0.731-1.045-1.463-2.403-2.612-2.978l-0.261,0.366c3.134,9.037,5.802,18.336,10.032,26.957l-0.37,0.731,1.26,0.784c1.09-0.732,1.93-1.568,2.71-2.769"/></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/files/svgcanvas-js.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,426 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>SvgCanvas</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SvgCanvas"></a>SvgCanvas</h1><div class=CBody><p>The main SvgCanvas class that manages all SVG-related functions</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>container</td><td class=CDLDescription>The container HTML element that should hold the SVG root element</td></tr><tr><td class=CDLEntry>config</td><td class=CDLDescription>An object that contains configuration data</td></tr></table><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SvgCanvas" >SvgCanvas</a></td><td class=SDescription>The main SvgCanvas class that manages all SVG-related functions</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SvgCanvas.Utils.toXml" >Utils.<wbr>toXml</a></td><td class=SDescription>Converts characters in a string to XML-friendly entities.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SvgCanvas.Utils.fromXml" >Utils.<wbr>fromXml</a></td><td class=SDescription>Converts XML entities in a string to single characters. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SvgCanvas.Utils.encode64" >Utils.<wbr>encode64</a></td><td class=SDescription>Converts a string to base64</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SvgCanvas.Utils.decode64" >Utils.<wbr>decode64</a></td><td class=SDescription>Converts a string from base64</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SvgCanvas.Utils.convertToXMLReferences" >Utils.<wbr>convertToXMLReferences</a></td><td class=SDescription>Converts a string to use XML references</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SvgCanvas.rectsIntersect" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">rectsIntersect</a></td><td class=SDescription>Check if two rectangles (BBoxes objects) intersect each other</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SvgCanvas.snapToAngle" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">snapToAngle</a></td><td class=SDescription>Returns a 45 degree angle coordinate associated with the two given coordinates</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SvgCanvas.text2xml" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">text2xml</a></td><td class=SDescription>Cross-browser compatible method of converting a string to an XML tree found this function here: <a href="http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f" class=LURL target=_top>http://groups.google.com<wbr>/group<wbr>/jquery-dev<wbr>/browse_thread<wbr>/thread<wbr>/c6d11387c580a77f</a></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SvgCanvas.Unit_conversion_functions" >Unit conversion functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.convertToNum" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">convertToNum</a></td><td class=SDescription>Converts given values to numbers. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.setUnitAttr" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">setUnitAttr</a></td><td class=SDescription>Sets an element&rsquo;s attribute based on the unit in its current value.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.isValidUnit" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">isValidUnit</a></td><td class=SDescription>Check if an attribute&rsquo;s value is in a valid format</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SvgCanvas.Undo/Redo_history_management" >Undo/<wbr>Redo history management</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.ChangeElementCommand" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">ChangeElementCommand</a></td><td class=SDescription>History command to make a change to an element. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.ChangeElementCommand.apply" >ChangeElementCommand.<wbr>apply</a></td><td class=SDescription>Performs the stored change action</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.ChangeElementCommand.unapply" >ChangeElementCommand.<wbr>unapply</a></td><td class=SDescription>Reverses the stored change action</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.ChangeElementCommand.elements" >ChangeElementCommand.<wbr>elements</a></td><td class=SDescription>Returns array with element associated with this command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.InsertElementCommand" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">InsertElementCommand</a></td><td class=SDescription>History command for an element that was added to the DOM</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.InsertElementCommand.apply" >InsertElementCommand.<wbr>apply</a></td><td class=SDescription>Re-Inserts the new element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.InsertElementCommand.unapply" >InsertElementCommand.<wbr>unapply</a></td><td class=SDescription>Removes the element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.InsertElementCommand.elements" >InsertElementCommand.<wbr>elements</a></td><td class=SDescription>Returns array with element associated with this command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.RemoveElementCommand" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">RemoveElementCommand</a></td><td class=SDescription>History command for an element removed from the DOM</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.RemoveElementCommand.apply" >RemoveElementCommand.<wbr>apply</a></td><td class=SDescription>Re-removes the new element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.RemoveElementCommand.unapply" >RemoveElementCommand.<wbr>unapply</a></td><td class=SDescription>Re-adds the new element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.RemoveElementCommand.elements" >RemoveElementCommand.<wbr>elements</a></td><td class=SDescription>Returns array with element associated with this command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.MoveElementCommand" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">MoveElementCommand</a></td><td class=SDescription>History command for an element that had its DOM position changed</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.MoveElementCommand.unapply" >MoveElementCommand.<wbr>unapply</a></td><td class=SDescription>Re-positions the element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.MoveElementCommand.unapply" >MoveElementCommand.<wbr>unapply</a></td><td class=SDescription>Positions the element back to its original location</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.MoveElementCommand.elements" >MoveElementCommand.<wbr>elements</a></td><td class=SDescription>Returns array with element associated with this command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.BatchCommand" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">BatchCommand</a></td><td class=SDescription>History command that can contain/execute multiple other commands</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.BatchCommand.apply" >BatchCommand.<wbr>apply</a></td><td class=SDescription>Runs &ldquo;apply&rdquo; on all subcommands</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.BatchCommand.unapply" >BatchCommand.<wbr>unapply</a></td><td class=SDescription>Runs &ldquo;unapply&rdquo; on all subcommands</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.BatchCommand.elements" >BatchCommand.<wbr>elements</a></td><td class=SDescription>Iterate through all our subcommands and returns all the elements we are changing</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.BatchCommand.addSubCommand" >BatchCommand.<wbr>addSubCommand</a></td><td class=SDescription>Adds a given command to the history stack</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.BatchCommand.isEmpty" >BatchCommand.<wbr>isEmpty</a></td><td class=SDescription>Returns a boolean indicating whether or not the batch command is empty</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.resetUndoStack" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">resetUndoStack</a></td><td class=SDescription>Resets the undo stack, effectively clearing the undo/redo history</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.undoMgr.getUndoStackSize" >undoMgr.<wbr>getUndoStackSize</a></td><td class=SDescription>Integer with the current size of the undo history stack</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.undoMgr.getRedoStackSize" >undoMgr.<wbr>getRedoStackSize</a></td><td class=SDescription>Integer with the current size of the redo history stack</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.undoMgr.getNextUndoCommandText" >undoMgr.<wbr>getNextUndoCommandText</a></td><td class=SDescription>String associated with the next undo command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.undoMgr.getNextRedoCommandText" >undoMgr.<wbr>getNextRedoCommandText</a></td><td class=SDescription>String associated with the next redo command</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.undoMgr.undo" >undoMgr.undo</a></td><td class=SDescription>Performs an undo step</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.undoMgr.redo" >undoMgr.redo</a></td><td class=SDescription>Performs a redo step</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.addCommandToHistory" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">addCommandToHistory</a></td><td class=SDescription>Adds a command object to the undo history stack</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SvgCanvas.beginUndoableChange" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">beginUndoableChange</a></td><td class=SDescription>This function tells the canvas to remember the old values of the attrName attribute for each element sent in. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SvgCanvas.finishUndoableChange" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">finishUndoableChange</a></td><td class=SDescription>This function returns a BatchCommand object which summarizes the change since beginUndoableChange was called. </td></tr><tr class="SInterface"><td class=SEntry><a href="#Selector" >Selector</a></td><td class=SDescription>Private class for DOM element selection boxes</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Selector.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#Selector.Selector.reset" >Selector.<wbr>reset</a></td><td class=SDescription>Used to reset the id and element that the selector is attached to</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#Selector.Selector.showGrips" >Selector.<wbr>showGrips</a></td><td class=SDescription>Show the resize grips of this selector</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#Selector.Selector.updateGripCursors" >Selector.<wbr>updateGripCursors</a></td><td class=SDescription>Updates cursors for corner grips on rotation so arrows point the right way</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#Selector.Selector.resize" >Selector.<wbr>resize</a></td><td class=SDescription>Updates the selector to match the element&rsquo;s size</td></tr><tr class="SInterface"><td class=SEntry><a href="#SelectorManager" >SelectorManager</a></td><td class=SDescription>Public class to manage all selector objects (selection boxes)</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.SelectorManager.initGroup" >SelectorManager.<wbr>initGroup</a></td><td class=SDescription>Resets the parent selector group element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.SelectorManager.requestSelector" >SelectorManager.<wbr>requestSelector</a></td><td class=SDescription>Returns the selector based on the given element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.SelectorManager.releaseSelector" >SelectorManager.<wbr>releaseSelector</a></td><td class=SDescription>Removes the selector of the given element (hides selection box)</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.SelectorManager.getRubberBandBox" >SelectorManager.<wbr>getRubberBandBox</a></td><td class=SDescription>Returns the rubberBandBox DOM element. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Helper_functions" >Helper functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.walkTree" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">walkTree</a></td><td class=SDescription>Walks the tree and executes the callback on each element in a top-down fashion</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.walkTreePost" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">walkTreePost</a></td><td class=SDescription>Walks the tree and executes the callback on each element in a depth-first fashion</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.assignAttributes" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">assignAttributes</a></td><td class=SDescription>Assigns multiple attributes to an element.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.cleanupElement" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">cleanupElement</a></td><td class=SDescription>Remove unneeded (default) attributes, makes resulting SVG smaller</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.addSvgElementFromJson" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">addSvgElementFromJson</a></td><td class=SDescription>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.addExtension" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">addExtension</a></td><td class=SDescription>Add an extension to the editor</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.shortFloat" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">shortFloat</a></td><td class=SDescription>Rounds a given value to a float with number of digits defined in save_options</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getStrokedBBox" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">getStrokedBBox</a></td><td class=SDescription>Get the bounding box for one or more stroked and/or transformed elements</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getVisibleElements" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">getVisibleElements</a></td><td class=SDescription>Get all elements that have a BBox (excludes &lt;defs&gt;, &lt;title&gt;, etc). </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.copyElem" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">copyElem</a></td><td class=SDescription>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getElem" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">getElem</a></td><td class=SDescription>Get a DOM element by ID within the SVG root element.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getId" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">getId</a></td><td class=SDescription>Returns the last created DOM element ID string</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getNextId" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">getNextId</a></td><td class=SDescription>Creates and returns a unique ID string for a DOM element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.bind" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">bind</a></td><td class=SDescription>Attaches a callback function to an event</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setIdPrefix" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">setIdPrefix</a></td><td class=SDescription>Changes the ID prefix to the given value</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.sanitizeSvg" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">sanitizeSvg</a></td><td class=SDescription>Sanitizes the input node and its children It only keeps what is allowed from our whitelist defined above</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getUrlFromAttr" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">getUrlFromAttr</a></td><td class=SDescription>Extracts the URL from the url(...)</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getBBox" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">getBBox</a></td><td class=SDescription>Get the given/selected element&rsquo;s bounding box object, convert it to be more usable when necessary</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.ffClone" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">ffClone</a></td><td class=SDescription>Hack for Firefox bugs where text element features aren&rsquo;t updated. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getPathBBox" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">getPathBBox</a></td><td class=SDescription>Get correct BBox for a path in Webkit Converted from code found here: <a href="http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html" class=LURL target=_top>http://blog.hackers-cafe.net<wbr>/2009<wbr>/06<wbr>/how-to-calculate-bezier-curves-bounding.html</a></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Element_Transforms" >Element Transforms</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getRotationAngle" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">getRotationAngle</a></td><td class=SDescription>Get the rotation angle of the given/selected DOM element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setRotationAngle" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">setRotationAngle</a></td><td class=SDescription>Removes any old rotations if present, prepends a new rotation at the transformed center</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getTransformList" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">getTransformList</a></td><td class=SDescription>Returns an object that behaves like a SVGTransformList for the given DOM element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.recalculateAllSelectedDimensions" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">recalculateAllSelectedDimensions</a></td><td class=SDescription>Runs recalculateDimensions on the selected elements, adding the changes to a single batch command</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.remapElement" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">remapElement</a></td><td class=SDescription>Applies coordinate changes to an element based on the given matrix</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.recalculateDimensions" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')">recalculateDimensions</a></td><td class=SDescription>Decides the course of action based on the element&rsquo;s transform list</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.transformPoint" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')">transformPoint</a></td><td class=SDescription>A (hopefully) quicker function to transform a point by a matrix (this function avoids any DOM calls and just does the math)</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.isIdentity" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')">isIdentity</a></td><td class=SDescription>Helper function to check if the matrix performs no actual transform (i.e. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.matrixMultiply" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')">matrixMultiply</a></td><td class=SDescription>This function tries to return a SVGMatrix that is the multiplication m1*m2. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.transformListToTransform" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')">transformListToTransform</a></td><td class=SDescription>This returns a single matrix Transform for a given Transform List (this is the equivalent of SVGTransformList.consolidate() but unlike that method, this one does not modify the actual SVGTransformList) This function is very liberal with its min,max arguments</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.hasMatrixTransform" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')">hasMatrixTransform</a></td><td class=SDescription>See if the given transformlist includes a non-indentity matrix transform</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getMatrix" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')">getMatrix</a></td><td class=SDescription>Get the matrix object for a given element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.transformBox" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')">transformBox</a></td><td class=SDescription>Transforms a rectangle based on the given matrix</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Selection" >Selection</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.clearSelection" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')">clearSelection</a></td><td class=SDescription>Clears the selection. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.addToSelection" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')">addToSelection</a></td><td class=SDescription>Adds a list of elements to the selection. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.removeFromSelection" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')">removeFromSelection</a></td><td class=SDescription>Removes elements from the selection.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.selectAllInCurrentLayer" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')">selectAllInCurrentLayer</a></td><td class=SDescription>Clears the selection, then adds all elements in the current layer to the selection. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.smoothControlPoints" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')">smoothControlPoints</a></td><td class=SDescription>Takes three points and creates a smoother line based on them</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getMouseTarget" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')">getMouseTarget</a></td><td class=SDescription>Gets the desired element from a mouse event</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.preventClickDefault" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')">preventClickDefault</a></td><td class=SDescription>Prevents default browser click behaviour on the given element</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Text_edit_functions" >Text edit functions</a></td><td class=SDescription>Functions relating to editing text elements</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Path_edit_functions" >Path edit functions</a></td><td class=SDescription>Functions relating to editing path elements</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Serialization" >Serialization</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.removeUnusedDefElems" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')">removeUnusedDefElems</a></td><td class=SDescription>Looks at DOM elements inside the &lt;defs&gt; to see if they are referred to, removes them from the DOM if they are not.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.svgCanvasToString" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')">svgCanvasToString</a></td><td class=SDescription>Main function to set up the SVG content for output</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.svgToString" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')">svgToString</a></td><td class=SDescription>Sub function ran on each SVG element to convert it to a string as desired</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.embedImage" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')">embedImage</a></td><td class=SDescription>Converts a given image file to a data URL when possible, then runs a given callback</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.save" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')">save</a></td><td class=SDescription>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.rasterExport" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')">rasterExport</a></td><td class=SDescription>Generates a PNG Data URL based on the current image, then calls &ldquo;exported&rdquo; with an object including the string and any issues found</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getSvgString" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')">getSvgString</a></td><td class=SDescription>Returns the current drawing as raw SVG XML text.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setSvgString" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')">setSvgString</a></td><td class=SDescription>This function sets the current drawing as the input SVG XML.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.importSvgString" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')">importSvgString</a></td><td class=SDescription>This function imports the input SVG XML into the current layer in the drawing</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Layers" >Layers</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.identifyLayers" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')">identifyLayers</a></td><td class=SDescription>Updates layer system</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.createLayer" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')">createLayer</a></td><td class=SDescription>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.deleteCurrentLayer" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')">deleteCurrentLayer</a></td><td class=SDescription>Deletes the current layer from the drawing and then clears the selection. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getNumLayers" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')">getNumLayers</a></td><td class=SDescription>Returns the number of layers in the current drawing.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getLayer" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')">getLayer</a></td><td class=SDescription>Returns the name of the ith layer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getCurrentLayer" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')">getCurrentLayer</a></td><td class=SDescription>Returns the name of the currently selected layer. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setCurrentLayer" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')">setCurrentLayer</a></td><td class=SDescription>Sets the current layer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.renameCurrentLayer" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')">renameCurrentLayer</a></td><td class=SDescription>Renames the current layer. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setCurrentLayerPosition" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')">setCurrentLayerPosition</a></td><td class=SDescription>Changes the position of the current layer to the new value. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getLayerVisibility" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')">getLayerVisibility</a></td><td class=SDescription>Returns whether the layer is visible. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setLayerVisibility" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')">setLayerVisibility</a></td><td class=SDescription>Sets the visibility of the layer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.moveSelectedToLayer" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')">moveSelectedToLayer</a></td><td class=SDescription>Moves the selected elements to layername. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getLayerOpacity" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')">getLayerOpacity</a></td><td class=SDescription>Returns the opacity of the given layer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setLayerOpacity" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')">setLayerOpacity</a></td><td class=SDescription>Sets the opacity of the given layer. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Document_functions" >Document functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.clear" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')">clear</a></td><td class=SDescription>Clears the current document. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.linkControlPoints" >linkControlPoints</a></td><td class=SDescription>Alias function</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getContentElem" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')">getContentElem</a></td><td class=SDescription>Returns the content DOM element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getRootElem" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')">getRootElem</a></td><td class=SDescription>Returns the root DOM element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getSelectedElems" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')">getSelectedElems</a></td><td class=SDescription>Returns the array with selected DOM elements</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getResolution" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')">getResolution</a></td><td class=SDescription>Returns the current dimensions and zoom level in an object</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getZoom" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')">getZoom</a></td><td class=SDescription>Returns the current zoom level</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getVersion" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')">getVersion</a></td><td class=SDescription>Returns a string which describes the revision number of SvgCanvas.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setUiStrings" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')">setUiStrings</a></td><td class=SDescription>Update interface strings with given values</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setConfig" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')">setConfig</a></td><td class=SDescription>Update configuration options with given values</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getDocumentTitle" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')">getDocumentTitle</a></td><td class=SDescription>Returns the current document title or an empty string if not found</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setDocumentTitle" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')">setDocumentTitle</a></td><td class=SDescription>Adds/updates a title element for the document with the given name. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getEditorNS" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')">getEditorNS</a></td><td class=SDescription>Returns the editor&rsquo;s namespace URL, optionally adds it to root element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setResolution" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')">setResolution</a></td><td class=SDescription>Changes the document&rsquo;s dimensions to the given size</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getOffset" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')">getOffset</a></td><td class=SDescription>Returns an object with x, y values indicating the svgcontent element&rsquo;s position in the editor&rsquo;s canvas.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setBBoxZoom" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')">setBBoxZoom</a></td><td class=SDescription>Sets the zoom level on the canvas-side based on the given value</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setZoom" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')">setZoom</a></td><td class=SDescription>Sets the zoom to the given level</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getMode" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')">getMode</a></td><td class=SDescription>Returns the current editor mode string</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setMode" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')">setMode</a></td><td class=SDescription>Sets the editor&rsquo;s mode to the given string</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Element_Styling" >Element Styling</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getColor" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')">getColor</a></td><td class=SDescription>Returns the current fill/stroke option</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setColor" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')">setColor</a></td><td class=SDescription>Change the current stroke/fill color/gradient value</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.findDefs" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')">findDefs</a></td><td class=SDescription>Return the document&rsquo;s &lt;defs&gt; element, create it first if necessary</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setGradient" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')">setGradient</a></td><td class=SDescription>Apply the current gradient to selected element&rsquo;s fill or stroke</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.findDuplicateGradient" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')">findDuplicateGradient</a></td><td class=SDescription>Check if exact gradient already exists</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setPaint" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')">setPaint</a></td><td class=SDescription>Set a color/gradient to a fill/stroke</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getStrokeWidth" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')">getStrokeWidth</a></td><td class=SDescription>Returns the current stroke-width value</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setStrokeWidth" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')">setStrokeWidth</a></td><td class=SDescription>Sets the stroke width for the current selected elements When attempting to set a line&rsquo;s width to 0, this changes it to 1 instead</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setStrokeAttr" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')">setStrokeAttr</a></td><td class=SDescription>Set the given stroke-related attribute the given value for selected elements</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getOpacity" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')">getOpacity</a></td><td class=SDescription>Returns the current opacity</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setOpacity" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')">setOpacity</a></td><td class=SDescription>Sets the given opacity to the current selected elements</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.getOpacity" >getOpacity</a></td><td class=SDescription>Returns the current fill opacity</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getStrokeOpacity" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')">getStrokeOpacity</a></td><td class=SDescription>Returns the current stroke opacity</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setPaintOpacity" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')">setPaintOpacity</a></td><td class=SDescription>Sets the current fill/stroke opacity</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getBlur" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')">getBlur</a></td><td class=SDescription>Gets the stdDeviation blur value of the given element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setBlurNoUndo" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')">setBlurNoUndo</a></td><td class=SDescription>Sets the stdDeviation blur value on the selected element without being undoable</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setBlurOffsets" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')">setBlurOffsets</a></td><td class=SDescription>Sets the x, y, with, height values of the filter element in order to make the blur not be clipped. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setBlur" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')">setBlur</a></td><td class=SDescription>Adds/updates the blur filter to the selected element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getBold" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')">getBold</a></td><td class=SDescription>Check whether selected element is bold or not</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setBold" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')">setBold</a></td><td class=SDescription>Make the selected element bold or normal</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getItalic" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')">getItalic</a></td><td class=SDescription>Check whether selected element is italic or not</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setItalic" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')">setItalic</a></td><td class=SDescription>Make the selected element italic or normal</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getFontFamily" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')">getFontFamily</a></td><td class=SDescription>Returns the current font family</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setFontFamily" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')">setFontFamily</a></td><td class=SDescription>Set the new font family</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getFontSize" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')">getFontSize</a></td><td class=SDescription>Returns the current font size</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setFontSize" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')">setFontSize</a></td><td class=SDescription>Applies the given font size to the selected element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.getText" id=link122 onMouseOver="ShowTip(event, 'tt122', 'link122')" onMouseOut="HideTip('tt122')">getText</a></td><td class=SDescription>Returns the current text (textContent) of the selected element</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setTextContent" id=link123 onMouseOver="ShowTip(event, 'tt123', 'link123')" onMouseOut="HideTip('tt123')">setTextContent</a></td><td class=SDescription>Updates the text element with the given string</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setImageURL" id=link124 onMouseOver="ShowTip(event, 'tt124', 'link124')" onMouseOut="HideTip('tt124')">setImageURL</a></td><td class=SDescription>Sets the new image URL for the selected image element. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setRectRadius" id=link125 onMouseOver="ShowTip(event, 'tt125', 'link125')" onMouseOut="HideTip('tt125')">setRectRadius</a></td><td class=SDescription>Sets the rx &amp; ry values to the selected rect element to change its corner radius</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Element_manipulation" >Element manipulation</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.setSegType" id=link126 onMouseOver="ShowTip(event, 'tt126', 'link126')" onMouseOut="HideTip('tt126')">setSegType</a></td><td class=SDescription>Sets the new segment type to the selected segment(s).</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.convertToPath" id=link127 onMouseOver="ShowTip(event, 'tt127', 'link127')" onMouseOut="HideTip('tt127')">convertToPath</a></td><td class=SDescription>Convert selected element to a path, or get the BBox of an element-as-path</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.changeSelectedAttributeNoUndo" id=link128 onMouseOver="ShowTip(event, 'tt128', 'link128')" onMouseOut="HideTip('tt128')">changeSelectedAttributeNoUndo</a></td><td class=SDescription>This function makes the changes to the elements. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.changeSelectedAttribute" id=link129 onMouseOver="ShowTip(event, 'tt129', 'link129')" onMouseOut="HideTip('tt129')">changeSelectedAttribute</a></td><td class=SDescription>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.deleteSelectedElements" id=link130 onMouseOver="ShowTip(event, 'tt130', 'link130')" onMouseOut="HideTip('tt130')">deleteSelectedElements</a></td><td class=SDescription>Removes all selected elements from the DOM and adds the change to the history stack</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.groupSelectedElements" id=link131 onMouseOver="ShowTip(event, 'tt131', 'link131')" onMouseOut="HideTip('tt131')">groupSelectedElements</a></td><td class=SDescription>Wraps all the selected elements in a group (g) element</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.ungroupSelectedElement" id=link132 onMouseOver="ShowTip(event, 'tt132', 'link132')" onMouseOut="HideTip('tt132')">ungroupSelectedElement</a></td><td class=SDescription>Unwraps all the elements in a selected group (g) element. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.moveToTopSelectedElement" id=link133 onMouseOver="ShowTip(event, 'tt133', 'link133')" onMouseOut="HideTip('tt133')">moveToTopSelectedElement</a></td><td class=SDescription>Repositions the selected element to the bottom in the DOM to appear on top of other elements</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.moveToBottomSelectedElement" id=link134 onMouseOver="ShowTip(event, 'tt134', 'link134')" onMouseOut="HideTip('tt134')">moveToBottomSelectedElement</a></td><td class=SDescription>Repositions the selected element to the top in the DOM to appear under other elements</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.moveSelectedElements" id=link135 onMouseOver="ShowTip(event, 'tt135', 'link135')" onMouseOut="HideTip('tt135')">moveSelectedElements</a></td><td class=SDescription>Moves selected elements on the X/Y axis</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.cloneSelectedElements" id=link136 onMouseOver="ShowTip(event, 'tt136', 'link136')" onMouseOut="HideTip('tt136')">cloneSelectedElements</a></td><td class=SDescription>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.alignSelectedElements" id=link137 onMouseOver="ShowTip(event, 'tt137', 'link137')" onMouseOut="HideTip('tt137')">alignSelectedElements</a></td><td class=SDescription>Aligns selected elements</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#SelectorManager.Additional_editor_tools" >Additional editor tools</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.updateCanvas" id=link138 onMouseOver="ShowTip(event, 'tt138', 'link138')" onMouseOut="HideTip('tt138')">updateCanvas</a></td><td class=SDescription>Updates the editor canvas width/height/position after a zoom has occurred</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#SelectorManager.setBackground" id=link139 onMouseOver="ShowTip(event, 'tt139', 'link139')" onMouseOut="HideTip('tt139')">setBackground</a></td><td class=SDescription>Set the background of the editor (NOT the actual document)</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#SelectorManager.cycleElement" id=link140 onMouseOver="ShowTip(event, 'tt140', 'link140')" onMouseOut="HideTip('tt140')">cycleElement</a></td><td class=SDescription>Select the next/previous element within the current layer</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Utils.toXml"></a>Utils.<wbr>toXml</h3><div class=CBody><p>Converts characters in a string to XML-friendly entities.</p><p>Example: &ldquo;&amp;&rdquo; becomes &ldquo;&amp;amp;&rdquo;</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>The string to be converted</td></tr></table><h4 class=CHeading>Returns</h4><p>The converted string</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Utils.fromXml"></a>Utils.<wbr>fromXml</h3><div class=CBody><p>Converts XML entities in a string to single characters.&nbsp; Example: &ldquo;&amp;amp;&rdquo; becomes &ldquo;&amp;&rdquo;</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>The string to be converted</td></tr></table><h4 class=CHeading>Returns</h4><p>The converted string</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Utils.encode64"></a>Utils.<wbr>encode64</h3><div class=CBody><p>Converts a string to base64</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Utils.decode64"></a>Utils.<wbr>decode64</h3><div class=CBody><p>Converts a string from base64</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Utils.convertToXMLReferences"></a>Utils.<wbr>convertToXMLReferences</h3><div class=CBody><p>Converts a string to use XML references</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.rectsIntersect"></a>rectsIntersect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;rectsIntersect&quot;: function(</td><td class=PParameter nowrap>r1,</td></tr><tr><td></td><td class=PParameter nowrap>r2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check if two rectangles (BBoxes objects) intersect each other</p><h4 class=CHeading>Paramaters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>r1</td><td class=CDLDescription>The first BBox-like object</td></tr><tr><td class=CDLEntry>r2</td><td class=CDLDescription>The second BBox-like object</td></tr></table><h4 class=CHeading>Returns</h4><p>Boolean that&rsquo;s true if rectangles intersect</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.snapToAngle"></a>snapToAngle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;snapToAngle&quot;: function(</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PParameter nowrap>y2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a 45 degree angle coordinate associated with the two given coordinates</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x1</td><td class=CDLDescription>First coordinate&rsquo;s x value</td></tr><tr><td class=CDLEntry>x2</td><td class=CDLDescription>Second coordinate&rsquo;s x value</td></tr><tr><td class=CDLEntry>y1</td><td class=CDLDescription>First coordinate&rsquo;s y value</td></tr><tr><td class=CDLEntry>y2</td><td class=CDLDescription>Second coordinate&rsquo;s y value</td></tr></table><h4 class=CHeading>Returns</h4><p>Object with the following values: x - The angle-snapped x value y - The angle-snapped y value snapangle - The angle at which to snap</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.text2xml"></a>text2xml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;text2xml&quot;: function(</td><td class=PParameter nowrap>sXML</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cross-browser compatible method of converting a string to an XML tree found this function here: <a href="http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f" class=LURL target=_top>http://groups.google.com<wbr>/group<wbr>/jquery-dev<wbr>/browse_thread<wbr>/thread<wbr>/c6d11387c580a77f</a></p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Unit_conversion_functions"></a>Unit conversion functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.convertToNum"></a>convertToNum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>convertToNum = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts given values to numbers.&nbsp; Attributes must be supplied in case a percentage is given</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the name of the attribute associated with the value</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the attribute value to convert</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.setUnitAttr"></a>setUnitAttr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUnitAttr = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets an element&rsquo;s attribute based on the unit in its current value.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to be changed</td></tr><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the name of the attribute associated with the value</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the attribute value to convert</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.isValidUnit"></a>isValidUnit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.isValidUnit = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check if an attribute&rsquo;s value is in a valid format</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the name of the attribute associated with the value</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the attribute value to check</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.Undo/Redo_history_management"></a>Undo/<wbr>Redo history management</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.ChangeElementCommand"></a>ChangeElementCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ChangeElementCommand = this.undoCmd.changeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>History command to make a change to an element.&nbsp; Usually an attribute change, but can also be textcontent.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The DOM element that was changed</td></tr><tr><td class=CDLEntry>attrs</td><td class=CDLDescription>An object with the attributes to be changed and the values they had <b>before</b> the change</td></tr><tr><td class=CDLEntry>text</td><td class=CDLDescription>An optional string visible to user related to this change</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.ChangeElementCommand.apply"></a>ChangeElementCommand.<wbr>apply</h3><div class=CBody><p>Performs the stored change action</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.ChangeElementCommand.unapply"></a>ChangeElementCommand.<wbr>unapply</h3><div class=CBody><p>Reverses the stored change action</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.ChangeElementCommand.elements"></a>ChangeElementCommand.<wbr>elements</h3><div class=CBody><p>Returns array with element associated with this command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.InsertElementCommand"></a>InsertElementCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var InsertElementCommand = this.undoCmd.insertElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>History command for an element that was added to the DOM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The newly added DOM element</td></tr><tr><td class=CDLEntry>text</td><td class=CDLDescription>An optional string visible to user related to this change</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.InsertElementCommand.apply"></a>InsertElementCommand.<wbr>apply</h3><div class=CBody><p>Re-Inserts the new element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.InsertElementCommand.unapply"></a>InsertElementCommand.<wbr>unapply</h3><div class=CBody><p>Removes the element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.InsertElementCommand.elements"></a>InsertElementCommand.<wbr>elements</h3><div class=CBody><p>Returns array with element associated with this command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.RemoveElementCommand"></a>RemoveElementCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var RemoveElementCommand = this.undoCmd.removeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>History command for an element removed from the DOM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The removed DOM element</td></tr><tr><td class=CDLEntry>parent</td><td class=CDLDescription>The DOM element&rsquo;s parent</td></tr><tr><td class=CDLEntry>text</td><td class=CDLDescription>An optional string visible to user related to this change</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.RemoveElementCommand.apply"></a>RemoveElementCommand.<wbr>apply</h3><div class=CBody><p>Re-removes the new element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.RemoveElementCommand.unapply"></a>RemoveElementCommand.<wbr>unapply</h3><div class=CBody><p>Re-adds the new element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.RemoveElementCommand.elements"></a>RemoveElementCommand.<wbr>elements</h3><div class=CBody><p>Returns array with element associated with this command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.MoveElementCommand"></a>MoveElementCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var MoveElementCommand = this.undoCmd.moveElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>oldNextSibling,</td></tr><tr><td></td><td class=PParameter nowrap>oldParent,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>History command for an element that had its DOM position changed</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The DOM element that was moved</td></tr><tr><td class=CDLEntry>oldNextSibling</td><td class=CDLDescription>The element&rsquo;s next sibling before it was moved</td></tr><tr><td class=CDLEntry>oldParent</td><td class=CDLDescription>The element&rsquo;s parent before it was moved</td></tr><tr><td class=CDLEntry>text</td><td class=CDLDescription>An optional string visible to user related to this change</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.MoveElementCommand.unapply"></a>MoveElementCommand.<wbr>unapply</h3><div class=CBody><p>Re-positions the element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.MoveElementCommand.unapply"></a>MoveElementCommand.<wbr>unapply</h3><div class=CBody><p>Positions the element back to its original location</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.MoveElementCommand.elements"></a>MoveElementCommand.<wbr>elements</h3><div class=CBody><p>Returns array with element associated with this command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand"></a>BatchCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var BatchCommand = this.undoCmd.batch = function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>History command that can contain/execute multiple other commands</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>text</td><td class=CDLDescription>An optional string visible to user related to this change</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand.apply"></a>BatchCommand.<wbr>apply</h3><div class=CBody><p>Runs &ldquo;apply&rdquo; on all subcommands</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand.unapply"></a>BatchCommand.<wbr>unapply</h3><div class=CBody><p>Runs &ldquo;unapply&rdquo; on all subcommands</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand.elements"></a>BatchCommand.<wbr>elements</h3><div class=CBody><p>Iterate through all our subcommands and returns all the elements we are changing</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand.addSubCommand"></a>BatchCommand.<wbr>addSubCommand</h3><div class=CBody><p>Adds a given command to the history stack</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cmd</td><td class=CDLDescription>The undo command object to add</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.BatchCommand.isEmpty"></a>BatchCommand.<wbr>isEmpty</h3><div class=CBody><p>Returns a boolean indicating whether or not the batch command is empty</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.resetUndoStack"></a>resetUndoStack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetUndoStack = function()</td></tr></table></blockquote><p>Resets the undo stack, effectively clearing the undo/redo history</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.getUndoStackSize"></a>undoMgr.<wbr>getUndoStackSize</h3><div class=CBody><h4 class=CHeading>Returns</h4><p>Integer with the current size of the undo history stack</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.getRedoStackSize"></a>undoMgr.<wbr>getRedoStackSize</h3><div class=CBody><h4 class=CHeading>Returns</h4><p>Integer with the current size of the redo history stack</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.getNextUndoCommandText"></a>undoMgr.<wbr>getNextUndoCommandText</h3><div class=CBody><h4 class=CHeading>Returns</h4><p>String associated with the next undo command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.getNextRedoCommandText"></a>undoMgr.<wbr>getNextRedoCommandText</h3><div class=CBody><h4 class=CHeading>Returns</h4><p>String associated with the next redo command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.undo"></a>undoMgr.undo</h3><div class=CBody><p>Performs an undo step</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.undoMgr.redo"></a>undoMgr.redo</h3><div class=CBody><p>Performs a redo step</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.addCommandToHistory"></a>addCommandToHistory</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCommandToHistory = c.undoCmd.add = function(</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a command object to the undo history stack</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cmd</td><td class=CDLDescription>The command object to add</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.beginUndoableChange"></a>beginUndoableChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.beginUndoableChange = function(</td><td class=PParameter nowrap>attrName,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function tells the canvas to remember the old values of the attrName attribute for each element sent in.&nbsp;  The elements and values are stored on a stack, so the next call to finishUndoableChange() will pop the elements and old values off the stack, gets the current values from the DOM and uses all of these to construct the undo-able command.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attrName</td><td class=CDLDescription>The name of the attribute being changed</td></tr><tr><td class=CDLEntry>elems</td><td class=CDLDescription>Array of DOM elements being changed</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SvgCanvas.finishUndoableChange"></a>finishUndoableChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>c.finishUndoableChange = function()</td></tr></table></blockquote><p>This function returns a BatchCommand object which summarizes the change since beginUndoableChange was called.&nbsp;  The command can then be added to the command history</p><h4 class=CHeading>Returns</h4><p>Batch command object with resulting changes</p></div></div></div>
+
+<div class="CInterface"><div class=CTopic><h2 class=CTitle><a name="Selector"></a>Selector</h2><div class=CBody><p>Private class for DOM element selection boxes</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>integer to internally indentify the selector</td></tr><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element associated with this selector</td></tr></table><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Selector.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#Selector.Selector.reset" >Selector.<wbr>reset</a></td><td class=SDescription>Used to reset the id and element that the selector is attached to</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#Selector.Selector.showGrips" >Selector.<wbr>showGrips</a></td><td class=SDescription>Show the resize grips of this selector</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#Selector.Selector.updateGripCursors" >Selector.<wbr>updateGripCursors</a></td><td class=SDescription>Updates cursors for corner grips on rotation so arrows point the right way</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#Selector.Selector.resize" >Selector.<wbr>resize</a></td><td class=SDescription>Updates the selector to match the element&rsquo;s size</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Selector.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Selector.Selector.reset"></a>Selector.<wbr>reset</h3><div class=CBody><p>Used to reset the id and element that the selector is attached to</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>e</td><td class=CDLDescription>DOM element associated with this selector</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Selector.Selector.showGrips"></a>Selector.<wbr>showGrips</h3><div class=CBody><p>Show the resize grips of this selector</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>show</td><td class=CDLDescription>boolean indicating whether grips should be shown or not</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Selector.Selector.updateGripCursors"></a>Selector.<wbr>updateGripCursors</h3><div class=CBody><p>Updates cursors for corner grips on rotation so arrows point the right way</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>angle</td><td class=CDLDescription>Float indicating current rotation angle in degrees</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Selector.Selector.resize"></a>Selector.<wbr>resize</h3><div class=CBody><p>Updates the selector to match the element&rsquo;s size</p></div></div></div>
+
+<div class="CInterface"><div class=CTopic><h2 class=CTitle><a name="SelectorManager"></a>SelectorManager</h2><div class=CBody><p>Public class to manage all selector objects (selection boxes)</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SFunction"><td class=SEntry><a href="#SelectorManager.SelectorManager.initGroup" >SelectorManager.<wbr>initGroup</a></td><td class=SDescription>Resets the parent selector group element</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#SelectorManager.SelectorManager.requestSelector" >SelectorManager.<wbr>requestSelector</a></td><td class=SDescription>Returns the selector based on the given element</td></tr><tr class="SFunction"><td class=SEntry><a href="#SelectorManager.SelectorManager.releaseSelector" >SelectorManager.<wbr>releaseSelector</a></td><td class=SDescription>Removes the selector of the given element (hides selection box)</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#SelectorManager.SelectorManager.getRubberBandBox" >SelectorManager.<wbr>getRubberBandBox</a></td><td class=SDescription>Returns the rubberBandBox DOM element. </td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Helper_functions" >Helper functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.walkTree" id=link141 onMouseOver="ShowTip(event, 'tt16', 'link141')" onMouseOut="HideTip('tt16')">walkTree</a></td><td class=SDescription>Walks the tree and executes the callback on each element in a top-down fashion</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.walkTreePost" id=link142 onMouseOver="ShowTip(event, 'tt17', 'link142')" onMouseOut="HideTip('tt17')">walkTreePost</a></td><td class=SDescription>Walks the tree and executes the callback on each element in a depth-first fashion</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.assignAttributes" id=link143 onMouseOver="ShowTip(event, 'tt18', 'link143')" onMouseOut="HideTip('tt18')">assignAttributes</a></td><td class=SDescription>Assigns multiple attributes to an element.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.cleanupElement" id=link144 onMouseOver="ShowTip(event, 'tt19', 'link144')" onMouseOut="HideTip('tt19')">cleanupElement</a></td><td class=SDescription>Remove unneeded (default) attributes, makes resulting SVG smaller</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.addSvgElementFromJson" id=link145 onMouseOver="ShowTip(event, 'tt20', 'link145')" onMouseOut="HideTip('tt20')">addSvgElementFromJson</a></td><td class=SDescription>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.addExtension" id=link146 onMouseOver="ShowTip(event, 'tt21', 'link146')" onMouseOut="HideTip('tt21')">addExtension</a></td><td class=SDescription>Add an extension to the editor</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.shortFloat" id=link147 onMouseOver="ShowTip(event, 'tt22', 'link147')" onMouseOut="HideTip('tt22')">shortFloat</a></td><td class=SDescription>Rounds a given value to a float with number of digits defined in save_options</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getStrokedBBox" id=link148 onMouseOver="ShowTip(event, 'tt23', 'link148')" onMouseOut="HideTip('tt23')">getStrokedBBox</a></td><td class=SDescription>Get the bounding box for one or more stroked and/or transformed elements</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getVisibleElements" id=link149 onMouseOver="ShowTip(event, 'tt24', 'link149')" onMouseOut="HideTip('tt24')">getVisibleElements</a></td><td class=SDescription>Get all elements that have a BBox (excludes &lt;defs&gt;, &lt;title&gt;, etc). </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.copyElem" id=link150 onMouseOver="ShowTip(event, 'tt25', 'link150')" onMouseOut="HideTip('tt25')">copyElem</a></td><td class=SDescription>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getElem" id=link151 onMouseOver="ShowTip(event, 'tt26', 'link151')" onMouseOut="HideTip('tt26')">getElem</a></td><td class=SDescription>Get a DOM element by ID within the SVG root element.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getId" id=link152 onMouseOver="ShowTip(event, 'tt27', 'link152')" onMouseOut="HideTip('tt27')">getId</a></td><td class=SDescription>Returns the last created DOM element ID string</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getNextId" id=link153 onMouseOver="ShowTip(event, 'tt28', 'link153')" onMouseOut="HideTip('tt28')">getNextId</a></td><td class=SDescription>Creates and returns a unique ID string for a DOM element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.bind" id=link154 onMouseOver="ShowTip(event, 'tt29', 'link154')" onMouseOut="HideTip('tt29')">bind</a></td><td class=SDescription>Attaches a callback function to an event</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setIdPrefix" id=link155 onMouseOver="ShowTip(event, 'tt30', 'link155')" onMouseOut="HideTip('tt30')">setIdPrefix</a></td><td class=SDescription>Changes the ID prefix to the given value</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.sanitizeSvg" id=link156 onMouseOver="ShowTip(event, 'tt31', 'link156')" onMouseOut="HideTip('tt31')">sanitizeSvg</a></td><td class=SDescription>Sanitizes the input node and its children It only keeps what is allowed from our whitelist defined above</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getUrlFromAttr" id=link157 onMouseOver="ShowTip(event, 'tt32', 'link157')" onMouseOut="HideTip('tt32')">getUrlFromAttr</a></td><td class=SDescription>Extracts the URL from the url(...)</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getBBox" id=link158 onMouseOver="ShowTip(event, 'tt33', 'link158')" onMouseOut="HideTip('tt33')">getBBox</a></td><td class=SDescription>Get the given/selected element&rsquo;s bounding box object, convert it to be more usable when necessary</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.ffClone" id=link159 onMouseOver="ShowTip(event, 'tt34', 'link159')" onMouseOut="HideTip('tt34')">ffClone</a></td><td class=SDescription>Hack for Firefox bugs where text element features aren&rsquo;t updated. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getPathBBox" id=link160 onMouseOver="ShowTip(event, 'tt35', 'link160')" onMouseOut="HideTip('tt35')">getPathBBox</a></td><td class=SDescription>Get correct BBox for a path in Webkit Converted from code found here: <a href="http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html" class=LURL target=_top>http://blog.hackers-cafe.net<wbr>/2009<wbr>/06<wbr>/how-to-calculate-bezier-curves-bounding.html</a></td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Element_Transforms" >Element Transforms</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getRotationAngle" id=link161 onMouseOver="ShowTip(event, 'tt36', 'link161')" onMouseOut="HideTip('tt36')">getRotationAngle</a></td><td class=SDescription>Get the rotation angle of the given/selected DOM element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setRotationAngle" id=link162 onMouseOver="ShowTip(event, 'tt37', 'link162')" onMouseOut="HideTip('tt37')">setRotationAngle</a></td><td class=SDescription>Removes any old rotations if present, prepends a new rotation at the transformed center</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getTransformList" id=link163 onMouseOver="ShowTip(event, 'tt38', 'link163')" onMouseOut="HideTip('tt38')">getTransformList</a></td><td class=SDescription>Returns an object that behaves like a SVGTransformList for the given DOM element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.recalculateAllSelectedDimensions" id=link164 onMouseOver="ShowTip(event, 'tt39', 'link164')" onMouseOut="HideTip('tt39')">recalculateAllSelectedDimensions</a></td><td class=SDescription>Runs recalculateDimensions on the selected elements, adding the changes to a single batch command</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.remapElement" id=link165 onMouseOver="ShowTip(event, 'tt40', 'link165')" onMouseOut="HideTip('tt40')">remapElement</a></td><td class=SDescription>Applies coordinate changes to an element based on the given matrix</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.recalculateDimensions" id=link166 onMouseOver="ShowTip(event, 'tt41', 'link166')" onMouseOut="HideTip('tt41')">recalculateDimensions</a></td><td class=SDescription>Decides the course of action based on the element&rsquo;s transform list</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.transformPoint" id=link167 onMouseOver="ShowTip(event, 'tt42', 'link167')" onMouseOut="HideTip('tt42')">transformPoint</a></td><td class=SDescription>A (hopefully) quicker function to transform a point by a matrix (this function avoids any DOM calls and just does the math)</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.isIdentity" id=link168 onMouseOver="ShowTip(event, 'tt43', 'link168')" onMouseOut="HideTip('tt43')">isIdentity</a></td><td class=SDescription>Helper function to check if the matrix performs no actual transform (i.e. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.matrixMultiply" id=link169 onMouseOver="ShowTip(event, 'tt44', 'link169')" onMouseOut="HideTip('tt44')">matrixMultiply</a></td><td class=SDescription>This function tries to return a SVGMatrix that is the multiplication m1*m2. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.transformListToTransform" id=link170 onMouseOver="ShowTip(event, 'tt45', 'link170')" onMouseOut="HideTip('tt45')">transformListToTransform</a></td><td class=SDescription>This returns a single matrix Transform for a given Transform List (this is the equivalent of SVGTransformList.consolidate() but unlike that method, this one does not modify the actual SVGTransformList) This function is very liberal with its min,max arguments</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.hasMatrixTransform" id=link171 onMouseOver="ShowTip(event, 'tt46', 'link171')" onMouseOut="HideTip('tt46')">hasMatrixTransform</a></td><td class=SDescription>See if the given transformlist includes a non-indentity matrix transform</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getMatrix" id=link172 onMouseOver="ShowTip(event, 'tt47', 'link172')" onMouseOut="HideTip('tt47')">getMatrix</a></td><td class=SDescription>Get the matrix object for a given element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.transformBox" id=link173 onMouseOver="ShowTip(event, 'tt48', 'link173')" onMouseOut="HideTip('tt48')">transformBox</a></td><td class=SDescription>Transforms a rectangle based on the given matrix</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Selection" >Selection</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.clearSelection" id=link174 onMouseOver="ShowTip(event, 'tt49', 'link174')" onMouseOut="HideTip('tt49')">clearSelection</a></td><td class=SDescription>Clears the selection. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.addToSelection" id=link175 onMouseOver="ShowTip(event, 'tt50', 'link175')" onMouseOut="HideTip('tt50')">addToSelection</a></td><td class=SDescription>Adds a list of elements to the selection. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.removeFromSelection" id=link176 onMouseOver="ShowTip(event, 'tt51', 'link176')" onMouseOut="HideTip('tt51')">removeFromSelection</a></td><td class=SDescription>Removes elements from the selection.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.selectAllInCurrentLayer" id=link177 onMouseOver="ShowTip(event, 'tt52', 'link177')" onMouseOut="HideTip('tt52')">selectAllInCurrentLayer</a></td><td class=SDescription>Clears the selection, then adds all elements in the current layer to the selection. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.smoothControlPoints" id=link178 onMouseOver="ShowTip(event, 'tt53', 'link178')" onMouseOut="HideTip('tt53')">smoothControlPoints</a></td><td class=SDescription>Takes three points and creates a smoother line based on them</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getMouseTarget" id=link179 onMouseOver="ShowTip(event, 'tt54', 'link179')" onMouseOut="HideTip('tt54')">getMouseTarget</a></td><td class=SDescription>Gets the desired element from a mouse event</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.preventClickDefault" id=link180 onMouseOver="ShowTip(event, 'tt55', 'link180')" onMouseOut="HideTip('tt55')">preventClickDefault</a></td><td class=SDescription>Prevents default browser click behaviour on the given element</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Text_edit_functions" >Text edit functions</a></td><td class=SDescription>Functions relating to editing text elements</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Path_edit_functions" >Path edit functions</a></td><td class=SDescription>Functions relating to editing path elements</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Serialization" >Serialization</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.removeUnusedDefElems" id=link181 onMouseOver="ShowTip(event, 'tt56', 'link181')" onMouseOut="HideTip('tt56')">removeUnusedDefElems</a></td><td class=SDescription>Looks at DOM elements inside the &lt;defs&gt; to see if they are referred to, removes them from the DOM if they are not.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.svgCanvasToString" id=link182 onMouseOver="ShowTip(event, 'tt57', 'link182')" onMouseOut="HideTip('tt57')">svgCanvasToString</a></td><td class=SDescription>Main function to set up the SVG content for output</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.svgToString" id=link183 onMouseOver="ShowTip(event, 'tt58', 'link183')" onMouseOut="HideTip('tt58')">svgToString</a></td><td class=SDescription>Sub function ran on each SVG element to convert it to a string as desired</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.embedImage" id=link184 onMouseOver="ShowTip(event, 'tt59', 'link184')" onMouseOut="HideTip('tt59')">embedImage</a></td><td class=SDescription>Converts a given image file to a data URL when possible, then runs a given callback</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.save" id=link185 onMouseOver="ShowTip(event, 'tt60', 'link185')" onMouseOut="HideTip('tt60')">save</a></td><td class=SDescription>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.rasterExport" id=link186 onMouseOver="ShowTip(event, 'tt61', 'link186')" onMouseOut="HideTip('tt61')">rasterExport</a></td><td class=SDescription>Generates a PNG Data URL based on the current image, then calls &ldquo;exported&rdquo; with an object including the string and any issues found</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getSvgString" id=link187 onMouseOver="ShowTip(event, 'tt62', 'link187')" onMouseOut="HideTip('tt62')">getSvgString</a></td><td class=SDescription>Returns the current drawing as raw SVG XML text.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setSvgString" id=link188 onMouseOver="ShowTip(event, 'tt63', 'link188')" onMouseOut="HideTip('tt63')">setSvgString</a></td><td class=SDescription>This function sets the current drawing as the input SVG XML.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.importSvgString" id=link189 onMouseOver="ShowTip(event, 'tt64', 'link189')" onMouseOut="HideTip('tt64')">importSvgString</a></td><td class=SDescription>This function imports the input SVG XML into the current layer in the drawing</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Layers" >Layers</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.identifyLayers" id=link190 onMouseOver="ShowTip(event, 'tt65', 'link190')" onMouseOut="HideTip('tt65')">identifyLayers</a></td><td class=SDescription>Updates layer system</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.createLayer" id=link191 onMouseOver="ShowTip(event, 'tt66', 'link191')" onMouseOut="HideTip('tt66')">createLayer</a></td><td class=SDescription>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.deleteCurrentLayer" id=link192 onMouseOver="ShowTip(event, 'tt67', 'link192')" onMouseOut="HideTip('tt67')">deleteCurrentLayer</a></td><td class=SDescription>Deletes the current layer from the drawing and then clears the selection. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getNumLayers" id=link193 onMouseOver="ShowTip(event, 'tt68', 'link193')" onMouseOut="HideTip('tt68')">getNumLayers</a></td><td class=SDescription>Returns the number of layers in the current drawing.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getLayer" id=link194 onMouseOver="ShowTip(event, 'tt69', 'link194')" onMouseOut="HideTip('tt69')">getLayer</a></td><td class=SDescription>Returns the name of the ith layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getCurrentLayer" id=link195 onMouseOver="ShowTip(event, 'tt70', 'link195')" onMouseOut="HideTip('tt70')">getCurrentLayer</a></td><td class=SDescription>Returns the name of the currently selected layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setCurrentLayer" id=link196 onMouseOver="ShowTip(event, 'tt71', 'link196')" onMouseOut="HideTip('tt71')">setCurrentLayer</a></td><td class=SDescription>Sets the current layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.renameCurrentLayer" id=link197 onMouseOver="ShowTip(event, 'tt72', 'link197')" onMouseOut="HideTip('tt72')">renameCurrentLayer</a></td><td class=SDescription>Renames the current layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setCurrentLayerPosition" id=link198 onMouseOver="ShowTip(event, 'tt73', 'link198')" onMouseOut="HideTip('tt73')">setCurrentLayerPosition</a></td><td class=SDescription>Changes the position of the current layer to the new value. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getLayerVisibility" id=link199 onMouseOver="ShowTip(event, 'tt74', 'link199')" onMouseOut="HideTip('tt74')">getLayerVisibility</a></td><td class=SDescription>Returns whether the layer is visible. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setLayerVisibility" id=link200 onMouseOver="ShowTip(event, 'tt75', 'link200')" onMouseOut="HideTip('tt75')">setLayerVisibility</a></td><td class=SDescription>Sets the visibility of the layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.moveSelectedToLayer" id=link201 onMouseOver="ShowTip(event, 'tt76', 'link201')" onMouseOut="HideTip('tt76')">moveSelectedToLayer</a></td><td class=SDescription>Moves the selected elements to layername. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getLayerOpacity" id=link202 onMouseOver="ShowTip(event, 'tt77', 'link202')" onMouseOut="HideTip('tt77')">getLayerOpacity</a></td><td class=SDescription>Returns the opacity of the given layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setLayerOpacity" id=link203 onMouseOver="ShowTip(event, 'tt78', 'link203')" onMouseOut="HideTip('tt78')">setLayerOpacity</a></td><td class=SDescription>Sets the opacity of the given layer. </td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Document_functions" >Document functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.clear" id=link204 onMouseOver="ShowTip(event, 'tt79', 'link204')" onMouseOut="HideTip('tt79')">clear</a></td><td class=SDescription>Clears the current document. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.linkControlPoints" >linkControlPoints</a></td><td class=SDescription>Alias function</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getContentElem" id=link205 onMouseOver="ShowTip(event, 'tt80', 'link205')" onMouseOut="HideTip('tt80')">getContentElem</a></td><td class=SDescription>Returns the content DOM element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getRootElem" id=link206 onMouseOver="ShowTip(event, 'tt81', 'link206')" onMouseOut="HideTip('tt81')">getRootElem</a></td><td class=SDescription>Returns the root DOM element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getSelectedElems" id=link207 onMouseOver="ShowTip(event, 'tt82', 'link207')" onMouseOut="HideTip('tt82')">getSelectedElems</a></td><td class=SDescription>Returns the array with selected DOM elements</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getResolution" id=link208 onMouseOver="ShowTip(event, 'tt83', 'link208')" onMouseOut="HideTip('tt83')">getResolution</a></td><td class=SDescription>Returns the current dimensions and zoom level in an object</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getZoom" id=link209 onMouseOver="ShowTip(event, 'tt84', 'link209')" onMouseOut="HideTip('tt84')">getZoom</a></td><td class=SDescription>Returns the current zoom level</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getVersion" id=link210 onMouseOver="ShowTip(event, 'tt85', 'link210')" onMouseOut="HideTip('tt85')">getVersion</a></td><td class=SDescription>Returns a string which describes the revision number of SvgCanvas.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setUiStrings" id=link211 onMouseOver="ShowTip(event, 'tt86', 'link211')" onMouseOut="HideTip('tt86')">setUiStrings</a></td><td class=SDescription>Update interface strings with given values</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setConfig" id=link212 onMouseOver="ShowTip(event, 'tt87', 'link212')" onMouseOut="HideTip('tt87')">setConfig</a></td><td class=SDescription>Update configuration options with given values</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getDocumentTitle" id=link213 onMouseOver="ShowTip(event, 'tt88', 'link213')" onMouseOut="HideTip('tt88')">getDocumentTitle</a></td><td class=SDescription>Returns the current document title or an empty string if not found</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setDocumentTitle" id=link214 onMouseOver="ShowTip(event, 'tt89', 'link214')" onMouseOut="HideTip('tt89')">setDocumentTitle</a></td><td class=SDescription>Adds/updates a title element for the document with the given name. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getEditorNS" id=link215 onMouseOver="ShowTip(event, 'tt90', 'link215')" onMouseOut="HideTip('tt90')">getEditorNS</a></td><td class=SDescription>Returns the editor&rsquo;s namespace URL, optionally adds it to root element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setResolution" id=link216 onMouseOver="ShowTip(event, 'tt91', 'link216')" onMouseOut="HideTip('tt91')">setResolution</a></td><td class=SDescription>Changes the document&rsquo;s dimensions to the given size</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getOffset" id=link217 onMouseOver="ShowTip(event, 'tt92', 'link217')" onMouseOut="HideTip('tt92')">getOffset</a></td><td class=SDescription>Returns an object with x, y values indicating the svgcontent element&rsquo;s position in the editor&rsquo;s canvas.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setBBoxZoom" id=link218 onMouseOver="ShowTip(event, 'tt93', 'link218')" onMouseOut="HideTip('tt93')">setBBoxZoom</a></td><td class=SDescription>Sets the zoom level on the canvas-side based on the given value</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setZoom" id=link219 onMouseOver="ShowTip(event, 'tt94', 'link219')" onMouseOut="HideTip('tt94')">setZoom</a></td><td class=SDescription>Sets the zoom to the given level</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getMode" id=link220 onMouseOver="ShowTip(event, 'tt95', 'link220')" onMouseOut="HideTip('tt95')">getMode</a></td><td class=SDescription>Returns the current editor mode string</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setMode" id=link221 onMouseOver="ShowTip(event, 'tt96', 'link221')" onMouseOut="HideTip('tt96')">setMode</a></td><td class=SDescription>Sets the editor&rsquo;s mode to the given string</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Element_Styling" >Element Styling</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getColor" id=link222 onMouseOver="ShowTip(event, 'tt97', 'link222')" onMouseOut="HideTip('tt97')">getColor</a></td><td class=SDescription>Returns the current fill/stroke option</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setColor" id=link223 onMouseOver="ShowTip(event, 'tt98', 'link223')" onMouseOut="HideTip('tt98')">setColor</a></td><td class=SDescription>Change the current stroke/fill color/gradient value</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.findDefs" id=link224 onMouseOver="ShowTip(event, 'tt99', 'link224')" onMouseOut="HideTip('tt99')">findDefs</a></td><td class=SDescription>Return the document&rsquo;s &lt;defs&gt; element, create it first if necessary</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setGradient" id=link225 onMouseOver="ShowTip(event, 'tt100', 'link225')" onMouseOut="HideTip('tt100')">setGradient</a></td><td class=SDescription>Apply the current gradient to selected element&rsquo;s fill or stroke</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.findDuplicateGradient" id=link226 onMouseOver="ShowTip(event, 'tt101', 'link226')" onMouseOut="HideTip('tt101')">findDuplicateGradient</a></td><td class=SDescription>Check if exact gradient already exists</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setPaint" id=link227 onMouseOver="ShowTip(event, 'tt102', 'link227')" onMouseOut="HideTip('tt102')">setPaint</a></td><td class=SDescription>Set a color/gradient to a fill/stroke</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getStrokeWidth" id=link228 onMouseOver="ShowTip(event, 'tt103', 'link228')" onMouseOut="HideTip('tt103')">getStrokeWidth</a></td><td class=SDescription>Returns the current stroke-width value</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setStrokeWidth" id=link229 onMouseOver="ShowTip(event, 'tt104', 'link229')" onMouseOut="HideTip('tt104')">setStrokeWidth</a></td><td class=SDescription>Sets the stroke width for the current selected elements When attempting to set a line&rsquo;s width to 0, this changes it to 1 instead</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setStrokeAttr" id=link230 onMouseOver="ShowTip(event, 'tt105', 'link230')" onMouseOut="HideTip('tt105')">setStrokeAttr</a></td><td class=SDescription>Set the given stroke-related attribute the given value for selected elements</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getOpacity" id=link231 onMouseOver="ShowTip(event, 'tt106', 'link231')" onMouseOut="HideTip('tt106')">getOpacity</a></td><td class=SDescription>Returns the current opacity</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setOpacity" id=link232 onMouseOver="ShowTip(event, 'tt107', 'link232')" onMouseOut="HideTip('tt107')">setOpacity</a></td><td class=SDescription>Sets the given opacity to the current selected elements</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.getOpacity" >getOpacity</a></td><td class=SDescription>Returns the current fill opacity</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getStrokeOpacity" id=link233 onMouseOver="ShowTip(event, 'tt108', 'link233')" onMouseOut="HideTip('tt108')">getStrokeOpacity</a></td><td class=SDescription>Returns the current stroke opacity</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setPaintOpacity" id=link234 onMouseOver="ShowTip(event, 'tt109', 'link234')" onMouseOut="HideTip('tt109')">setPaintOpacity</a></td><td class=SDescription>Sets the current fill/stroke opacity</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getBlur" id=link235 onMouseOver="ShowTip(event, 'tt110', 'link235')" onMouseOut="HideTip('tt110')">getBlur</a></td><td class=SDescription>Gets the stdDeviation blur value of the given element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setBlurNoUndo" id=link236 onMouseOver="ShowTip(event, 'tt111', 'link236')" onMouseOut="HideTip('tt111')">setBlurNoUndo</a></td><td class=SDescription>Sets the stdDeviation blur value on the selected element without being undoable</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setBlurOffsets" id=link237 onMouseOver="ShowTip(event, 'tt112', 'link237')" onMouseOut="HideTip('tt112')">setBlurOffsets</a></td><td class=SDescription>Sets the x, y, with, height values of the filter element in order to make the blur not be clipped. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setBlur" id=link238 onMouseOver="ShowTip(event, 'tt113', 'link238')" onMouseOut="HideTip('tt113')">setBlur</a></td><td class=SDescription>Adds/updates the blur filter to the selected element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getBold" id=link239 onMouseOver="ShowTip(event, 'tt114', 'link239')" onMouseOut="HideTip('tt114')">getBold</a></td><td class=SDescription>Check whether selected element is bold or not</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setBold" id=link240 onMouseOver="ShowTip(event, 'tt115', 'link240')" onMouseOut="HideTip('tt115')">setBold</a></td><td class=SDescription>Make the selected element bold or normal</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getItalic" id=link241 onMouseOver="ShowTip(event, 'tt116', 'link241')" onMouseOut="HideTip('tt116')">getItalic</a></td><td class=SDescription>Check whether selected element is italic or not</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setItalic" id=link242 onMouseOver="ShowTip(event, 'tt117', 'link242')" onMouseOut="HideTip('tt117')">setItalic</a></td><td class=SDescription>Make the selected element italic or normal</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getFontFamily" id=link243 onMouseOver="ShowTip(event, 'tt118', 'link243')" onMouseOut="HideTip('tt118')">getFontFamily</a></td><td class=SDescription>Returns the current font family</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setFontFamily" id=link244 onMouseOver="ShowTip(event, 'tt119', 'link244')" onMouseOut="HideTip('tt119')">setFontFamily</a></td><td class=SDescription>Set the new font family</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getFontSize" id=link245 onMouseOver="ShowTip(event, 'tt120', 'link245')" onMouseOut="HideTip('tt120')">getFontSize</a></td><td class=SDescription>Returns the current font size</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setFontSize" id=link246 onMouseOver="ShowTip(event, 'tt121', 'link246')" onMouseOut="HideTip('tt121')">setFontSize</a></td><td class=SDescription>Applies the given font size to the selected element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.getText" id=link247 onMouseOver="ShowTip(event, 'tt122', 'link247')" onMouseOut="HideTip('tt122')">getText</a></td><td class=SDescription>Returns the current text (textContent) of the selected element</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setTextContent" id=link248 onMouseOver="ShowTip(event, 'tt123', 'link248')" onMouseOut="HideTip('tt123')">setTextContent</a></td><td class=SDescription>Updates the text element with the given string</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setImageURL" id=link249 onMouseOver="ShowTip(event, 'tt124', 'link249')" onMouseOut="HideTip('tt124')">setImageURL</a></td><td class=SDescription>Sets the new image URL for the selected image element. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setRectRadius" id=link250 onMouseOver="ShowTip(event, 'tt125', 'link250')" onMouseOut="HideTip('tt125')">setRectRadius</a></td><td class=SDescription>Sets the rx &amp; ry values to the selected rect element to change its corner radius</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Element_manipulation" >Element manipulation</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.setSegType" id=link251 onMouseOver="ShowTip(event, 'tt126', 'link251')" onMouseOut="HideTip('tt126')">setSegType</a></td><td class=SDescription>Sets the new segment type to the selected segment(s).</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.convertToPath" id=link252 onMouseOver="ShowTip(event, 'tt127', 'link252')" onMouseOut="HideTip('tt127')">convertToPath</a></td><td class=SDescription>Convert selected element to a path, or get the BBox of an element-as-path</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.changeSelectedAttributeNoUndo" id=link253 onMouseOver="ShowTip(event, 'tt128', 'link253')" onMouseOut="HideTip('tt128')">changeSelectedAttributeNoUndo</a></td><td class=SDescription>This function makes the changes to the elements. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.changeSelectedAttribute" id=link254 onMouseOver="ShowTip(event, 'tt129', 'link254')" onMouseOut="HideTip('tt129')">changeSelectedAttribute</a></td><td class=SDescription>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.deleteSelectedElements" id=link255 onMouseOver="ShowTip(event, 'tt130', 'link255')" onMouseOut="HideTip('tt130')">deleteSelectedElements</a></td><td class=SDescription>Removes all selected elements from the DOM and adds the change to the history stack</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.groupSelectedElements" id=link256 onMouseOver="ShowTip(event, 'tt131', 'link256')" onMouseOut="HideTip('tt131')">groupSelectedElements</a></td><td class=SDescription>Wraps all the selected elements in a group (g) element</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.ungroupSelectedElement" id=link257 onMouseOver="ShowTip(event, 'tt132', 'link257')" onMouseOut="HideTip('tt132')">ungroupSelectedElement</a></td><td class=SDescription>Unwraps all the elements in a selected group (g) element. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.moveToTopSelectedElement" id=link258 onMouseOver="ShowTip(event, 'tt133', 'link258')" onMouseOut="HideTip('tt133')">moveToTopSelectedElement</a></td><td class=SDescription>Repositions the selected element to the bottom in the DOM to appear on top of other elements</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.moveToBottomSelectedElement" id=link259 onMouseOver="ShowTip(event, 'tt134', 'link259')" onMouseOut="HideTip('tt134')">moveToBottomSelectedElement</a></td><td class=SDescription>Repositions the selected element to the top in the DOM to appear under other elements</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.moveSelectedElements" id=link260 onMouseOver="ShowTip(event, 'tt135', 'link260')" onMouseOut="HideTip('tt135')">moveSelectedElements</a></td><td class=SDescription>Moves selected elements on the X/Y axis</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.cloneSelectedElements" id=link261 onMouseOver="ShowTip(event, 'tt136', 'link261')" onMouseOut="HideTip('tt136')">cloneSelectedElements</a></td><td class=SDescription>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.alignSelectedElements" id=link262 onMouseOver="ShowTip(event, 'tt137', 'link262')" onMouseOut="HideTip('tt137')">alignSelectedElements</a></td><td class=SDescription>Aligns selected elements</td></tr><tr class="SGroup"><td class=SEntry><a href="#SelectorManager.Additional_editor_tools" >Additional editor tools</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.updateCanvas" id=link263 onMouseOver="ShowTip(event, 'tt138', 'link263')" onMouseOut="HideTip('tt138')">updateCanvas</a></td><td class=SDescription>Updates the editor canvas width/height/position after a zoom has occurred</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#SelectorManager.setBackground" id=link264 onMouseOver="ShowTip(event, 'tt139', 'link264')" onMouseOut="HideTip('tt139')">setBackground</a></td><td class=SDescription>Set the background of the editor (NOT the actual document)</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#SelectorManager.cycleElement" id=link265 onMouseOver="ShowTip(event, 'tt140', 'link265')" onMouseOut="HideTip('tt140')">cycleElement</a></td><td class=SDescription>Select the next/previous element within the current layer</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.SelectorManager.initGroup"></a>SelectorManager.<wbr>initGroup</h3><div class=CBody><p>Resets the parent selector group element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.SelectorManager.requestSelector"></a>SelectorManager.<wbr>requestSelector</h3><div class=CBody><p>Returns the selector based on the given element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to get the selector for</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.SelectorManager.releaseSelector"></a>SelectorManager.<wbr>releaseSelector</h3><div class=CBody><p>Removes the selector of the given element (hides selection box)</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to remove the selector for</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.SelectorManager.getRubberBandBox"></a>SelectorManager.<wbr>getRubberBandBox</h3><div class=CBody><p>Returns the rubberBandBox DOM element.&nbsp; This is the rectangle drawn by the user for selecting/zooming</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Helper_functions"></a>Helper functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.walkTree"></a>walkTree</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function walkTree(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>cbFn</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Walks the tree and executes the callback on each element in a top-down fashion</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to traverse</td></tr><tr><td class=CDLEntry>cbFn</td><td class=CDLDescription>Callback function to run on each element</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.walkTreePost"></a>walkTreePost</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function walkTreePost(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>cbFn</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Walks the tree and executes the callback on each element in a depth-first fashion</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to traverse</td></tr><tr><td class=CDLEntry>cbFn</td><td class=CDLDescription>Callback function to run on each element</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.assignAttributes"></a>assignAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var assignAttributes = this.assignAttributes = function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>suspendLength,</td></tr><tr><td></td><td class=PParameter nowrap>unitCheck</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Assigns multiple attributes to an element.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>DOM element to apply new attribute values to</td></tr><tr><td class=CDLEntry>attrs</td><td class=CDLDescription>Object with attribute keys/values</td></tr><tr><td class=CDLEntry>suspendLength</td><td class=CDLDescription>Optional integer of milliseconds to suspend redraw</td></tr><tr><td class=CDLEntry>unitCheck</td><td class=CDLDescription>Boolean to indicate the need to use setUnitAttr</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.cleanupElement"></a>cleanupElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var cleanupElement = this.cleanupElement = function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove unneeded (default) attributes, makes resulting SVG smaller</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>DOM element to clean up</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.addSvgElementFromJson"></a>addSvgElementFromJson</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addSvgElementFromJson = this.addSvgElementFromJson = function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>Object with the following keys/values:</td></tr></table><ul><li>element - DOM element to create</li><li>attr - Object with attributes/values to assign to the new element</li><li>curStyles - Boolean indicating that current style attributes should be applied first</li></ul><p>Returns: The new element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.addExtension"></a>addExtension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addExtension = function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>ext_func</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add an extension to the editor</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>String with the ID of the extension</td></tr><tr><td class=CDLEntry>ext_func</td><td class=CDLDescription>Function supplied by the extension with its data</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.shortFloat"></a>shortFloat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var shortFloat = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Rounds a given value to a float with number of digits defined in save_options</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>The value as a String, Number or Array of two numbers to be rounded</td></tr></table><h4 class=CHeading>Returns</h4><p>If a string/number was given, returns a Float.&nbsp; If an array, return a string with comma-seperated floats</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getStrokedBBox"></a>getStrokedBBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getStrokedBBox = this.getStrokedBBox = function(</td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the bounding box for one or more stroked and/or transformed elements</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elems</td><td class=CDLDescription>Array with DOM elements to check</td></tr></table><h4 class=CHeading>Returns</h4><p>A single bounding box object</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getVisibleElements"></a>getVisibleElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getVisibleElements = this.getVisibleElements = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>includeBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get all elements that have a BBox (excludes &lt;defs&gt;, &lt;title&gt;, etc).&nbsp; Note that 0-opacity, off-screen etc elements are still considered &ldquo;visible&rdquo; for this function</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription>The parent DOM element to search within</td></tr><tr><td class=CDLEntry>includeBBox</td><td class=CDLDescription>Boolean to indicate that an object should return with the element and its bbox</td></tr></table><h4 class=CHeading>Returns</h4><p>An array with all &ldquo;visible&rdquo; elements, or if includeBBox is true, an array with objects that include:</p><ul><li>elem - The element</li><li>bbox - The element&rsquo;s BBox as retrieved from getStrokedBBox</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.copyElem"></a>copyElem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var copyElem = function(</td><td class=PParameter nowrap>el</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>el</td><td class=CDLDescription>DOM element to clone</td></tr></table><p>Returns: The cloned element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getElem"></a>getElem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElem(</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a DOM element by ID within the SVG root element.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>String with the element&rsquo;s new ID</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getId"></a>getId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getId = c.getId = function()</td></tr></table></blockquote><p>Returns the last created DOM element ID string</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getNextId"></a>getNextId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNextId = c.getNextId = function()</td></tr></table></blockquote><p>Creates and returns a unique ID string for a DOM element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.bind"></a>bind</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.bind = function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>f</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Attaches a callback function to an event</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>event</td><td class=CDLDescription>String indicating the name of the event</td></tr><tr><td class=CDLEntry>f</td><td class=CDLDescription>The callback function to bind to the event</td></tr></table><h4 class=CHeading>Return</h4><p>The previous event</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setIdPrefix"></a>setIdPrefix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.setIdPrefix = function(</td><td class=PParameter nowrap>p</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the ID prefix to the given value</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p</td><td class=CDLDescription>String with the new prefix</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.sanitizeSvg"></a>sanitizeSvg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var sanitizeSvg = this.sanitizeSvg = function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sanitizes the input node and its children It only keeps what is allowed from our whitelist defined above</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>The DOM element to be checked, will also check its children</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getUrlFromAttr"></a>getUrlFromAttr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getUrlFromAttr = this.getUrlFromAttr = function(</td><td class=PParameter nowrap>attrVal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extracts the URL from the url(...) syntax of some attributes.&nbsp; Three variants:</p><ul><li>&lt;circle fill=&rdquo;url(someFile.svg#foo)&rdquo; /&gt;</li><li>&lt;circle fill=&rdquo;url(&lsquo;someFile.svg#foo&rsquo;)&rdquo; /&gt;</li><li>&lt;circle fill=&rsquo;url(&ldquo;someFile.svg#foo&rdquo;)&rsquo; /&gt;</li></ul><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attrVal</td><td class=CDLDescription>The attribute value as a string</td></tr></table><h4 class=CHeading>Returns</h4><p>String with just the URL, like someFile.svg#foo</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getBBox"></a>getBBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getBBox = this.getBBox = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the given/selected element&rsquo;s bounding box object, convert it to be more usable when necessary</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>Optional DOM element to get the BBox for</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.ffClone"></a>ffClone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ffClone = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hack for Firefox bugs where text element features aren&rsquo;t updated.&nbsp; This function clones the element and re-selects it TODO: Test for this bug on load and add it to &ldquo;support&rdquo; object instead of browser sniffing</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The (text) DOM element to clone</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getPathBBox"></a>getPathBBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getPathBBox = function(</td><td class=PParameter nowrap>path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get correct BBox for a path in Webkit Converted from code found here: <a href="http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html" class=LURL target=_top>http://blog.hackers-cafe.net<wbr>/2009<wbr>/06<wbr>/how-to-calculate-bezier-curves-bounding.html</a></p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>path</td><td class=CDLDescription>The path DOM element to get the BBox for</td></tr></table><h4 class=CHeading>Returns</h4><p>A BBox-like object</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Element_Transforms"></a>Element Transforms</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getRotationAngle"></a>getRotationAngle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getRotationAngle = this.getRotationAngle = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>to_rad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the rotation angle of the given/selected DOM element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>Optional DOM element to get the angle for</td></tr><tr><td class=CDLEntry>to_rad</td><td class=CDLDescription>Boolean that when true returns the value in radians rather than degrees</td></tr></table><h4 class=CHeading>Returns</h4><p>Float with the angle in degrees or radians</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setRotationAngle"></a>setRotationAngle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setRotationAngle = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes any old rotations if present, prepends a new rotation at the transformed center</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>The new rotation angle in degrees</td></tr><tr><td class=CDLEntry>preventUndo</td><td class=CDLDescription>Boolean indicating whether the action should be undoable or not</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getTransformList"></a>getTransformList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getTransformList = this.getTransformList = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an object that behaves like a SVGTransformList for the given DOM element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>DOM element to get a transformlist from</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.recalculateAllSelectedDimensions"></a>recalculateAllSelectedDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var recalculateAllSelectedDimensions = this.recalculateAllSelectedDimensions = function()</td></tr></table></blockquote><p>Runs recalculateDimensions on the selected elements, adding the changes to a single batch command</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.remapElement"></a>remapElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var remapElement = this.remapElement = function(</td><td class=PParameter nowrap>selected,</td></tr><tr><td></td><td class=PParameter nowrap>changes,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Applies coordinate changes to an element based on the given matrix</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>selected</td><td class=CDLDescription>DOM element to be changed</td></tr><tr><td class=CDLEntry>changes</td><td class=CDLDescription>Object with changes to be remapped</td></tr><tr><td class=CDLEntry>m</td><td class=CDLDescription>Matrix object to use for remapping coordinates</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.recalculateDimensions"></a>recalculateDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var recalculateDimensions = this.recalculateDimensions = function(</td><td class=PParameter nowrap>selected</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decides the course of action based on the element&rsquo;s transform list</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>selected</td><td class=CDLDescription>The DOM element to recalculate</td></tr></table><h4 class=CHeading>Returns</h4><p>Undo command object with the resulting change</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.transformPoint"></a>transformPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformPoint = function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>A (hopefully) quicker function to transform a point by a matrix (this function avoids any DOM calls and just does the math)</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>Float representing the x coordinate</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Float representing the y coordinate</td></tr><tr><td class=CDLEntry>m</td><td class=CDLDescription>Matrix object to transform the point with Returns a x,y object representing the transformed point</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.isIdentity"></a>isIdentity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var isIdentity = function(</td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Helper function to check if the matrix performs no actual transform (i.e. exists for identity purposes)</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>m</td><td class=CDLDescription>The matrix object to check</td></tr></table><h4 class=CHeading>Returns</h4><p>Boolean indicating whether or not the matrix is 1,0,0,1,0,0</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.matrixMultiply"></a>matrixMultiply</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var matrixMultiply = this.matrixMultiply = function()</td></tr></table></blockquote><p>This function tries to return a SVGMatrix that is the multiplication m1*m2.&nbsp; We also round to zero when it&rsquo;s near zero</p><h4 class=CHeading>Parameters</h4><blockquote><pre>= 2 Matrix objects to multiply</pre></blockquote><h4 class=CHeading>Returns</h4><p>The matrix object resulting from the calculation</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.transformListToTransform"></a>transformListToTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformListToTransform = this.transformListToTransform = function(</td><td class=PParameter nowrap>tlist,</td></tr><tr><td></td><td class=PParameter nowrap>min,</td></tr><tr><td></td><td class=PParameter nowrap>max</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This returns a single matrix Transform for a given Transform List (this is the equivalent of SVGTransformList.consolidate() but unlike that method, this one does not modify the actual SVGTransformList) This function is very liberal with its min,max arguments</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tlist</td><td class=CDLDescription>The transformlist object</td></tr><tr><td class=CDLEntry>min</td><td class=CDLDescription>Optional integer indicating start transform position</td></tr><tr><td class=CDLEntry>max</td><td class=CDLDescription>Optional integer indicating end transform position</td></tr></table><h4 class=CHeading>Returns</h4><p>A single matrix transform object</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.hasMatrixTransform"></a>hasMatrixTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var hasMatrixTransform = this.hasMatrixTransform = function(</td><td class=PParameter nowrap>tlist</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>See if the given transformlist includes a non-indentity matrix transform</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tlist</td><td class=CDLDescription>The transformlist to check</td></tr></table><h4 class=CHeading>Returns</h4><p>Boolean on whether or not a matrix transform was found</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getMatrix"></a>getMatrix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getMatrix = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the matrix object for a given element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The DOM element to check</td></tr></table><h4 class=CHeading>Returns</h4><p>The matrix object associated with the element&rsquo;s transformlist</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.transformBox"></a>transformBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformBox = this.transformBox = function(</td><td class=PParameter nowrap>l,</td></tr><tr><td></td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PParameter nowrap>h,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Transforms a rectangle based on the given matrix</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>l</td><td class=CDLDescription>Float with the box&rsquo;s left coordinate</td></tr><tr><td class=CDLEntry>t</td><td class=CDLDescription>Float with the box&rsquo;s top coordinate</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>Float with the box width</td></tr><tr><td class=CDLEntry>h</td><td class=CDLDescription>Float with the box height</td></tr><tr><td class=CDLEntry>m</td><td class=CDLDescription>Matrix object to transform the box by</td></tr></table><h4 class=CHeading>Returns</h4><p>An object with the following values:</p><ul><li>tl - The top left coordinate (x,y object)</li><li>tr - The top right coordinate (x,y object)</li><li>bl - The bottom left coordinate (x,y object)</li><li>br - The bottom right coordinate (x,y object)</li><li>aabox - Object with the following values:</li><li>Float with the axis-aligned x coordinate</li><li>Float with the axis-aligned y coordinate</li><li>Float with the axis-aligned width coordinate</li><li>Float with the axis-aligned height coordinate</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Selection"></a>Selection</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.clearSelection"></a>clearSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var clearSelection = this.clearSelection = function(</td><td class=PParameter nowrap>noCall</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Clears the selection.&nbsp;  The &lsquo;selected&rsquo; handler is then called.&nbsp; Parameters: noCall - Optional boolean that when true does not call the &ldquo;selected&rdquo; handler</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.addToSelection"></a>addToSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addToSelection = this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a list of elements to the selection.&nbsp;  The &lsquo;selected&rsquo; handler is then called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elemsToAdd</td><td class=CDLDescription>an array of DOM elements to add to the selection</td></tr><tr><td class=CDLEntry>showGrips</td><td class=CDLDescription>a boolean flag indicating whether the resize grips should be shown</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.removeFromSelection"></a>removeFromSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var removeFromSelection = this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes elements from the selection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elemsToRemove</td><td class=CDLDescription>an array of elements to remove from selection</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.selectAllInCurrentLayer"></a>selectAllInCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.selectAllInCurrentLayer = function()</td></tr></table></blockquote><p>Clears the selection, then adds all elements in the current layer to the selection.&nbsp; This function then fires the selected event.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.smoothControlPoints"></a>smoothControlPoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var smoothControlPoints = this.smoothControlPoints = function(</td><td class=PParameter nowrap>ct1,</td></tr><tr><td></td><td class=PParameter nowrap>ct2,</td></tr><tr><td></td><td class=PParameter nowrap>pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes three points and creates a smoother line based on them</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>ct1</td><td class=CDLDescription>Object with x and y values (first control point)</td></tr><tr><td class=CDLEntry>ct2</td><td class=CDLDescription>Object with x and y values (second control point)</td></tr><tr><td class=CDLEntry>pt</td><td class=CDLDescription>Object with x and y values (third point)</td></tr></table><h4 class=CHeading>Returns</h4><p>Array of two &ldquo;smoothed&rdquo; point objects</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getMouseTarget"></a>getMouseTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getMouseTarget = this.getMouseTarget = function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the desired element from a mouse event</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>evt</td><td class=CDLDescription>Event object from the mouse event</td></tr></table><h4 class=CHeading>Returns</h4><p>DOM element we want</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.preventClickDefault"></a>preventClickDefault</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var preventClickDefault = function(</td><td class=PParameter nowrap>img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Prevents default browser click behaviour on the given element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>img</td><td class=CDLDescription>The DOM element to prevent the cilck on</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Text_edit_functions"></a>Text edit functions</h3><div class=CBody><p>Functions relating to editing text elements</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Path_edit_functions"></a>Path edit functions</h3><div class=CBody><p>Functions relating to editing path elements</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Serialization"></a>Serialization</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.removeUnusedDefElems"></a>removeUnusedDefElems</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var removeUnusedDefElems = this.removeUnusedDefElems = function()</td></tr></table></blockquote><p>Looks at DOM elements inside the &lt;defs&gt; to see if they are referred to, removes them from the DOM if they are not.</p><h4 class=CHeading>Returns</h4><p>The amount of elements that were removed</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.svgCanvasToString"></a>svgCanvasToString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var svgCanvasToString = this.svgCanvasToString = function()</td></tr></table></blockquote><p>Main function to set up the SVG content for output</p><h4 class=CHeading>Returns</h4><p>String containing the SVG image for output</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.svgToString"></a>svgToString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var svgToString = this.svgToString = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>indent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sub function ran on each SVG element to convert it to a string as desired</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The SVG element to convert</td></tr><tr><td class=CDLEntry>indent</td><td class=CDLDescription>Integer with the amount of spaces to indent this tag</td></tr></table><h4 class=CHeading>Returns</h4><p>String with the given element as an SVG tag</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.embedImage"></a>embedImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.embedImage = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts a given image file to a data URL when possible, then runs a given callback</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the path/URL of the image</td></tr><tr><td class=CDLEntry>callback</td><td class=CDLDescription>Optional function to run when image data is found, supplies the result (data URL or false) as first parameter.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.save = function(</td><td class=PParameter nowrap>opts</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler.&nbsp; This function also includes the XML prolog.&nbsp;  Clients of the SvgCanvas bind their save function to the &lsquo;saved&rsquo; event.</p><h4 class=CHeading>Returns</h4><p>Nothing</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.rasterExport"></a>rasterExport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.rasterExport = function()</td></tr></table></blockquote><p>Generates a PNG Data URL based on the current image, then calls &ldquo;exported&rdquo; with an object including the string and any issues found</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getSvgString"></a>getSvgString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote><p>Returns the current drawing as raw SVG XML text.</p><h4 class=CHeading>Returns</h4><p>The current drawing as raw SVG XML text.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setSvgString"></a>setSvgString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function sets the current drawing as the input SVG XML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>xmlString</td><td class=CDLDescription>The SVG as XML text.</td></tr></table><h4 class=CHeading>Returns</h4><p>This function returns false if the set was unsuccessful, true otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.importSvgString"></a>importSvgString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.importSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function imports the input SVG XML into the current layer in the drawing</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>xmlString</td><td class=CDLDescription>The SVG as XML text.</td></tr></table><h4 class=CHeading>Returns</h4><p>This function returns false if the import was unsuccessful, true otherwise.&nbsp; TODO:</p><ul><li>properly handle if namespace is introduced by imported content (must add to svgcontent and update all prefixes in the imported node)</li><li>properly handle recalculating dimensions, recalculateDimensions() doesn&rsquo;t handle arbitrary transform lists, but makes some assumptions about how the transform list was obtained</li><li>import should happen in top-left of current zoomed viewport</li><li>create a new layer for the imported SVG</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Layers"></a>Layers</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.identifyLayers"></a>identifyLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var identifyLayers = function()</td></tr></table></blockquote><p>Updates layer system</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler.&nbsp; This is an undoable action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>The given name</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.deleteCurrentLayer"></a>deleteCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote><p>Deletes the current layer from the drawing and then clears the selection.&nbsp; This function then calls the &lsquo;changed&rsquo; handler.&nbsp;  This is an undoable action.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote><p>Returns the number of layers in the current drawing.</p><h4 class=CHeading>Returns</h4><p>The number of layers in the current drawing.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the name of the ith layer.&nbsp; If the index is out of range, an empty string is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>i</td><td class=CDLDescription>the zero-based index of the layer you are querying.</td></tr></table><h4 class=CHeading>Returns</h4><p>The name of the ith layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getCurrentLayer"></a>getCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote><p>Returns the name of the currently selected layer.&nbsp; If an error occurs, an empty string is returned.</p><h4 class=CHeading>Returns</h4><p>The name of the currently active layer.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setCurrentLayer"></a>setCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the current layer.&nbsp; If the name is not a valid layer name, then this function returns false.&nbsp; Otherwise it returns true.&nbsp; This is not an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>the name of the layer you want to switch to.</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the current layer was switched, otherwise false</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.renameCurrentLayer"></a>renameCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Renames the current layer.&nbsp; If the layer name is not valid (i.e. unique), then this function does nothing and returns false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>newname</td><td class=CDLDescription>the new name you want to give the current layer.&nbsp;  This name must be unique among all layer names.</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the rename succeeded, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setCurrentLayerPosition"></a>setCurrentLayerPosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the position of the current layer to the new value.&nbsp; If the new index is not valid, this function does nothing and returns false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>newpos</td><td class=CDLDescription>The zero-based index of the new position of the layer.&nbsp;  This should be between</td></tr><tr><td class=CDLEntry>0 and (number of layers</td><td class=CDLDescription>1)</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the current layer position was changed, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getLayerVisibility"></a>getLayerVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns whether the layer is visible.&nbsp;  If the layer name is not valid, then this function returns false.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer which you want to query.</td></tr></table><h4 class=CHeading>Returns</h4><p>The visibility state of the layer, or false if the layer name was invalid.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setLayerVisibility"></a>setLayerVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the visibility of the layer.&nbsp; If the layer name is not valid, this function return false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer to change the visibility</td></tr><tr><td class=CDLEntry>bVisible</td><td class=CDLDescription>true/false, whether the layer should be visible</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the layer&rsquo;s visibility was set, false otherwise</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.moveSelectedToLayer"></a>moveSelectedToLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the selected elements to layername.&nbsp; If the name is not a valid layer name, then false is returned.&nbsp;  Otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer you want to which you want to move the selected elements</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the selected elements were moved to the layer, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getLayerOpacity"></a>getLayerOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the opacity of the given layer.&nbsp;  If the input name is not a layer, null is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>name of the layer on which to get the opacity</td></tr></table><h4 class=CHeading>Returns</h4><p>The opacity value of the given layer.&nbsp;  This will be a value between 0.0 and 1.0, or null if layername is not a valid layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setLayerOpacity"></a>setLayerOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity of the given layer.&nbsp;  If the input name is not a layer, nothing happens.&nbsp; This is not an undo-able action.&nbsp;  NOTE: this function exists solely to apply a highlighting/de-emphasis effect to a layer, when it is possible for a user to affect the opacity of a layer, we will need to allow this function to produce an undo-able action.&nbsp; If opacity is not a value between 0.0 and 1.0, then nothing happens.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>name of the layer on which to set the opacity</td></tr><tr><td class=CDLEntry>opacity</td><td class=CDLDescription>a float value in the range 0.0-1.0</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Document_functions"></a>Document functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote><p>Clears the current document.&nbsp;  This is not an undoable action.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.linkControlPoints"></a>linkControlPoints</h3><div class=CBody><p>Alias function</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getContentElem"></a>getContentElem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getContentElem = function()</td></tr></table></blockquote><p>Returns the content DOM element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getRootElem"></a>getRootElem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getRootElem = function()</td></tr></table></blockquote><p>Returns the root DOM element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getSelectedElems"></a>getSelectedElems</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSelectedElems = function()</td></tr></table></blockquote><p>Returns the array with selected DOM elements</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var getResolution = this.getResolution = function()</td></tr></table></blockquote><p>Returns the current dimensions and zoom level in an object</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getZoom = function()</td></tr></table></blockquote><p>Returns the current zoom level</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getVersion"></a>getVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getVersion = function()</td></tr></table></blockquote><p>Returns a string which describes the revision number of SvgCanvas.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setUiStrings"></a>setUiStrings</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setUiStrings = function(</td><td class=PParameter nowrap>strs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update interface strings with given values</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>strs</td><td class=CDLDescription>Object with strings (see uiStrings for examples)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setConfig"></a>setConfig</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setConfig = function(</td><td class=PParameter nowrap>opts</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update configuration options with given values</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>opts</td><td class=CDLDescription>Object with options (see curConfig for examples)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getDocumentTitle"></a>getDocumentTitle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getDocumentTitle = function()</td></tr></table></blockquote><p>Returns the current document title or an empty string if not found</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setDocumentTitle"></a>setDocumentTitle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setDocumentTitle = function(</td><td class=PParameter nowrap>newtitle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds/updates a title element for the document with the given name.&nbsp; This is an undoable action</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>newtitle</td><td class=CDLDescription>String with the new title</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getEditorNS"></a>getEditorNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getEditorNS = function(</td><td class=PParameter nowrap>add</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the editor&rsquo;s namespace URL, optionally adds it to root element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>add</td><td class=CDLDescription>Boolean to indicate whether or not to add the namespace value</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setResolution"></a>setResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setResolution = function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the document&rsquo;s dimensions to the given size</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>Number with the width of the new dimensions in user units.&nbsp; Can also be the string &ldquo;fit&rdquo; to indicate &ldquo;fit to content&rdquo;</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Number with the height of the new dimensions in user units.</td></tr></table><h4 class=CHeading>Returns</h4><p>Boolean to indicate if resolution change was succesful.&nbsp; It will fail on &ldquo;fit to content&rdquo; option with no content to fit to.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getOffset"></a>getOffset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getOffset = function()</td></tr></table></blockquote><p>Returns an object with x, y values indicating the svgcontent element&rsquo;s position in the editor&rsquo;s canvas.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBBoxZoom"></a>setBBoxZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBBoxZoom = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>editor_w,</td></tr><tr><td></td><td class=PParameter nowrap>editor_h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the zoom level on the canvas-side based on the given value</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>Bounding box object to zoom to or string indicating zoom option</td></tr><tr><td class=CDLEntry>editor_w</td><td class=CDLDescription>Integer with the editor&rsquo;s workarea box&rsquo;s width</td></tr><tr><td class=CDLEntry>editor_h</td><td class=CDLDescription>Integer with the editor&rsquo;s workarea box&rsquo;s height</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setZoom"></a>setZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setZoom = function(</td><td class=PParameter nowrap>zoomlevel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the zoom to the given level</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>zoomlevel</td><td class=CDLDescription>Float indicating the zoom level to change to</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getMode"></a>getMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getMode = function()</td></tr></table></blockquote><p>Returns the current editor mode string</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setMode"></a>setMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setMode = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the editor&rsquo;s mode to the given string</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>String with the new mode to change to</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Element_Styling"></a>Element Styling</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getColor"></a>getColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getColor = function(</td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the current fill/stroke option</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setColor"></a>setColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setColor = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the current stroke/fill color/gradient value</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>String indicating fill or stroke</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>The value to set the stroke attribute to</td></tr><tr><td class=CDLEntry>preventUndo</td><td class=CDLDescription>Boolean indicating whether or not this should be and undoable option</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.findDefs"></a>findDefs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var findDefs = function()</td></tr></table></blockquote><p>Return the document&rsquo;s &lt;defs&gt; element, create it first if necessary</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setGradient"></a>setGradient</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var setGradient = this.setGradient = function(</td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Apply the current gradient to selected element&rsquo;s fill or stroke</p><p>Parameters type - String indicating &ldquo;fill&rdquo; or &ldquo;stroke&rdquo; to apply to an element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.findDuplicateGradient"></a>findDuplicateGradient</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var findDuplicateGradient = function(</td><td class=PParameter nowrap>grad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check if exact gradient already exists</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>grad</td><td class=CDLDescription>The gradient DOM element to compare to others</td></tr></table><h4 class=CHeading>Returns</h4><p>The existing gradient if found, null if not</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setPaint"></a>setPaint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setPaint = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>paint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set a color/gradient to a fill/stroke</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>String with &ldquo;fill&rdquo; or &ldquo;stroke&rdquo;</td></tr><tr><td class=CDLEntry>paint</td><td class=CDLDescription>The jGraduate paint object to apply</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getStrokeWidth"></a>getStrokeWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getStrokeWidth = function()</td></tr></table></blockquote><p>Returns the current stroke-width value</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setStrokeWidth"></a>setStrokeWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setStrokeWidth = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the stroke width for the current selected elements When attempting to set a line&rsquo;s width to 0, this changes it to 1 instead</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>A Float indicating the new stroke width value</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setStrokeAttr"></a>setStrokeAttr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setStrokeAttr = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the given stroke-related attribute the given value for selected elements</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the attribute name</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>String or number with the attribute value</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getOpacity"></a>getOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getOpacity = function()</td></tr></table></blockquote><p>Returns the current opacity</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setOpacity = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the given opacity to the current selected elements</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getOpacity"></a>getOpacity</h3><div class=CBody><p>Returns the current fill opacity</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getStrokeOpacity"></a>getStrokeOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getStrokeOpacity = function()</td></tr></table></blockquote><p>Returns the current stroke opacity</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setPaintOpacity"></a>setPaintOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setPaintOpacity = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the current fill/stroke opacity</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>String with &ldquo;fill&rdquo; or &ldquo;stroke&rdquo;</td></tr><tr><td class=CDLEntry>val</td><td class=CDLDescription>Float with the new opacity value</td></tr><tr><td class=CDLEntry>preventUndo</td><td class=CDLDescription>Boolean indicating whether or not this should be an undoable action</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getBlur"></a>getBlur</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getBlur = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the stdDeviation blur value of the given element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The element to check the blur value for</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBlurNoUndo"></a>setBlurNoUndo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlurNoUndo = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the stdDeviation blur value on the selected element without being undoable</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>The new stdDeviation value</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBlurOffsets"></a>setBlurOffsets</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlurOffsets = function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>stdDev</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the x, y, with, height values of the filter element in order to make the blur not be clipped.&nbsp; Removes them if not neeeded</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filter</td><td class=CDLDescription>The filter DOM element to update</td></tr><tr><td class=CDLEntry>stdDev</td><td class=CDLDescription>The standard deviation value on which to base the offset size</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBlur"></a>setBlur</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlur = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>complete</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds/updates the blur filter to the selected element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>Float with the new stdDeviation blur value</td></tr><tr><td class=CDLEntry>complete</td><td class=CDLDescription>Boolean indicating whether or not the action should be completed (to add to the undo manager)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getBold"></a>getBold</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getBold = function()</td></tr></table></blockquote><p>Check whether selected element is bold or not</p><h4 class=CHeading>Returns</h4><p>Boolean indicating whether or not element is bold</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBold"></a>setBold</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBold = function(</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Make the selected element bold or normal</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>b</td><td class=CDLDescription>Boolean indicating bold (true) or normal (false)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getItalic"></a>getItalic</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getItalic = function()</td></tr></table></blockquote><p>Check whether selected element is italic or not</p><h4 class=CHeading>Returns</h4><p>Boolean indicating whether or not element is italic</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setItalic"></a>setItalic</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setItalic = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Make the selected element italic or normal</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>b</td><td class=CDLDescription>Boolean indicating italic (true) or normal (false)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getFontFamily"></a>getFontFamily</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getFontFamily = function()</td></tr></table></blockquote><p>Returns the current font family</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setFontFamily"></a>setFontFamily</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setFontFamily = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the new font family</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the new font family</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getFontSize"></a>getFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getFontSize = function()</td></tr></table></blockquote><p>Returns the current font size</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setFontSize"></a>setFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setFontSize = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Applies the given font size to the selected element</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>Float with the new font size</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.getText"></a>getText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getText = function()</td></tr></table></blockquote><p>Returns the current text (textContent) of the selected element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setTextContent"></a>setTextContent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setTextContent = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the text element with the given string</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the new text</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setImageURL"></a>setImageURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setImageURL = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the new image URL for the selected image element.&nbsp; Updates its size if a new URL is given</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>String with the image URL/path</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setRectRadius"></a>setRectRadius</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setRectRadius = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the rx &amp; ry values to the selected rect element to change its corner radius</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>val</td><td class=CDLDescription>The new radius</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Element_manipulation"></a>Element manipulation</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setSegType"></a>setSegType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSegType = function(</td><td class=PParameter nowrap>new_type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the new segment type to the selected segment(s).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>new_type</td><td class=CDLDescription>Integer with the new segment type See <a href="http://www.w3.org/TR/SVG/paths.html#InterfaceSVGPathSeg" class=LURL target=_top>http://www.w3.org<wbr>/TR<wbr>/SVG<wbr>/paths.html#InterfaceSVGPathSeg</a> for list</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.convertToPath"></a>convertToPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.convertToPath = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>getBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convert selected element to a path, or get the BBox of an element-as-path</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elem</td><td class=CDLDescription>The DOM element to be converted</td></tr><tr><td class=CDLEntry>getBBox</td><td class=CDLDescription>Boolean on whether or not to only return the path&rsquo;s BBox</td></tr></table><h4 class=CHeading>Returns</h4><p>If the getBBox flag is true, the resulting path&rsquo;s bounding box object.&nbsp; Otherwise the resulting path element is returned.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.changeSelectedAttributeNoUndo"></a>changeSelectedAttributeNoUndo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttributeNoUndo = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>newValue,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function makes the changes to the elements.&nbsp; It does not add the change to the history stack.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the attribute name</td></tr><tr><td class=CDLEntry>newValue</td><td class=CDLDescription>String or number with the new attribute value</td></tr><tr><td class=CDLEntry>elems</td><td class=CDLDescription>The DOM elements to apply the change to</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.changeSelectedAttribute"></a>changeSelectedAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttribute = this.changeSelectedAttribute = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument.&nbsp; If you want to change only a subset of selectedElements, then send the subset to this function in the elems argument.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>attr</td><td class=CDLDescription>String with the attribute name</td></tr><tr><td class=CDLEntry>newValue</td><td class=CDLDescription>String or number with the new attribute value</td></tr><tr><td class=CDLEntry>elems</td><td class=CDLDescription>The DOM elements to apply the change to</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.deleteSelectedElements"></a>deleteSelectedElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteSelectedElements = function()</td></tr></table></blockquote><p>Removes all selected elements from the DOM and adds the change to the history stack</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.groupSelectedElements"></a>groupSelectedElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.groupSelectedElements = function()</td></tr></table></blockquote><p>Wraps all the selected elements in a group (g) element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.ungroupSelectedElement"></a>ungroupSelectedElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.ungroupSelectedElement = function()</td></tr></table></blockquote><p>Unwraps all the elements in a selected group (g) element.&nbsp; This requires significant recalculations to apply group&rsquo;s transforms, etc to its children</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.moveToTopSelectedElement"></a>moveToTopSelectedElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.moveToTopSelectedElement = function()</td></tr></table></blockquote><p>Repositions the selected element to the bottom in the DOM to appear on top of other elements</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.moveToBottomSelectedElement"></a>moveToBottomSelectedElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.moveToBottomSelectedElement = function()</td></tr></table></blockquote><p>Repositions the selected element to the top in the DOM to appear under other elements</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.moveSelectedElements"></a>moveSelectedElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedElements = function(</td><td class=PParameter nowrap>dx,</td></tr><tr><td></td><td class=PParameter nowrap>dy,</td></tr><tr><td></td><td class=PParameter nowrap>undoable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves selected elements on the X/Y axis</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dx</td><td class=CDLDescription>Float with the distance to move on the x-axis</td></tr><tr><td class=CDLEntry>dy</td><td class=CDLDescription>Float with the distance to move on the y-axis</td></tr><tr><td class=CDLEntry>undoable</td><td class=CDLDescription>Boolean indicating whether or not the action should be undoable</td></tr></table><h4 class=CHeading>Returns</h4><p>Batch command for the move</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.cloneSelectedElements"></a>cloneSelectedElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.cloneSelectedElements = function()</td></tr></table></blockquote><p>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.alignSelectedElements"></a>alignSelectedElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.alignSelectedElements = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>relative_to</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Aligns selected elements</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>String with single character indicating the alignment type</td></tr><tr><td class=CDLEntry>relative_to</td><td class=CDLDescription>String that must be one of the following: &ldquo;selected&rdquo;, &ldquo;largest&rdquo;, &ldquo;smallest&rdquo;, &ldquo;page&rdquo;</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.Additional_editor_tools"></a>Additional editor tools</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.updateCanvas"></a>updateCanvas</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.updateCanvas = function(</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the editor canvas width/height/position after a zoom has occurred</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>w</td><td class=CDLDescription>Float with the new width</td></tr><tr><td class=CDLEntry>h</td><td class=CDLDescription>Float with the new height</td></tr></table><h4 class=CHeading>Returns</h4><p>Object with the following values:</p><ul><li>x - The canvas&rsquo; new x coordinate</li><li>y - The canvas&rsquo; new y coordinate</li><li>old_x - The canvas&rsquo; old x coordinate</li><li>old_y - The canvas&rsquo; old y coordinate</li><li>d_x - The x position difference</li><li>d_y - The y position difference</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.setBackground"></a>setBackground</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBackground = function(</td><td class=PParameter nowrap>color,</td></tr><tr><td></td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the background of the editor (NOT the actual document)</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>color</td><td class=CDLDescription>String with fill color to apply</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>URL or path to image to use</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="SelectorManager.cycleElement"></a>cycleElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.cycleElement = function(</td><td class=PParameter nowrap>next</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Select the next/previous element within the current layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>next</td><td class=CDLDescription>Boolean where true = next and false = previous element</td></tr></table></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile id=MSelected>SvgCanvas</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Interfaces.html">Interfaces</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option></select></div></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;rectsIntersect&quot;: function(</td><td class=PParameter nowrap>r1,</td></tr><tr><td></td><td class=PParameter nowrap>r2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check if two rectangles (BBoxes objects) intersect each other</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;snapToAngle&quot;: function(</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PParameter nowrap>y2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a 45 degree angle coordinate associated with the two given coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>&quot;text2xml&quot;: function(</td><td class=PParameter nowrap>sXML</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Cross-browser compatible method of converting a string to an XML tree found this function here: http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>convertToNum = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts given values to numbers. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUnitAttr = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets an element&rsquo;s attribute based on the unit in its current value.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.isValidUnit = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check if an attribute&rsquo;s value is in a valid format</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ChangeElementCommand = this.undoCmd.changeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command to make a change to an element. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var InsertElementCommand = this.undoCmd.insertElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command for an element that was added to the DOM</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var RemoveElementCommand = this.undoCmd.removeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command for an element removed from the DOM</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var MoveElementCommand = this.undoCmd.moveElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>oldNextSibling,</td></tr><tr><td></td><td class=PParameter nowrap>oldParent,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command for an element that had its DOM position changed</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var BatchCommand = this.undoCmd.batch = function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command that can contain/execute multiple other commands</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetUndoStack = function()</td></tr></table></blockquote>Resets the undo stack, effectively clearing the undo/redo history</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCommandToHistory = c.undoCmd.add = function(</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a command object to the undo history stack</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.beginUndoableChange = function(</td><td class=PParameter nowrap>attrName,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function tells the canvas to remember the old values of the attrName attribute for each element sent in. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>c.finishUndoableChange = function()</td></tr></table></blockquote>This function returns a BatchCommand object which summarizes the change since beginUndoableChange was called. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function walkTree(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>cbFn</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Walks the tree and executes the callback on each element in a top-down fashion</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function walkTreePost(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>cbFn</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Walks the tree and executes the callback on each element in a depth-first fashion</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var assignAttributes = this.assignAttributes = function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>suspendLength,</td></tr><tr><td></td><td class=PParameter nowrap>unitCheck</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns multiple attributes to an element.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var cleanupElement = this.cleanupElement = function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Remove unneeded (default) attributes, makes resulting SVG smaller</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addSvgElementFromJson = this.addSvgElementFromJson = function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addExtension = function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>ext_func</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Add an extension to the editor</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var shortFloat = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Rounds a given value to a float with number of digits defined in save_options</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getStrokedBBox = this.getStrokedBBox = function(</td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the bounding box for one or more stroked and/or transformed elements</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getVisibleElements = this.getVisibleElements = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>includeBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get all elements that have a BBox (excludes defs, title, etc). </div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var copyElem = function(</td><td class=PParameter nowrap>el</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElem(</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get a DOM element by ID within the SVG root element.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getId = c.getId = function()</td></tr></table></blockquote>Returns the last created DOM element ID string</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNextId = c.getNextId = function()</td></tr></table></blockquote>Creates and returns a unique ID string for a DOM element</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.bind = function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>f</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Attaches a callback function to an event</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.setIdPrefix = function(</td><td class=PParameter nowrap>p</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the ID prefix to the given value</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var sanitizeSvg = this.sanitizeSvg = function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sanitizes the input node and its children It only keeps what is allowed from our whitelist defined above</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getUrlFromAttr = this.getUrlFromAttr = function(</td><td class=PParameter nowrap>attrVal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Extracts the URL from the url(...)</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getBBox = this.getBBox = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the given/selected element&rsquo;s bounding box object, convert it to be more usable when necessary</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ffClone = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hack for Firefox bugs where text element features aren&rsquo;t updated. </div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getPathBBox = function(</td><td class=PParameter nowrap>path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get correct BBox for a path in Webkit Converted from code found here: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getRotationAngle = this.getRotationAngle = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>to_rad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the rotation angle of the given/selected DOM element</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setRotationAngle = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes any old rotations if present, prepends a new rotation at the transformed center</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getTransformList = this.getTransformList = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an object that behaves like a SVGTransformList for the given DOM element</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var recalculateAllSelectedDimensions = this.recalculateAllSelectedDimensions = function()</td></tr></table></blockquote>Runs recalculateDimensions on the selected elements, adding the changes to a single batch command</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var remapElement = this.remapElement = function(</td><td class=PParameter nowrap>selected,</td></tr><tr><td></td><td class=PParameter nowrap>changes,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Applies coordinate changes to an element based on the given matrix</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var recalculateDimensions = this.recalculateDimensions = function(</td><td class=PParameter nowrap>selected</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decides the course of action based on the element&rsquo;s transform list</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformPoint = function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>A (hopefully) quicker function to transform a point by a matrix (this function avoids any DOM calls and just does the math)</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var isIdentity = function(</td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Helper function to check if the matrix performs no actual transform (i.e. </div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var matrixMultiply = this.matrixMultiply = function()</td></tr></table></blockquote>This function tries to return a SVGMatrix that is the multiplication m1*m2. </div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformListToTransform = this.transformListToTransform = function(</td><td class=PParameter nowrap>tlist,</td></tr><tr><td></td><td class=PParameter nowrap>min,</td></tr><tr><td></td><td class=PParameter nowrap>max</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This returns a single matrix Transform for a given Transform List (this is the equivalent of SVGTransformList.consolidate() but unlike that method, this one does not modify the actual SVGTransformList) This function is very liberal with its min,max arguments</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var hasMatrixTransform = this.hasMatrixTransform = function(</td><td class=PParameter nowrap>tlist</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>See if the given transformlist includes a non-indentity matrix transform</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getMatrix = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the matrix object for a given element</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var transformBox = this.transformBox = function(</td><td class=PParameter nowrap>l,</td></tr><tr><td></td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PParameter nowrap>h,</td></tr><tr><td></td><td class=PParameter nowrap>m</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Transforms a rectangle based on the given matrix</div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var clearSelection = this.clearSelection = function(</td><td class=PParameter nowrap>noCall</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addToSelection = this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var removeFromSelection = this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes elements from the selection.</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.selectAllInCurrentLayer = function()</td></tr></table></blockquote>Clears the selection, then adds all elements in the current layer to the selection. </div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var smoothControlPoints = this.smoothControlPoints = function(</td><td class=PParameter nowrap>ct1,</td></tr><tr><td></td><td class=PParameter nowrap>ct2,</td></tr><tr><td></td><td class=PParameter nowrap>pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes three points and creates a smoother line based on them</div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var getMouseTarget = this.getMouseTarget = function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the desired element from a mouse event</div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var preventClickDefault = function(</td><td class=PParameter nowrap>img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Prevents default browser click behaviour on the given element</div></div><div class=CToolTip id="tt56"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var removeUnusedDefElems = this.removeUnusedDefElems = function()</td></tr></table></blockquote>Looks at DOM elements inside the defs to see if they are referred to, removes them from the DOM if they are not.</div></div><div class=CToolTip id="tt57"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var svgCanvasToString = this.svgCanvasToString = function()</td></tr></table></blockquote>Main function to set up the SVG content for output</div></div><div class=CToolTip id="tt58"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var svgToString = this.svgToString = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>indent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sub function ran on each SVG element to convert it to a string as desired</div></div><div class=CToolTip id="tt59"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.embedImage = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a given image file to a data URL when possible, then runs a given callback</div></div><div class=CToolTip id="tt60"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.save = function(</td><td class=PParameter nowrap>opts</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </div></div><div class=CToolTip id="tt61"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.rasterExport = function()</td></tr></table></blockquote>Generates a PNG Data URL based on the current image, then calls &ldquo;exported&rdquo; with an object including the string and any issues found</div></div><div class=CToolTip id="tt62"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote>Returns the current drawing as raw SVG XML text.</div></div><div class=CToolTip id="tt63"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function sets the current drawing as the input SVG XML.</div></div><div class=CToolTip id="tt64"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.importSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function imports the input SVG XML into the current layer in the drawing</div></div><div class=CToolTip id="tt65"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var identifyLayers = function()</td></tr></table></blockquote>Updates layer system</div></div><div class=CToolTip id="tt66"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><div class=CToolTip id="tt67"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><div class=CToolTip id="tt68"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote>Returns the number of layers in the current drawing.</div></div><div class=CToolTip id="tt69"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name of the ith layer. </div></div><div class=CToolTip id="tt70"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote>Returns the name of the currently selected layer. </div></div><div class=CToolTip id="tt71"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the current layer. </div></div><div class=CToolTip id="tt72"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Renames the current layer. </div></div><div class=CToolTip id="tt73"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the position of the current layer to the new value. </div></div><div class=CToolTip id="tt74"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns whether the layer is visible. </div></div><div class=CToolTip id="tt75"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visibility of the layer. </div></div><div class=CToolTip id="tt76"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Moves the selected elements to layername. </div></div><div class=CToolTip id="tt77"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the opacity of the given layer. </div></div><div class=CToolTip id="tt78"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the opacity of the given layer. </div></div><div class=CToolTip id="tt79"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><div class=CToolTip id="tt80"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getContentElem = function()</td></tr></table></blockquote>Returns the content DOM element</div></div><div class=CToolTip id="tt81"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getRootElem = function()</td></tr></table></blockquote>Returns the root DOM element</div></div><div class=CToolTip id="tt82"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSelectedElems = function()</td></tr></table></blockquote>Returns the array with selected DOM elements</div></div><div class=CToolTip id="tt83"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var getResolution = this.getResolution = function()</td></tr></table></blockquote>Returns the current dimensions and zoom level in an object</div></div><div class=CToolTip id="tt84"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getZoom = function()</td></tr></table></blockquote>Returns the current zoom level</div></div><div class=CToolTip id="tt85"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getVersion = function()</td></tr></table></blockquote>Returns a string which describes the revision number of SvgCanvas.</div></div><div class=CToolTip id="tt86"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setUiStrings = function(</td><td class=PParameter nowrap>strs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Update interface strings with given values</div></div><div class=CToolTip id="tt87"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setConfig = function(</td><td class=PParameter nowrap>opts</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Update configuration options with given values</div></div><div class=CToolTip id="tt88"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getDocumentTitle = function()</td></tr></table></blockquote>Returns the current document title or an empty string if not found</div></div><div class=CToolTip id="tt89"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setDocumentTitle = function(</td><td class=PParameter nowrap>newtitle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds/updates a title element for the document with the given name. </div></div><div class=CToolTip id="tt90"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getEditorNS = function(</td><td class=PParameter nowrap>add</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the editor&rsquo;s namespace URL, optionally adds it to root element</div></div><div class=CToolTip id="tt91"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setResolution = function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the document&rsquo;s dimensions to the given size</div></div><div class=CToolTip id="tt92"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getOffset = function()</td></tr></table></blockquote>Returns an object with x, y values indicating the svgcontent element&rsquo;s position in the editor&rsquo;s canvas.</div></div><div class=CToolTip id="tt93"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBBoxZoom = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>editor_w,</td></tr><tr><td></td><td class=PParameter nowrap>editor_h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the zoom level on the canvas-side based on the given value</div></div><div class=CToolTip id="tt94"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setZoom = function(</td><td class=PParameter nowrap>zoomlevel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the zoom to the given level</div></div><div class=CToolTip id="tt95"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getMode = function()</td></tr></table></blockquote>Returns the current editor mode string</div></div><div class=CToolTip id="tt96"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setMode = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the editor&rsquo;s mode to the given string</div></div><div class=CToolTip id="tt97"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getColor = function(</td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the current fill/stroke option</div></div><div class=CToolTip id="tt98"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setColor = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Change the current stroke/fill color/gradient value</div></div><div class=CToolTip id="tt99"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var findDefs = function()</td></tr></table></blockquote>Return the document&rsquo;s defs element, create it first if necessary</div></div><div class=CToolTip id="tt100"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var setGradient = this.setGradient = function(</td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Apply the current gradient to selected element&rsquo;s fill or stroke</div></div><div class=CToolTip id="tt101"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var findDuplicateGradient = function(</td><td class=PParameter nowrap>grad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check if exact gradient already exists</div></div><div class=CToolTip id="tt102"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setPaint = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>paint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set a color/gradient to a fill/stroke</div></div><div class=CToolTip id="tt103"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getStrokeWidth = function()</td></tr></table></blockquote>Returns the current stroke-width value</div></div><div class=CToolTip id="tt104"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setStrokeWidth = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the stroke width for the current selected elements When attempting to set a line&rsquo;s width to 0, this changes it to 1 instead</div></div><div class=CToolTip id="tt105"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setStrokeAttr = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the given stroke-related attribute the given value for selected elements</div></div><div class=CToolTip id="tt106"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getOpacity = function()</td></tr></table></blockquote>Returns the current opacity</div></div><div class=CToolTip id="tt107"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setOpacity = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the given opacity to the current selected elements</div></div><div class=CToolTip id="tt108"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getStrokeOpacity = function()</td></tr></table></blockquote>Returns the current stroke opacity</div></div><div class=CToolTip id="tt109"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setPaintOpacity = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>preventUndo</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the current fill/stroke opacity</div></div><div class=CToolTip id="tt110"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getBlur = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the stdDeviation blur value of the given element</div></div><div class=CToolTip id="tt111"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlurNoUndo = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the stdDeviation blur value on the selected element without being undoable</div></div><div class=CToolTip id="tt112"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlurOffsets = function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>stdDev</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the x, y, with, height values of the filter element in order to make the blur not be clipped. </div></div><div class=CToolTip id="tt113"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>canvas.setBlur = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>complete</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds/updates the blur filter to the selected element</div></div><div class=CToolTip id="tt114"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getBold = function()</td></tr></table></blockquote>Check whether selected element is bold or not</div></div><div class=CToolTip id="tt115"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBold = function(</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Make the selected element bold or normal</div></div><div class=CToolTip id="tt116"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getItalic = function()</td></tr></table></blockquote>Check whether selected element is italic or not</div></div><div class=CToolTip id="tt117"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setItalic = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Make the selected element italic or normal</div></div><div class=CToolTip id="tt118"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getFontFamily = function()</td></tr></table></blockquote>Returns the current font family</div></div><div class=CToolTip id="tt119"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setFontFamily = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the new font family</div></div><div class=CToolTip id="tt120"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getFontSize = function()</td></tr></table></blockquote>Returns the current font size</div></div><div class=CToolTip id="tt121"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setFontSize = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Applies the given font size to the selected element</div></div><div class=CToolTip id="tt122"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getText = function()</td></tr></table></blockquote>Returns the current text (textContent) of the selected element</div></div><div class=CToolTip id="tt123"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setTextContent = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the text element with the given string</div></div><div class=CToolTip id="tt124"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setImageURL = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the new image URL for the selected image element. </div></div><div class=CToolTip id="tt125"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setRectRadius = function(</td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the rx &amp; ry values to the selected rect element to change its corner radius</div></div><div class=CToolTip id="tt126"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSegType = function(</td><td class=PParameter nowrap>new_type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the new segment type to the selected segment(s).</div></div><div class=CToolTip id="tt127"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.convertToPath = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>getBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convert selected element to a path, or get the BBox of an element-as-path</div></div><div class=CToolTip id="tt128"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttributeNoUndo = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>newValue,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function makes the changes to the elements. </div></div><div class=CToolTip id="tt129"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttribute = this.changeSelectedAttribute = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument. </div></div><div class=CToolTip id="tt130"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteSelectedElements = function()</td></tr></table></blockquote>Removes all selected elements from the DOM and adds the change to the history stack</div></div><div class=CToolTip id="tt131"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.groupSelectedElements = function()</td></tr></table></blockquote>Wraps all the selected elements in a group (g) element</div></div><div class=CToolTip id="tt132"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.ungroupSelectedElement = function()</td></tr></table></blockquote>Unwraps all the elements in a selected group (g) element. </div></div><div class=CToolTip id="tt133"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.moveToTopSelectedElement = function()</td></tr></table></blockquote>Repositions the selected element to the bottom in the DOM to appear on top of other elements</div></div><div class=CToolTip id="tt134"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.moveToBottomSelectedElement = function()</td></tr></table></blockquote>Repositions the selected element to the top in the DOM to appear under other elements</div></div><div class=CToolTip id="tt135"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedElements = function(</td><td class=PParameter nowrap>dx,</td></tr><tr><td></td><td class=PParameter nowrap>dy,</td></tr><tr><td></td><td class=PParameter nowrap>undoable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Moves selected elements on the X/Y axis</div></div><div class=CToolTip id="tt136"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.cloneSelectedElements = function()</td></tr></table></blockquote>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</div></div><div class=CToolTip id="tt137"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.alignSelectedElements = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>relative_to</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Aligns selected elements</div></div><div class=CToolTip id="tt138"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.updateCanvas = function(</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the editor canvas width/height/position after a zoom has occurred</div></div><div class=CToolTip id="tt139"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setBackground = function(</td><td class=PParameter nowrap>color,</td></tr><tr><td></td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the background of the editor (NOT the actual document)</div></div><div class=CToolTip id="tt140"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.cycleElement = function(</td><td class=PParameter nowrap>next</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Select the next/previous element within the current layer</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,1 @@
+<html><head><meta http-equiv="Refresh" CONTENT="0; URL=files/svgcanvas-js.html"></head></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/Files.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; <a href="#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; <a href="#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>my_svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/my_svgcanvas-js.html#my_svgcanvas.js"  class=IFile>editor/<wbr>my_svgcanvas.js</a><a href="../files/editor_old/my_svgcanvas-js.html#my_svgcanvas.js"  class=IFile>editor_old/<wbr>my_svgcanvas.js</a></div></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas-latest copy.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js"  class=IFile>editor/<wbr>svgcanvas-latest copy.js</a><a href="../files/editor_old/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js"  class=IFile>editor_old/<wbr>svgcanvas-latest copy.js</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas-mine.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-mine-js.html#svgcanvas-mine.js"  class=IFile>editor/<wbr>svgcanvas-mine.js</a><a href="../files/editor_old/svgcanvas-mine-js.html#svgcanvas-mine.js"  class=IFile>editor_old/<wbr>svgcanvas-mine.js</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas-textanchor-experiment.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js"  class=IFile>editor/<wbr>svgcanvas-textanchor-experiment.js</a><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js"  class=IFile>editor_old/<wbr>svgcanvas-textanchor-experiment.js</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-js.html#svgcanvas.js"  class=IFile>editor/<wbr>svgcanvas.js</a><a href="../files/editor_old/svgcanvas-js.html#svgcanvas.js"  class=IFile>editor_old/<wbr>svgcanvas.js</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas_subpaths.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js"  class=IFile>editor/<wbr>svgcanvas_subpaths.js</a><a href="../files/editor_old/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js"  class=IFile>editor_old/<wbr>svgcanvas_subpaths.js</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>svgcanvas_temp.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_temp-js.html#svgcanvas_temp.js"  class=IFile>editor/<wbr>svgcanvas_temp.js</a><a href="../files/editor_old/svgcanvas_temp-js.html#svgcanvas_temp.js"  class=IFile>editor_old/<wbr>svgcanvas_temp.js</a></div></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/editor/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Editor_old</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/editor_old/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Index</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Files</div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/Functions.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="#F">F</a> &middot; <a href="Functions2.html#G">G</a> &middot; <a href="Functions2.html#H">H</a> &middot; <a href="Functions2.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions2.html#L">L</a> &middot; <a href="Functions2.html#M">M</a> &middot; N &middot; O &middot; <a href="Functions2.html#P">P</a> &middot; Q &middot; <a href="Functions2.html#R">R</a> &middot; <a href="Functions3.html#S">S</a> &middot; <a href="Functions3.html#T">T</a> &middot; <a href="Functions3.html#U">U</a> &middot; V &middot; <a href="Functions3.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.addCommandToHistory" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>addCommandToHistory</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addExtension" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>addExtension</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.addSubCommand" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>addSubCommand</a>, <span class=IParent>SvgCanvas.<wbr>BatchCommand</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addSvgElementFromJson" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>addSvgElementFromJson</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addToSelection" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>addToSelection</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.alignSelectedElements" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>alignSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>apply</span><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.apply" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.apply" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.apply" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.apply" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.assignAttributes" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>assignAttributes</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="B"></a>B</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>BatchCommand</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.beginUndoableChange" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>beginUndoableChange</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.bind" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>bind</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>ChangeElementCommand</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttribute" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>changeSelectedAttribute</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttributeNoUndo" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>changeSelectedAttributeNoUndo</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cleanupElement" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>cleanupElement</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clear" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>clear</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clearSelection" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>clearSelection</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cloneSelectedElements" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>cloneSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.convertToNum" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>convertToNum</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.convertToPath" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>convertToPath</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.convertToXMLReferences" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>convertToXMLReferences</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.copyElem" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>copyElem</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.createLayer" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>createLayer</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cycleElement" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>cycleElement</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.decode64" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>decode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteCurrentLayer" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>deleteCurrentLayer</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteSelectedElements" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>deleteSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>elements</span><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.elements" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.elements" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.elements" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.MoveElementCommand.elements" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=IParent>SvgCanvas.<wbr>MoveElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.elements" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.embedImage" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>embedImage</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.encode64" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>encode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.ffClone" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>ffClone</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDefs" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>findDefs</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDuplicateGradient" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>findDuplicateGradient</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.finishUndoableChange" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>finishUndoableChange</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.fromXml" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>fromXml</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCommandToHistory = c.undoCmd.add = function(</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a command object to the undo history stack</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addExtension = function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>ext_func</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Add an extension to the editor</div></div><div class=CToolTip id="tt3"><div class=CFunction>Adds a given command to the history stack</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addSvgElementFromJson = this.addSvgElementFromJson = function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addToSelection = this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.alignSelectedElements = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>relative_to</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Aligns selected elements</div></div><div class=CToolTip id="tt7"><div class=CFunction>Runs &ldquo;apply&rdquo; on all subcommands</div></div><div class=CToolTip id="tt8"><div class=CFunction>Performs the stored change action</div></div><div class=CToolTip id="tt9"><div class=CFunction>Re-Inserts the new element</div></div><div class=CToolTip id="tt10"><div class=CFunction>Re-removes the new element</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var assignAttributes = this.assignAttributes = function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>suspendLength,</td></tr><tr><td></td><td class=PParameter nowrap>unitCheck</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns multiple attributes to an element.</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var BatchCommand = this.undoCmd.batch = function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command that can contain/execute multiple other commands</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.beginUndoableChange = function(</td><td class=PParameter nowrap>attrName,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function tells the canvas to remember the old values of the attrName attribute for each element sent in. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.bind = function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>f</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Attaches a callback function to an event</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ChangeElementCommand = this.undoCmd.changeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command to make a change to an element. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttribute = this.changeSelectedAttribute = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttributeNoUndo = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>newValue,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function makes the changes to the elements. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var cleanupElement = this.cleanupElement = function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Remove unneeded (default) attributes, makes resulting SVG smaller</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var clearSelection = this.clearSelection = function(</td><td class=PParameter nowrap>noCall</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.cloneSelectedElements = function()</td></tr></table></blockquote>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>convertToNum = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts given values to numbers. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.convertToPath = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>getBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convert selected element to a path, or get the BBox of an element-as-path</div></div><div class=CToolTip id="tt24"><div class=CFunction>Converts a string to use XML references</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var copyElem = function(</td><td class=PParameter nowrap>el</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.cycleElement = function(</td><td class=PParameter nowrap>next</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Select the next/previous element within the current layer</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt28"><div class=CFunction>Converts a string from base64</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteSelectedElements = function()</td></tr></table></blockquote>Removes all selected elements from the DOM and adds the change to the history stack</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt31"><div class=CFunction>Iterate through all our subcommands and returns all the elements we are changing</div></div><div class=CToolTip id="tt32"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt33"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt34"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt35"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.embedImage = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a given image file to a data URL when possible, then runs a given callback</div></div><div class=CToolTip id="tt37"><div class=CFunction>Converts a string to base64</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ffClone = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hack for Firefox bugs where text element features aren&rsquo;t updated. </div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var findDefs = function()</td></tr></table></blockquote>Return the document&rsquo;s defs element, create it first if necessary</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var findDuplicateGradient = function(</td><td class=PParameter nowrap>grad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check if exact gradient already exists</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>c.finishUndoableChange = function()</td></tr></table></blockquote>This function returns a BatchCommand object which summarizes the change since beginUndoableChange was called. </div></div><div class=CToolTip id="tt42"><div class=CFunction>Converts XML entities in a string to single characters. </div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../files/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/svgcanvas-js.html">SvgCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/General.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="#F">F</a> &middot; <a href="General2.html#G">G</a> &middot; <a href="General2.html#H">H</a> &middot; <a href="General2.html#I">I</a> &middot; J &middot; K &middot; <a href="General2.html#L">L</a> &middot; <a href="General2.html#M">M</a> &middot; N &middot; O &middot; <a href="General2.html#P">P</a> &middot; Q &middot; <a href="General2.html#R">R</a> &middot; <a href="General3.html#S">S</a> &middot; <a href="General3.html#T">T</a> &middot; <a href="General3.html#U">U</a> &middot; V &middot; <a href="General3.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.addCommandToHistory" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>addCommandToHistory</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addExtension" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>addExtension</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Additional_editor_tools"  class=ISymbol>Additional editor tools</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.addSubCommand" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>addSubCommand</a>, <span class=IParent>SvgCanvas.<wbr>BatchCommand</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addSvgElementFromJson" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>addSvgElementFromJson</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addToSelection" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>addToSelection</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.alignSelectedElements" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>alignSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>apply</span><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.apply" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.apply" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.apply" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.apply" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.assignAttributes" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>assignAttributes</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="B"></a>B</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>BatchCommand</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.beginUndoableChange" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>beginUndoableChange</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.bind" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>bind</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>ChangeElementCommand</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttribute" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>changeSelectedAttribute</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttributeNoUndo" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>changeSelectedAttributeNoUndo</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cleanupElement" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>cleanupElement</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clear" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>clear</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clearSelection" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>clearSelection</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cloneSelectedElements" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>cloneSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.convertToNum" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>convertToNum</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.convertToPath" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>convertToPath</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.convertToXMLReferences" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>convertToXMLReferences</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.copyElem" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>copyElem</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.createLayer" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>createLayer</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cycleElement" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>cycleElement</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.decode64" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>decode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteCurrentLayer" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>deleteCurrentLayer</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteSelectedElements" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>deleteSelectedElements</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Document_functions"  class=ISymbol>Document functions</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=IHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Element_manipulation"  class=ISymbol>Element manipulation</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Element_Styling"  class=ISymbol>Element Styling</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Element_Transforms"  class=ISymbol>Element Transforms</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>elements</span><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.elements" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.elements" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.elements" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.MoveElementCommand.elements" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=IParent>SvgCanvas.<wbr>MoveElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.elements" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.embedImage" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>embedImage</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.encode64" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>encode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.ffClone" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>ffClone</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDefs" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>findDefs</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDuplicateGradient" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>findDuplicateGradient</a>, <span class=IParent>SelectorManager</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.finishUndoableChange" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>finishUndoableChange</a>, <span class=IParent>SvgCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.fromXml" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>fromXml</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#Selector.Functions"  class=ISymbol>Functions</a>, <span class=IParent>Selector</span></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCommandToHistory = c.undoCmd.add = function(</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a command object to the undo history stack</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addExtension = function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>ext_func</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Add an extension to the editor</div></div><div class=CToolTip id="tt3"><div class=CFunction>Adds a given command to the history stack</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addSvgElementFromJson = this.addSvgElementFromJson = function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new SVG element based on the given object keys/values and add it to the current layer The element will be ran through cleanupElement before being returned</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var addToSelection = this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.alignSelectedElements = function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>relative_to</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Aligns selected elements</div></div><div class=CToolTip id="tt7"><div class=CFunction>Runs &ldquo;apply&rdquo; on all subcommands</div></div><div class=CToolTip id="tt8"><div class=CFunction>Performs the stored change action</div></div><div class=CToolTip id="tt9"><div class=CFunction>Re-Inserts the new element</div></div><div class=CToolTip id="tt10"><div class=CFunction>Re-removes the new element</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var assignAttributes = this.assignAttributes = function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>suspendLength,</td></tr><tr><td></td><td class=PParameter nowrap>unitCheck</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns multiple attributes to an element.</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var BatchCommand = this.undoCmd.batch = function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command that can contain/execute multiple other commands</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.beginUndoableChange = function(</td><td class=PParameter nowrap>attrName,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function tells the canvas to remember the old values of the attrName attribute for each element sent in. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>c.bind = function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>f</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Attaches a callback function to an event</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ChangeElementCommand = this.undoCmd.changeElement = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>attrs,</td></tr><tr><td></td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>History command to make a change to an element. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttribute = this.changeSelectedAttribute = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Change the given/selected element and add the original value to the history stack If you want to change all selectedElements, ignore the elems argument. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var changeSelectedAttributeNoUndo = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>newValue,</td></tr><tr><td></td><td class=PParameter nowrap>elems</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function makes the changes to the elements. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var cleanupElement = this.cleanupElement = function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Remove unneeded (default) attributes, makes resulting SVG smaller</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var clearSelection = this.clearSelection = function(</td><td class=PParameter nowrap>noCall</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.cloneSelectedElements = function()</td></tr></table></blockquote>Create deep DOM copies (clones) of all selected elements and move them slightly from their originals</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>convertToNum = function(</td><td class=PParameter nowrap>attr,</td></tr><tr><td></td><td class=PParameter nowrap>val</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts given values to numbers. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.convertToPath = function(</td><td class=PParameter nowrap>elem,</td></tr><tr><td></td><td class=PParameter nowrap>getBBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convert selected element to a path, or get the BBox of an element-as-path</div></div><div class=CToolTip id="tt24"><div class=CFunction>Converts a string to use XML references</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var copyElem = function(</td><td class=PParameter nowrap>el</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of an element, updating its ID and its children&rsquo;s IDs when needed</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.cycleElement = function(</td><td class=PParameter nowrap>next</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Select the next/previous element within the current layer</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt28"><div class=CFunction>Converts a string from base64</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteSelectedElements = function()</td></tr></table></blockquote>Removes all selected elements from the DOM and adds the change to the history stack</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt31"><div class=CFunction>Iterate through all our subcommands and returns all the elements we are changing</div></div><div class=CToolTip id="tt32"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt33"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt34"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt35"><div class=CFunction>Returns array with element associated with this command</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.embedImage = function(</td><td class=PParameter nowrap>val,</td></tr><tr><td></td><td class=PParameter nowrap>callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a given image file to a data URL when possible, then runs a given callback</div></div><div class=CToolTip id="tt37"><div class=CFunction>Converts a string to base64</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var ffClone = function(</td><td class=PParameter nowrap>elem</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hack for Firefox bugs where text element features aren&rsquo;t updated. </div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>var findDefs = function()</td></tr></table></blockquote>Return the document&rsquo;s defs element, create it first if necessary</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>var findDuplicateGradient = function(</td><td class=PParameter nowrap>grad</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check if exact gradient already exists</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>c.finishUndoableChange = function()</td></tr></table></blockquote>This function returns a BatchCommand object which summarizes the change since beginUndoableChange was called. </div></div><div class=CToolTip id="tt42"><div class=CFunction>Converts XML entities in a string to single characters. </div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../files/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/svgcanvas-js.html">SvgCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/javascript/main.js	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,842 @@
+// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL
+
+
+//
+//  Browser Styles
+// ____________________________________________________________________________
+
+var agt=navigator.userAgent.toLowerCase();
+var browserType;
+var browserVer;
+
+if (agt.indexOf("opera") != -1)
+    {
+    browserType = "Opera";
+
+    if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
+        {  browserVer = "Opera7";  }
+    else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
+        {  browserVer = "Opera8";  }
+    else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
+        {  browserVer = "Opera9";  }
+    }
+
+else if (agt.indexOf("applewebkit") != -1)
+    {
+    browserType = "Safari";
+
+    if (agt.indexOf("version/3") != -1)
+        {  browserVer = "Safari3";  }
+    else if (agt.indexOf("safari/4") != -1)
+        {  browserVer = "Safari2";  }
+    }
+
+else if (agt.indexOf("khtml") != -1)
+    {
+    browserType = "Konqueror";
+    }
+
+else if (agt.indexOf("msie") != -1)
+    {
+    browserType = "IE";
+
+    if (agt.indexOf("msie 6") != -1)
+        {  browserVer = "IE6";  }
+    else if (agt.indexOf("msie 7") != -1)
+        {  browserVer = "IE7";  }
+    }
+
+else if (agt.indexOf("gecko") != -1)
+    {
+    browserType = "Firefox";
+
+    if (agt.indexOf("rv:1.7") != -1)
+        {  browserVer = "Firefox1";  }
+    else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
+        {  browserVer = "Firefox15";  }
+    else if (agt.indexOf("rv:1.8.1") != -1)
+        {  browserVer = "Firefox2";  }
+    }
+
+
+//
+//  Support Functions
+// ____________________________________________________________________________
+
+
+function GetXPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetLeft;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function GetYPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetTop;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function MoveToPosition(item, x, y)
+    {
+    // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
+
+    if (item.style.left != null)
+        {
+        item.style.left = x + "px";
+        item.style.top = y + "px";
+        }
+    else if (item.style.pixelLeft != null)
+        {
+        item.style.pixelLeft = x;
+        item.style.pixelTop = y;
+        };
+    };
+
+
+//
+//  Menu
+// ____________________________________________________________________________
+
+
+function ToggleMenu(id)
+    {
+    if (!window.document.getElementById)
+        {  return;  };
+
+    var display = window.document.getElementById(id).style.display;
+
+    if (display == "none")
+        {  display = "block";  }
+    else
+        {  display = "none";  }
+
+    window.document.getElementById(id).style.display = display;
+    }
+
+function HideAllBut(ids, max)
+    {
+    if (document.getElementById)
+        {
+        ids.sort( function(a,b) { return a - b; } );
+        var number = 1;
+
+        while (number < max)
+            {
+            if (ids.length > 0 && number == ids[0])
+                {  ids.shift();  }
+            else
+                {
+                document.getElementById("MGroupContent" + number).style.display = "none";
+                };
+
+            number++;
+            };
+        };
+    }
+
+
+//
+//  Tooltips
+// ____________________________________________________________________________
+
+
+var tooltipTimer = 0;
+
+function ShowTip(event, tooltipID, linkID)
+    {
+    if (tooltipTimer)
+        {  clearTimeout(tooltipTimer);  };
+
+    var docX = event.clientX + window.pageXOffset;
+    var docY = event.clientY + window.pageYOffset;
+
+    tooltipTimer = setTimeout(function () {
+            ReallyShowTip(tooltipID, linkID, docX, docY);
+        }, 1000);
+    }
+
+function ReallyShowTip(tooltipID, linkID, docX, docY)
+    {
+    tooltipTimer = 0;
+
+    var tooltip;
+    var link;
+
+    if (document.getElementById)
+        {
+        tooltip = document.getElementById(tooltipID);
+        link = document.getElementById(linkID);
+        }
+/*    else if (document.all)
+        {
+        tooltip = document.all[tooltipID]);
+        link = document.all[linkID]);
+        }
+*/
+    if (tooltip)
+        {
+        var left = GetXPosition(link);
+        var top = GetYPosition(link);
+        top += link.offsetHeight;
+
+
+        // The fallback method is to use the mouse X and Y relative to the document.  We use a separate if and test if its a number
+        // in case some browser snuck through the above if statement but didn't support everything.
+
+        if (!isFinite(top) || top == 0)
+            {
+            left = docX;
+            top = docY;
+            }
+
+        // Some spacing to get it out from under the cursor.
+
+        top += 10;
+
+        // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
+        // page.  We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
+
+        if (tooltip.offsetWidth != null)
+            {
+            var width = tooltip.offsetWidth;
+            var docWidth = document.body.clientWidth;
+
+            if (left + width > docWidth)
+                {  left = docWidth - width - 1;  }
+
+            // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
+            if (left < 0)
+                {  left = 0;  };
+            }
+
+        MoveToPosition(tooltip, left, top);
+        tooltip.style.visibility = "visible";
+        }
+    }
+
+function HideTip(tooltipID)
+    {
+    if (tooltipTimer)
+        {
+        clearTimeout(tooltipTimer);
+        tooltipTimer = 0;
+        }
+
+    var tooltip;
+
+    if (document.getElementById)
+        {  tooltip = document.getElementById(tooltipID); }
+    else if (document.all)
+        {  tooltip = document.all[tooltipID];  }
+
+    if (tooltip)
+        {  tooltip.style.visibility = "hidden";  }
+    }
+
+
+//
+//  Blockquote fix for IE
+// ____________________________________________________________________________
+
+
+function NDOnLoad()
+    {
+    if (browserVer == "IE6")
+        {
+        var scrollboxes = document.getElementsByTagName('blockquote');
+
+        if (scrollboxes.item(0))
+            {
+            NDDoResize();
+            window.onresize=NDOnResize;
+            };
+        };
+    };
+
+
+var resizeTimer = 0;
+
+function NDOnResize()
+    {
+    if (resizeTimer != 0)
+        {  clearTimeout(resizeTimer);  };
+
+    resizeTimer = setTimeout(NDDoResize, 250);
+    }
+
+
+function NDDoResize()
+    {
+    var scrollboxes = document.getElementsByTagName('blockquote');
+
+    var i;
+    var item;
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = 100;
+        i++;
+        };
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = item.parentNode.offsetWidth;
+        i++;
+        };
+
+    clearTimeout(resizeTimer);
+    resizeTimer = 0;
+    }
+
+
+
+/* ________________________________________________________________________________________________________
+
+    Class: SearchPanel
+    ________________________________________________________________________________________________________
+
+    A class handling everything associated with the search panel.
+
+    Parameters:
+
+        name - The name of the global variable that will be storing this instance.  Is needed to be able to set timeouts.
+        mode - The mode the search is going to work in.  Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
+                   value will be something like "HTML" or "FramedHTML".
+
+    ________________________________________________________________________________________________________
+*/
+
+
+function SearchPanel(name, mode, resultsPath)
+    {
+    if (!name || !mode || !resultsPath)
+        {  alert("Incorrect parameters to SearchPanel.");  };
+
+
+    // Group: Variables
+    // ________________________________________________________________________
+
+    /*
+        var: name
+        The name of the global variable that will be storing this instance of the class.
+    */
+    this.name = name;
+
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: resultsPath
+        The relative path from the current HTML page to the results page directory.
+    */
+    this.resultsPath = resultsPath;
+
+    /*
+        var: keyTimeout
+        The timeout used between a keystroke and when a search is performed.
+    */
+    this.keyTimeout = 0;
+
+    /*
+        var: keyTimeoutLength
+        The length of <keyTimeout> in thousandths of a second.
+    */
+    this.keyTimeoutLength = 500;
+
+    /*
+        var: lastSearchValue
+        The last search string executed, or an empty string if none.
+    */
+    this.lastSearchValue = "";
+
+    /*
+        var: lastResultsPage
+        The last results page.  The value is only relevant if <lastSearchValue> is set.
+    */
+    this.lastResultsPage = "";
+
+    /*
+        var: deactivateTimeout
+
+        The timeout used between when a control is deactivated and when the entire panel is deactivated.  Is necessary
+        because a control may be deactivated in favor of another control in the same panel, in which case it should stay
+        active.
+    */
+    this.deactivateTimout = 0;
+
+    /*
+        var: deactivateTimeoutLength
+        The length of <deactivateTimeout> in thousandths of a second.
+    */
+    this.deactivateTimeoutLength = 200;
+
+
+
+
+    // Group: DOM Elements
+    // ________________________________________________________________________
+
+
+    // Function: DOMSearchField
+    this.DOMSearchField = function()
+        {  return document.getElementById("MSearchField");  };
+
+    // Function: DOMSearchType
+    this.DOMSearchType = function()
+        {  return document.getElementById("MSearchType");  };
+
+    // Function: DOMPopupSearchResults
+    this.DOMPopupSearchResults = function()
+        {  return document.getElementById("MSearchResults");  };
+
+    // Function: DOMPopupSearchResultsWindow
+    this.DOMPopupSearchResultsWindow = function()
+        {  return document.getElementById("MSearchResultsWindow");  };
+
+    // Function: DOMSearchPanel
+    this.DOMSearchPanel = function()
+        {  return document.getElementById("MSearchPanel");  };
+
+
+
+
+    // Group: Event Handlers
+    // ________________________________________________________________________
+
+
+    /*
+        Function: OnSearchFieldFocus
+        Called when focus is added or removed from the search field.
+    */
+    this.OnSearchFieldFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchFieldChange
+        Called when the content of the search field is changed.
+    */
+    this.OnSearchFieldChange = function()
+        {
+        var t = this;
+        if (this.keyTimeout)
+            {
+            clearTimeout(this.keyTimeout);
+            this.keyTimeout = 0;
+            };
+
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != this.lastSearchValue)
+            {
+            if (searchValue != "")
+                {
+                    this.keyTimeout = setTimeout(function () {
+                        t.name.Search();
+                    }, this.keyTimeoutLength);
+                }
+            else
+                {
+                if (this.mode == "HTML")
+                    {  this.DOMPopupSearchResultsWindow().style.display = "none";  };
+                this.lastSearchValue = "";
+                };
+            };
+        };
+
+
+    /*
+        Function: OnSearchTypeFocus
+        Called when focus is added or removed from the search type.
+    */
+    this.OnSearchTypeFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchTypeChange
+        Called when the search type is changed.
+    */
+    this.OnSearchTypeChange = function()
+        {
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != "")
+            {
+            this.Search();
+            };
+        };
+
+
+
+    // Group: Action Functions
+    // ________________________________________________________________________
+
+
+    /*
+        Function: CloseResultsWindow
+        Closes the results window.
+    */
+    this.CloseResultsWindow = function()
+        {
+        this.DOMPopupSearchResultsWindow().style.display = "none";
+        this.Activate(false, true);
+        };
+
+
+    /*
+        Function: Search
+        Performs a search.
+    */
+    this.Search = function()
+        {
+        this.keyTimeout = 0;
+
+        var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+        var searchTopic = this.DOMSearchType().value;
+
+        var pageExtension = searchValue.substr(0,1);
+
+        if (pageExtension.match(/^[a-z]/i))
+            {  pageExtension = pageExtension.toUpperCase();  }
+        else if (pageExtension.match(/^[0-9]/))
+            {  pageExtension = 'Numbers';  }
+        else
+            {  pageExtension = "Symbols";  };
+
+        var resultsPage;
+        var resultsPageWithSearch;
+        var hasResultsPage;
+
+        // indexSectionsWithContent is defined in searchdata.js
+        if (indexSectionsWithContent[searchTopic][pageExtension] == true)
+            {
+            resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
+            resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+            hasResultsPage = true;
+            }
+        else
+            {
+            resultsPage = this.resultsPath + '/NoResults.html';
+            resultsPageWithSearch = resultsPage;
+            hasResultsPage = false;
+            };
+
+        var resultsFrame;
+        if (this.mode == "HTML")
+            {  resultsFrame = window.frames.MSearchResults;  }
+        else if (this.mode == "FramedHTML")
+            {  resultsFrame = window.top.frames['Content'];  };
+
+
+        if (resultsPage != this.lastResultsPage ||
+
+            // Bug in IE.  If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
+            // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
+            // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
+            // page anyway to get around the bug.
+            (browserType == "IE" && hasResultsPage &&
+            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
+
+            {
+            resultsFrame.location.href = resultsPageWithSearch;
+            }
+
+        // So if the results page is right and there's no IE bug, reperform the search on the existing page.  We have to check if there
+        // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
+        // if it did.
+        else if (hasResultsPage)
+            {
+            // We need to check if this exists in case the frame is present but didn't finish loading.
+            if (resultsFrame.searchResults)
+                {  resultsFrame.searchResults.Search(searchValue);  }
+
+            // Otherwise just reload instead of waiting.
+            else
+                {  resultsFrame.location.href = resultsPageWithSearch;  };
+            };
+
+
+        var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+        if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
+            {
+            var domSearchType = this.DOMSearchType();
+
+            var left = GetXPosition(domSearchType);
+            var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
+
+            MoveToPosition(domPopupSearchResultsWindow, left, top);
+            domPopupSearchResultsWindow.style.display = 'block';
+            };
+
+
+        this.lastSearchValue = searchValue;
+        this.lastResultsPage = resultsPage;
+        };
+
+
+
+    // Group: Activation Functions
+    // Functions that handle whether the entire panel is active or not.
+    // ________________________________________________________________________
+
+
+    /*
+        Function: Activate
+
+        Activates or deactivates the search panel, resetting things to their default values if necessary.  You can call this on every
+        control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
+
+        Parameters:
+
+            isActive - Whether you're activating or deactivating the panel.
+            ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
+    */
+    this.Activate = function(isActive, ignoreDeactivateDelay)
+        {
+        var t = this;
+        // We want to ignore isActive being false while the results window is open.
+        if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
+            {
+            if (this.inactivateTimeout)
+                {
+                clearTimeout(this.inactivateTimeout);
+                this.inactivateTimeout = 0;
+                };
+
+            this.DOMSearchPanel().className = 'MSearchPanelActive';
+
+            var searchField = this.DOMSearchField();
+
+            if (searchField.value == 'Search')
+                 {  searchField.value = "";  }
+            }
+        else if (!ignoreDeactivateDelay)
+            {
+                this.inactivateTimeout = setTimeout(function () {
+                    t.name.InactivateAfterTimeout();
+                }, this.inactivateTimeoutLength);
+            }
+        else
+            {
+            this.InactivateAfterTimeout();
+            };
+        };
+
+
+    /*
+        Function: InactivateAfterTimeout
+
+        Called by <inactivateTimeout>, which is set by <Activate()>.  Inactivation occurs on a timeout because a control may
+        receive OnBlur() when focus is really transferring to another control in the search panel.  In this case we don't want to
+        actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
+        So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
+    */
+    this.InactivateAfterTimeout = function()
+        {
+        this.inactivateTimeout = 0;
+
+        this.DOMSearchPanel().className = 'MSearchPanelInactive';
+        this.DOMSearchField().value = "Search";
+
+	    this.lastSearchValue = "";
+	    this.lastResultsPage = "";
+        };
+    };
+
+
+
+
+/* ________________________________________________________________________________________________________
+
+   Class: SearchResults
+   _________________________________________________________________________________________________________
+
+   The class that handles everything on the search results page.
+   _________________________________________________________________________________________________________
+*/
+
+
+function SearchResults(name, mode)
+    {
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: lastMatchCount
+        The number of matches from the last run of <Search()>.
+    */
+    this.lastMatchCount = 0;
+
+
+    /*
+        Function: Toggle
+        Toggles the visibility of the passed element ID.
+    */
+    this.Toggle = function(id)
+        {
+        if (this.mode == "FramedHTML")
+            {  return;  };
+
+        var parentElement = document.getElementById(id);
+
+        var element = parentElement.firstChild;
+
+        while (element && element != parentElement)
+            {
+            if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
+                {
+                if (element.style.display == 'block')
+                    {  element.style.display = "none";  }
+                else
+                    {  element.style.display = 'block';  }
+                };
+
+            if (element.nodeName == 'DIV' && element.hasChildNodes())
+                {  element = element.firstChild;  }
+            else if (element.nextSibling)
+                {  element = element.nextSibling;  }
+            else
+                {
+                do
+                    {
+                    element = element.parentNode;
+                    }
+                while (element && element != parentElement && !element.nextSibling);
+
+                if (element && element != parentElement)
+                    {  element = element.nextSibling;  };
+                };
+            };
+        };
+
+
+    /*
+        Function: Search
+
+        Searches for the passed string.  If there is no parameter, it takes it from the URL query.
+
+        Always returns true, since other documents may try to call it and that may or may not be possible.
+    */
+    this.Search = function(search)
+        {
+        if (!search)
+            {
+            search = window.location.search;
+            search = search.substring(1);  // Remove the leading ?
+            search = unescape(search);
+            };
+
+        search = search.replace(/^ +/, "");
+        search = search.replace(/ +$/, "");
+        search = search.toLowerCase();
+
+        if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
+            {
+            search = search.replace(/\_/g, "_und");
+            search = search.replace(/\ +/gi, "_spc");
+            search = search.replace(/\~/g, "_til");
+            search = search.replace(/\!/g, "_exc");
+            search = search.replace(/\@/g, "_att");
+            search = search.replace(/\#/g, "_num");
+            search = search.replace(/\$/g, "_dol");
+            search = search.replace(/\%/g, "_pct");
+            search = search.replace(/\^/g, "_car");
+            search = search.replace(/\&/g, "_amp");
+            search = search.replace(/\*/g, "_ast");
+            search = search.replace(/\(/g, "_lpa");
+            search = search.replace(/\)/g, "_rpa");
+            search = search.replace(/\-/g, "_min");
+            search = search.replace(/\+/g, "_plu");
+            search = search.replace(/\=/g, "_equ");
+            search = search.replace(/\{/g, "_lbc");
+            search = search.replace(/\}/g, "_rbc");
+            search = search.replace(/\[/g, "_lbk");
+            search = search.replace(/\]/g, "_rbk");
+            search = search.replace(/\:/g, "_col");
+            search = search.replace(/\;/g, "_sco");
+            search = search.replace(/\"/g, "_quo");
+            search = search.replace(/\'/g, "_apo");
+            search = search.replace(/\</g, "_lan");
+            search = search.replace(/\>/g, "_ran");
+            search = search.replace(/\,/g, "_com");
+            search = search.replace(/\./g, "_per");
+            search = search.replace(/\?/g, "_que");
+            search = search.replace(/\//g, "_sla");
+            search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
+            };
+
+        var resultRows = document.getElementsByTagName("div");
+        var matches = 0;
+
+        var i = 0;
+        while (i < resultRows.length)
+            {
+            var row = resultRows.item(i);
+
+            if (row.className == "SRResult")
+                {
+                var rowMatchName = row.id.toLowerCase();
+                rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
+
+                if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
+                    {
+                    row.style.display = "block";
+                    matches++;
+                    }
+                else
+                    {  row.style.display = "none";  };
+                };
+
+            i++;
+            };
+
+        document.getElementById("Searching").style.display="none";
+
+        if (matches == 0)
+            {  document.getElementById("NoMatches").style.display="block";  }
+        else
+            {  document.getElementById("NoMatches").style.display="none";  }
+
+        this.lastMatchCount = matches;
+
+        return true;
+        };
+    };
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/javascript/searchdata.js	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,122 @@
+var indexSectionsWithContent = {
+   "General": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": true,
+      "B": false,
+      "C": true,
+      "D": true,
+      "E": false,
+      "F": true,
+      "G": true,
+      "H": true,
+      "I": true,
+      "J": false,
+      "K": false,
+      "L": true,
+      "M": true,
+      "N": false,
+      "O": true,
+      "P": false,
+      "Q": false,
+      "R": true,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Functions": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": true,
+      "B": true,
+      "C": true,
+      "D": true,
+      "E": true,
+      "F": true,
+      "G": true,
+      "H": true,
+      "I": true,
+      "J": false,
+      "K": false,
+      "L": true,
+      "M": true,
+      "N": false,
+      "O": false,
+      "P": true,
+      "Q": false,
+      "R": true,
+      "S": true,
+      "T": true,
+      "U": true,
+      "V": false,
+      "W": true,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Interfaces": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": false,
+      "D": false,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Classes": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": false,
+      "D": false,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      }
+   }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FilesS.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_svgcanvas_minlatest_spccopy_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_minlatest_spccopy_perjs')" class=ISymbol>svgcanvas-latest copy.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" target=_parent class=IFile>editor/<wbr>svgcanvas-latest copy.js</a><a href="../files/editor_old/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-latest copy.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_minmine_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_minmine_perjs')" class=ISymbol>svgcanvas-mine.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-mine-js.html#svgcanvas-mine.js" target=_parent class=IFile>editor/<wbr>svgcanvas-mine.js</a><a href="../files/editor_old/svgcanvas-mine-js.html#svgcanvas-mine.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-mine.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_mintextanchor_minexperiment_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_mintextanchor_minexperiment_perjs')" class=ISymbol>svgcanvas-textanchor-experiment.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" target=_parent class=IFile>editor/<wbr>svgcanvas-textanchor-experiment.js</a><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-textanchor-experiment.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_perjs')" class=ISymbol>svgcanvas.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-js.html#svgcanvas.js" target=_parent class=IFile>editor/<wbr>svgcanvas.js</a><a href="../files/editor_old/svgcanvas-js.html#svgcanvas.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_undsubpaths_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_undsubpaths_perjs')" class=ISymbol>svgcanvas_subpaths.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" target=_parent class=IFile>editor/<wbr>svgcanvas_subpaths.js</a><a href="../files/editor_old/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas_subpaths.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_undtemp_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_undtemp_perjs')" class=ISymbol>svgcanvas_temp.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas_temp-js.html#svgcanvas_temp.js" target=_parent class=IFile>editor/<wbr>svgcanvas_temp.js</a><a href="../files/editor_old/svgcanvas_temp-js.html#svgcanvas_temp.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas_temp.js</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsA.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_addCommandToHistory><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.addCommandToHistory" target=_parent class=ISymbol>addCommandToHistory</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_addExtension><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addExtension" target=_parent class=ISymbol>addExtension</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addSubCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.addSubCommand" target=_parent class=ISymbol>addSubCommand</a>, <span class=IParent>SvgCanvas.<wbr>BatchCommand</span></div></div><div class=SRResult id=SR_addSvgElementFromJson><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addSvgElementFromJson" target=_parent class=ISymbol>addSvgElementFromJson</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addToSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addToSelection" target=_parent class=ISymbol>addToSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_alignSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.alignSelectedElements" target=_parent class=ISymbol>alignSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></div></div><div class=SRResult id=SR_assignAttributes><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.assignAttributes" target=_parent class=ISymbol>assignAttributes</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsC.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ChangeElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand" target=_parent class=ISymbol>ChangeElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_changeSelectedAttribute><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttribute" target=_parent class=ISymbol>changeSelectedAttribute</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_changeSelectedAttributeNoUndo><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttributeNoUndo" target=_parent class=ISymbol>changeSelectedAttributeNoUndo</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cleanupElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cleanupElement" target=_parent class=ISymbol>cleanupElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clear" target=_parent class=ISymbol>clear</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clearSelection" target=_parent class=ISymbol>clearSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cloneSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cloneSelectedElements" target=_parent class=ISymbol>cloneSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToNum><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.convertToNum" target=_parent class=ISymbol>convertToNum</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_convertToPath><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.convertToPath" target=_parent class=ISymbol>convertToPath</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToXMLReferences><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.convertToXMLReferences" target=_parent class=ISymbol>convertToXMLReferences</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_copyElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.copyElem" target=_parent class=ISymbol>copyElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_createLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.createLayer" target=_parent class=ISymbol>createLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cycleElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cycleElement" target=_parent class=ISymbol>cycleElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsD.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_decode64><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.decode64" target=_parent class=ISymbol>decode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_deleteCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteCurrentLayer" target=_parent class=ISymbol>deleteCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_deleteSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteSelectedElements" target=_parent class=ISymbol>deleteSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsG.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_getBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBBox" target=_parent class=ISymbol>getBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getBlur><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBlur" target=_parent class=ISymbol>getBlur</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getBold><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBold" target=_parent class=ISymbol>getBold</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getContentElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getContentElem" target=_parent class=ISymbol>getContentElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getCurrentLayer" target=_parent class=ISymbol>getCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getDocumentTitle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getDocumentTitle" target=_parent class=ISymbol>getDocumentTitle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getEditorNS><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getEditorNS" target=_parent class=ISymbol>getEditorNS</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getElem" target=_parent class=ISymbol>getElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getFontFamily><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getFontFamily" target=_parent class=ISymbol>getFontFamily</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getFontSize><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getFontSize" target=_parent class=ISymbol>getFontSize</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getId" target=_parent class=ISymbol>getId</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getItalic><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getItalic" target=_parent class=ISymbol>getItalic</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayer" target=_parent class=ISymbol>getLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayerOpacity" target=_parent class=ISymbol>getLayerOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayerVisibility" target=_parent class=ISymbol>getLayerVisibility</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMatrix><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMatrix" target=_parent class=ISymbol>getMatrix</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMode><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMode" target=_parent class=ISymbol>getMode</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMouseTarget><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMouseTarget" target=_parent class=ISymbol>getMouseTarget</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getNextId><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getNextId" target=_parent class=ISymbol>getNextId</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getNextRedoCommandText><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getNextRedoCommandText" target=_parent class=ISymbol>getNextRedoCommandText</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getNextUndoCommandText><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getNextUndoCommandText" target=_parent class=ISymbol>getNextUndoCommandText</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getNumLayers><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getNumLayers" target=_parent class=ISymbol>getNumLayers</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getOffset><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getOffset" target=_parent class=ISymbol>getOffset</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getOpacity" target=_parent class=ISymbol>getOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getPathBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getPathBBox" target=_parent class=ISymbol>getPathBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRedoStackSize><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getRedoStackSize" target=_parent class=ISymbol>getRedoStackSize</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getResolution><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getResolution" target=_parent class=ISymbol>getResolution</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRootElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getRootElem" target=_parent class=ISymbol>getRootElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRotationAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getRotationAngle" target=_parent class=ISymbol>getRotationAngle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRubberBandBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.getRubberBandBox" target=_parent class=ISymbol>getRubberBandBox</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_getSelectedElems><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getSelectedElems" target=_parent class=ISymbol>getSelectedElems</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokedBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokedBBox" target=_parent class=ISymbol>getStrokedBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokeOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokeOpacity" target=_parent class=ISymbol>getStrokeOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokeWidth><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokeWidth" target=_parent class=ISymbol>getStrokeWidth</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getSvgString" target=_parent class=ISymbol>getSvgString</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getText><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getText" target=_parent class=ISymbol>getText</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getTransformList><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getTransformList" target=_parent class=ISymbol>getTransformList</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getUndoStackSize><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getUndoStackSize" target=_parent class=ISymbol>getUndoStackSize</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getUrlFromAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getUrlFromAttr" target=_parent class=ISymbol>getUrlFromAttr</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getVersion><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getVersion" target=_parent class=ISymbol>getVersion</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getVisibleElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getVisibleElements" target=_parent class=ISymbol>getVisibleElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getZoom" target=_parent class=ISymbol>getZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_groupSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.groupSelectedElements" target=_parent class=ISymbol>groupSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsM.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_matrixMultiply><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.matrixMultiply" target=_parent class=ISymbol>matrixMultiply</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_MoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.MoveElementCommand" target=_parent class=ISymbol>MoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_moveSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedElements" target=_parent class=ISymbol>moveSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveSelectedToLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedToLayer" target=_parent class=ISymbol>moveSelectedToLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToBottomSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToBottomSelectedElement" target=_parent class=ISymbol>moveToBottomSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToTopSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToTopSelectedElement" target=_parent class=ISymbol>moveToTopSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsO.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_open><div class=IEntry><a href="../files/svgcanvas-js.html#open" target=_parent class=ISymbol>open</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsR.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rasterExport><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.rasterExport" target=_parent class=ISymbol>rasterExport</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateAllSelectedDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateAllSelectedDimensions" target=_parent class=ISymbol>recalculateAllSelectedDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateDimensions" target=_parent class=ISymbol>recalculateDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_rectsIntersect><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.rectsIntersect" target=_parent class=ISymbol>rectsIntersect</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_redo><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.redo" target=_parent class=ISymbol>redo</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_releaseSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.releaseSelector" target=_parent class=ISymbol>releaseSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_remapElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.remapElement" target=_parent class=ISymbol>remapElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_RemoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand" target=_parent class=ISymbol>RemoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_removeFromSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeFromSelection" target=_parent class=ISymbol>removeFromSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_removeUnusedDefElems><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeUnusedDefElems" target=_parent class=ISymbol>removeUnusedDefElems</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_renameCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.renameCurrentLayer" target=_parent class=ISymbol>renameCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_requestSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.requestSelector" target=_parent class=ISymbol>requestSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_reset><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.reset" target=_parent class=ISymbol>reset</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div><div class=SRResult id=SR_resetUndoStack><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.resetUndoStack" target=_parent class=ISymbol>resetUndoStack</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_resize><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.resize" target=_parent class=ISymbol>resize</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsS.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_sanitizeSvg><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.sanitizeSvg" target=_parent class=ISymbol>sanitizeSvg</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.save" target=_parent class=ISymbol>save</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_selectAllInCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.selectAllInCurrentLayer" target=_parent class=ISymbol>selectAllInCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBackground><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBackground" target=_parent class=ISymbol>setBackground</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBBoxZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBBoxZoom" target=_parent class=ISymbol>setBBoxZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlur><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlur" target=_parent class=ISymbol>setBlur</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlurNoUndo><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlurNoUndo" target=_parent class=ISymbol>setBlurNoUndo</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlurOffsets><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlurOffsets" target=_parent class=ISymbol>setBlurOffsets</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBold><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBold" target=_parent class=ISymbol>setBold</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setColor><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setColor" target=_parent class=ISymbol>setColor</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setConfig><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setConfig" target=_parent class=ISymbol>setConfig</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setCurrentLayer" target=_parent class=ISymbol>setCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setCurrentLayerPosition><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setCurrentLayerPosition" target=_parent class=ISymbol>setCurrentLayerPosition</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setDocumentTitle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setDocumentTitle" target=_parent class=ISymbol>setDocumentTitle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setFontFamily><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setFontFamily" target=_parent class=ISymbol>setFontFamily</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setFontSize><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setFontSize" target=_parent class=ISymbol>setFontSize</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setForeignString_lpaxmlString_comelt_rpa><div class=IEntry><a href="../files/extensions/ext-foreignobject-js.html#setForeignString(xmlString,elt)" target=_parent class=ISymbol>setForeignString(xmlString,elt)</a></div></div><div class=SRResult id=SR_setGradient><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setGradient" target=_parent class=ISymbol>setGradient</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setIdPrefix><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setIdPrefix" target=_parent class=ISymbol>setIdPrefix</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setImageURL><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setImageURL" target=_parent class=ISymbol>setImageURL</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setItalic><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setItalic" target=_parent class=ISymbol>setItalic</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setLayerOpacity" target=_parent class=ISymbol>setLayerOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setLayerVisibility" target=_parent class=ISymbol>setLayerVisibility</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setMode><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setMode" target=_parent class=ISymbol>setMode</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setOpacity" target=_parent class=ISymbol>setOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setPaint><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setPaint" target=_parent class=ISymbol>setPaint</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setPaintOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setPaintOpacity" target=_parent class=ISymbol>setPaintOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setRectRadius><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setRectRadius" target=_parent class=ISymbol>setRectRadius</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setResolution><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setResolution" target=_parent class=ISymbol>setResolution</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setRotationAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setRotationAngle" target=_parent class=ISymbol>setRotationAngle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setSegType><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setSegType" target=_parent class=ISymbol>setSegType</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setStrokeAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setStrokeAttr" target=_parent class=ISymbol>setStrokeAttr</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setStrokeWidth><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setStrokeWidth" target=_parent class=ISymbol>setStrokeWidth</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setSvgString" target=_parent class=ISymbol>setSvgString</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setTextContent><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setTextContent" target=_parent class=ISymbol>setTextContent</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setUiStrings><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setUiStrings" target=_parent class=ISymbol>setUiStrings</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setUnitAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.setUnitAttr" target=_parent class=ISymbol>setUnitAttr</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_setZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setZoom" target=_parent class=ISymbol>setZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_shortFloat><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.shortFloat" target=_parent class=ISymbol>shortFloat</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_showGrips><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.showGrips" target=_parent class=ISymbol>showGrips</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div><div class=SRResult id=SR_smoothControlPoints><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.smoothControlPoints" target=_parent class=ISymbol>smoothControlPoints</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_snapToAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.snapToAngle" target=_parent class=ISymbol>snapToAngle</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_svgCanvasToString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.svgCanvasToString" target=_parent class=ISymbol>svgCanvasToString</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_svgToString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.svgToString" target=_parent class=ISymbol>svgToString</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralA.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_addCommandToHistory><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.addCommandToHistory" target=_parent class=ISymbol>addCommandToHistory</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_addExtension><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addExtension" target=_parent class=ISymbol>addExtension</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_Additional_spceditor_spctools><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Additional_editor_tools" target=_parent class=ISymbol>Additional editor tools</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addSubCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.addSubCommand" target=_parent class=ISymbol>addSubCommand</a>, <span class=IParent>SvgCanvas.<wbr>BatchCommand</span></div></div><div class=SRResult id=SR_addSvgElementFromJson><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addSvgElementFromJson" target=_parent class=ISymbol>addSvgElementFromJson</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addToSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addToSelection" target=_parent class=ISymbol>addToSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_alignSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.alignSelectedElements" target=_parent class=ISymbol>alignSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></div></div><div class=SRResult id=SR_assignAttributes><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.assignAttributes" target=_parent class=ISymbol>assignAttributes</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralC.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ChangeElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand" target=_parent class=ISymbol>ChangeElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_changeSelectedAttribute><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttribute" target=_parent class=ISymbol>changeSelectedAttribute</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_changeSelectedAttributeNoUndo><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttributeNoUndo" target=_parent class=ISymbol>changeSelectedAttributeNoUndo</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cleanupElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cleanupElement" target=_parent class=ISymbol>cleanupElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clear" target=_parent class=ISymbol>clear</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clearSelection" target=_parent class=ISymbol>clearSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cloneSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cloneSelectedElements" target=_parent class=ISymbol>cloneSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToNum><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.convertToNum" target=_parent class=ISymbol>convertToNum</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_convertToPath><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.convertToPath" target=_parent class=ISymbol>convertToPath</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToXMLReferences><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.convertToXMLReferences" target=_parent class=ISymbol>convertToXMLReferences</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_copyElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.copyElem" target=_parent class=ISymbol>copyElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_createLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.createLayer" target=_parent class=ISymbol>createLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cycleElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cycleElement" target=_parent class=ISymbol>cycleElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralD.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_decode64><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.decode64" target=_parent class=ISymbol>decode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_deleteCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteCurrentLayer" target=_parent class=ISymbol>deleteCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_deleteSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteSelectedElements" target=_parent class=ISymbol>deleteSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_Document_spcfunctions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Document_functions" target=_parent class=ISymbol>Document functions</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralF.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ffClone><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.ffClone" target=_parent class=ISymbol>ffClone</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_findDefs><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDefs" target=_parent class=ISymbol>findDefs</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_findDuplicateGradient><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.findDuplicateGradient" target=_parent class=ISymbol>findDuplicateGradient</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_finishUndoableChange><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.finishUndoableChange" target=_parent class=ISymbol>finishUndoableChange</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_fromXml><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.fromXml" target=_parent class=ISymbol>fromXml</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_Functions><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Functions" target=_parent class=ISymbol>Functions</a>, <span class=IParent>Selector</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralG.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_getBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBBox" target=_parent class=ISymbol>getBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getBlur><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBlur" target=_parent class=ISymbol>getBlur</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getBold><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getBold" target=_parent class=ISymbol>getBold</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getContentElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getContentElem" target=_parent class=ISymbol>getContentElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getCurrentLayer" target=_parent class=ISymbol>getCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getDocumentTitle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getDocumentTitle" target=_parent class=ISymbol>getDocumentTitle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getEditorNS><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getEditorNS" target=_parent class=ISymbol>getEditorNS</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getElem" target=_parent class=ISymbol>getElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getFontFamily><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getFontFamily" target=_parent class=ISymbol>getFontFamily</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getFontSize><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getFontSize" target=_parent class=ISymbol>getFontSize</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getId" target=_parent class=ISymbol>getId</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getItalic><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getItalic" target=_parent class=ISymbol>getItalic</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayer" target=_parent class=ISymbol>getLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayerOpacity" target=_parent class=ISymbol>getLayerOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getLayerVisibility" target=_parent class=ISymbol>getLayerVisibility</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMatrix><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMatrix" target=_parent class=ISymbol>getMatrix</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMode><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMode" target=_parent class=ISymbol>getMode</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getMouseTarget><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getMouseTarget" target=_parent class=ISymbol>getMouseTarget</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getNextId><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getNextId" target=_parent class=ISymbol>getNextId</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getNextRedoCommandText><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getNextRedoCommandText" target=_parent class=ISymbol>getNextRedoCommandText</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getNextUndoCommandText><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getNextUndoCommandText" target=_parent class=ISymbol>getNextUndoCommandText</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getNumLayers><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getNumLayers" target=_parent class=ISymbol>getNumLayers</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getOffset><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getOffset" target=_parent class=ISymbol>getOffset</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getOpacity" target=_parent class=ISymbol>getOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getPathBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getPathBBox" target=_parent class=ISymbol>getPathBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRedoStackSize><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getRedoStackSize" target=_parent class=ISymbol>getRedoStackSize</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getResolution><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getResolution" target=_parent class=ISymbol>getResolution</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRootElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getRootElem" target=_parent class=ISymbol>getRootElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRotationAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getRotationAngle" target=_parent class=ISymbol>getRotationAngle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getRubberBandBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.getRubberBandBox" target=_parent class=ISymbol>getRubberBandBox</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_getSelectedElems><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getSelectedElems" target=_parent class=ISymbol>getSelectedElems</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokedBBox><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokedBBox" target=_parent class=ISymbol>getStrokedBBox</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokeOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokeOpacity" target=_parent class=ISymbol>getStrokeOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getStrokeWidth><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getStrokeWidth" target=_parent class=ISymbol>getStrokeWidth</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getSvgString" target=_parent class=ISymbol>getSvgString</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getText><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getText" target=_parent class=ISymbol>getText</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getTransformList><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getTransformList" target=_parent class=ISymbol>getTransformList</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getUndoStackSize><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.getUndoStackSize" target=_parent class=ISymbol>getUndoStackSize</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_getUrlFromAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getUrlFromAttr" target=_parent class=ISymbol>getUrlFromAttr</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getVersion><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getVersion" target=_parent class=ISymbol>getVersion</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getVisibleElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getVisibleElements" target=_parent class=ISymbol>getVisibleElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_getZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.getZoom" target=_parent class=ISymbol>getZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_groupSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.groupSelectedElements" target=_parent class=ISymbol>groupSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralL.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layers><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Layers" target=_parent class=ISymbol>Layers</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_linkControlPoints><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.linkControlPoints" target=_parent class=ISymbol>linkControlPoints</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralM.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_matrixMultiply><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.matrixMultiply" target=_parent class=ISymbol>matrixMultiply</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_MoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.MoveElementCommand" target=_parent class=ISymbol>MoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_moveSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedElements" target=_parent class=ISymbol>moveSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveSelectedToLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedToLayer" target=_parent class=ISymbol>moveSelectedToLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToBottomSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToBottomSelectedElement" target=_parent class=ISymbol>moveToBottomSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToTopSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToTopSelectedElement" target=_parent class=ISymbol>moveToTopSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralO.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_open><div class=IEntry><a href="../files/svgcanvas-js.html#open" target=_parent class=ISymbol>open</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralR.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rasterExport><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.rasterExport" target=_parent class=ISymbol>rasterExport</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateAllSelectedDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateAllSelectedDimensions" target=_parent class=ISymbol>recalculateAllSelectedDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateDimensions" target=_parent class=ISymbol>recalculateDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_rectsIntersect><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.rectsIntersect" target=_parent class=ISymbol>rectsIntersect</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_redo><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.redo" target=_parent class=ISymbol>redo</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_releaseSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.releaseSelector" target=_parent class=ISymbol>releaseSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_remapElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.remapElement" target=_parent class=ISymbol>remapElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_RemoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand" target=_parent class=ISymbol>RemoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_removeFromSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeFromSelection" target=_parent class=ISymbol>removeFromSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_removeUnusedDefElems><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeUnusedDefElems" target=_parent class=ISymbol>removeUnusedDefElems</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_renameCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.renameCurrentLayer" target=_parent class=ISymbol>renameCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_requestSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.requestSelector" target=_parent class=ISymbol>requestSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_reset><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.reset" target=_parent class=ISymbol>reset</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div><div class=SRResult id=SR_resetUndoStack><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.resetUndoStack" target=_parent class=ISymbol>resetUndoStack</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_resize><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.resize" target=_parent class=ISymbol>resize</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralS.html	Thu Feb 05 16:37:37 2015 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_sanitizeSvg><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.sanitizeSvg" target=_parent class=ISymbol>sanitizeSvg</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.save" target=_parent class=ISymbol>save</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_selectAllInCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.selectAllInCurrentLayer" target=_parent class=ISymbol>selectAllInCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_Selection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Selection" target=_parent class=ISymbol>Selection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_Selector><div class=IEntry><a href="../files/svgcanvas-js.html#Selector" target=_parent class=ISymbol>Selector</a></div></div><div class=SRResult id=SR_SelectorManager><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager" target=_parent class=ISymbol>SelectorManager</a></div></div><div class=SRResult id=SR_Serialization><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.Serialization" target=_parent class=ISymbol>Serialization</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBackground><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBackground" target=_parent class=ISymbol>setBackground</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBBoxZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBBoxZoom" target=_parent class=ISymbol>setBBoxZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlur><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlur" target=_parent class=ISymbol>setBlur</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlurNoUndo><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlurNoUndo" target=_parent class=ISymbol>setBlurNoUndo</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBlurOffsets><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBlurOffsets" target=_parent class=ISymbol>setBlurOffsets</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setBold><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setBold" target=_parent class=ISymbol>setBold</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setColor><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setColor" target=_parent class=ISymbol>setColor</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setConfig><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setConfig" target=_parent class=ISymbol>setConfig</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setCurrentLayer" target=_parent class=ISymbol>setCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setCurrentLayerPosition><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setCurrentLayerPosition" target=_parent class=ISymbol>setCurrentLayerPosition</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setDocumentTitle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setDocumentTitle" target=_parent class=ISymbol>setDocumentTitle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setFontFamily><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setFontFamily" target=_parent class=ISymbol>setFontFamily</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setFontSize><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setFontSize" target=_parent class=ISymbol>setFontSize</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setForeignString_lpaxmlString_comelt_rpa><div class=IEntry><a href="../files/extensions/ext-foreignobject-js.html#setForeignString(xmlString,elt)" target=_parent class=ISymbol>setForeignString(xmlString,elt)</a></div></div><div class=SRResult id=SR_setGradient><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setGradient" target=_parent class=ISymbol>setGradient</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setIdPrefix><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setIdPrefix" target=_parent class=ISymbol>setIdPrefix</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setImageURL><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setImageURL" target=_parent class=ISymbol>setImageURL</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setItalic><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setItalic" target=_parent class=ISymbol>setItalic</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setLayerOpacity" target=_parent class=ISymbol>setLayerOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setLayerVisibility" target=_parent class=ISymbol>setLayerVisibility</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setMode><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setMode" target=_parent class=ISymbol>setMode</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setOpacity" target=_parent class=ISymbol>setOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setPaint><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setPaint" target=_parent class=ISymbol>setPaint</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setPaintOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setPaintOpacity" target=_parent class=ISymbol>setPaintOpacity</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setRectRadius><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setRectRadius" target=_parent class=ISymbol>setRectRadius</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setResolution><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setResolution" target=_parent class=ISymbol>setResolution</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setRotationAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setRotationAngle" target=_parent class=ISymbol>setRotationAngle</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setSegType><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setSegType" target=_parent class=ISymbol>setSegType</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setStrokeAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setStrokeAttr" target=_parent class=ISymbol>setStrokeAttr</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setStrokeWidth><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setStrokeWidth" target=_parent class=ISymbol>setStrokeWidth</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setSvgString" target=_parent class=ISymbol>setSvgString</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setTextContent><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setTextContent" target=_parent class=ISymbol>setTextContent</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setUiStrings><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setUiStrings" target=_parent class=ISymbol>setUiStrings</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_setUnitAttr><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.setUnitAttr" target=_parent class=ISymbol>setUnitAttr</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_setZoom><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.setZoom" target=_parent class=ISymbol>setZoom</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_shortFloat><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.shortFloat" target=_parent class=ISymbol>shortFloat</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_showGrips><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.showGrips" target=_parent class=ISymbol>showGrips</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div><div class=SRResult id=SR_smoothControlPoints><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.smoothControlPoints" target=_parent class=ISymbol>smoothControlPoints</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_snapToAngle><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.snapToAngle" target=_parent class=ISymbol>snapToAngle</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_SvgCanvas><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas" target=_parent class=ISymbol>SvgCanvas</a></div></div><div class=SRResult id=SR_svgCanvasToString><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.svgCanvasToString" target=_parent class=ISymbol>svgCanvasToString</a>, <s