diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index b12cd988..3b3436d9 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -197,6 +197,10 @@ $.extend(all_properties.text, { // Current shape style properties var cur_shape = all_properties.shape; +// Array with all the currently selected elements +// default size of 1 until it needs to grow bigger +var selectedElements = new Array(1); + // Function: getElem // Get a DOM element by ID within the SVG root element. @@ -347,6 +351,10 @@ svgedit.units.init({ var convertToNum = canvas.convertToNum = svgedit.units.convertToNum; // import from svgutils.js +svgedit.utilities.init({ + getSelectedElements: function() { return selectedElements; }, + getSVGContent: function() { return svgcontent; } +}); var getUrlFromAttr = canvas.getUrlFromAttr = svgedit.utilities.getUrlFromAttr; var getHref = canvas.getHref = svgedit.utilities.getHref; var setHref = canvas.setHref = svgedit.utilities.setHref; @@ -541,10 +549,6 @@ var cur_text = all_properties.text, // Current general properties cur_properties = cur_shape, - // Array with all the currently selected elements - // default size of 1 until it needs to grow bigger - selectedElements = new Array(1), - // Array with selected elements' Bounding box object selectedBBoxes = new Array(1), diff --git a/editor/svgutils.js b/editor/svgutils.js index f4bdbe4f..9a0c42ad 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -23,17 +23,38 @@ if (!svgedit.utilities) { svgedit.utilities = {}; } +/** + * @interface + */ +svgedit.utilities.FooInterface = function() { +}; +svgedit.utilities.prototype.FooInterface.funky = function() {}; + +/** + * @constructor + * @implements {svgedit.utilities.FooInterface} + */ +svgedit.utilities.FooImplementor = function() { +}; + // Constants // String used to encode base64. -var KEYSTR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; -var XLINKNS = "http://www.w3.org/1999/xlink"; +var KEYSTR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; +var SVGNS = 'http://www.w3.org/2000/svg'; +var XLINKNS = 'http://www.w3.org/1999/xlink'; // Much faster than running getBBox() every time var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use'; var visElems_arr = visElems.split(','); //var hidElems = 'clipPath,defs,desc,feGaussianBlur,filter,linearGradient,marker,mask,metadata,pattern,radialGradient,stop,switch,symbol,title,textPath'; +var editorContext_ = null; + +svgedit.utilities.init = function(editorContext) { + editorContext_ = editorContext; +}; + // Function: svgedit.utilities.toXml // Converts characters in a string to XML-friendly entities. // @@ -61,7 +82,6 @@ svgedit.utilities.fromXml = function(str) { return $('
').html(str).text(); }; - // This code was written by Tyler Akins and has been placed in the // public domain. It would be nice if you left this header intact. // Base64 code from Tyler Akins -- http://rumkin.com @@ -304,14 +324,14 @@ svgedit.utilities.setHref = function(elem, val) { // Returns: // The document's