diff --git a/Makefile b/Makefile index 08b7ec19..c6eb9607 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ build/$(PACKAGE): # codedread: NOTE: Some files are not ready for the Closure compiler: (jquery) java -jar $(CLOSURE) \ - --js browsersupport.js \ + --js browser.js \ --js svgtransformlist.js \ --js math.js \ --js units.js \ diff --git a/editor/browsersupport.js b/editor/browser.js similarity index 72% rename from editor/browsersupport.js rename to editor/browser.js index 504bd662..956e4b8b 100644 --- a/editor/browsersupport.js +++ b/editor/browser.js @@ -1,5 +1,5 @@ /** - * Package: svgedit.browsersupport + * Package: svgedit.browser * * Licensed under the Apache License, Version 2 * @@ -16,8 +16,8 @@ if (!window.svgedit) { window.svgedit = {}; } -if (!svgedit.browsersupport) { - svgedit.browsersupport = {}; +if (!svgedit.browser) { + svgedit.browser = {}; } var svgns = 'http://www.w3.org/2000/svg'; @@ -113,19 +113,19 @@ var supportsNativeSVGTransformLists_ = (function() { // Public API -svgedit.browsersupport.isOpera = function() { return isOpera_; } -svgedit.browsersupport.isWebkit = function() { return isWebkit_; } -svgedit.browsersupport.isGecko = function() { return isGecko_; } +svgedit.browser.isOpera = function() { return isOpera_; } +svgedit.browser.isWebkit = function() { return isWebkit_; } +svgedit.browser.isGecko = function() { return isGecko_; } -svgedit.browsersupport.supportsSelectors = function() { return supportsSelectors_; } -svgedit.browsersupport.supportsXpath = function() { return supportsXpath_; } +svgedit.browser.supportsSelectors = function() { return supportsSelectors_; } +svgedit.browser.supportsXpath = function() { return supportsXpath_; } -svgedit.browsersupport.supportsPathReplaceItem = function() { return supportsPathReplaceItem_; } -svgedit.browsersupport.supportsPathInsertItemBefore = function() { return supportsPathInsertItemBefore_; } -svgedit.browsersupport.supportsTextCharPos = function() { return supportsTextCharPos_; } -svgedit.browsersupport.supportsEditableText = function() { return supportsEditableText_; } -svgedit.browsersupport.supportsGoodDecimals = function() { return supportsGoodDecimals_; } -svgedit.browsersupport.supportsNonScalingStroke = function() { return supportsNonScalingStroke_; } -svgedit.browsersupport.supportsNativeTransformLists = function() { return supportsNativeSVGTransformLists_; } +svgedit.browser.supportsPathReplaceItem = function() { return supportsPathReplaceItem_; } +svgedit.browser.supportsPathInsertItemBefore = function() { return supportsPathInsertItemBefore_; } +svgedit.browser.supportsTextCharPos = function() { return supportsTextCharPos_; } +svgedit.browser.supportsEditableText = function() { return supportsEditableText_; } +svgedit.browser.supportsGoodDecimals = function() { return supportsGoodDecimals_; } +svgedit.browser.supportsNonScalingStroke = function() { return supportsNonScalingStroke_; } +svgedit.browser.supportsNativeTransformLists = function() { return supportsNativeSVGTransformLists_; } })(); \ No newline at end of file diff --git a/editor/sanitize.js b/editor/sanitize.js index 0a14bb9f..1cbf6016 100644 --- a/editor/sanitize.js +++ b/editor/sanitize.js @@ -8,7 +8,7 @@ */ // Dependencies: -// 1) browsersupport.js +// 1) browser.js // 2) svgutils.js (function() { @@ -184,7 +184,7 @@ svgedit.sanitize.sanitizeSvg = function(node) { } // Add spaces before negative signs where necessary - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { switch ( attrName ) { case "transform": case "gradientTransform": diff --git a/editor/select.js b/editor/select.js index a75161d1..917685b5 100644 --- a/editor/select.js +++ b/editor/select.js @@ -9,7 +9,7 @@ // Dependencies: // 1) jQuery -// 2) browsersupport.js +// 2) browser.js // 3) math.js // 4) svgutils.js @@ -383,7 +383,7 @@ svgedit.select.SelectorManager.prototype.initGroup = function() { 'height': dims[1], 'x': 0, 'y': 0, - 'overflow': (svgedit.browsersupport.isWebkit() ? 'none' : 'visible'), // Chrome 7 has a problem with this when zooming out + 'overflow': (svgedit.browser.isWebkit() ? 'none' : 'visible'), // Chrome 7 has a problem with this when zooming out 'style': 'pointer-events:none' } }); @@ -404,7 +404,7 @@ svgedit.select.SelectorManager.prototype.initGroup = function() { // Both Firefox and WebKit are too slow with this filter region (especially at higher // zoom levels) and Opera has at least one bug -// if (!svgedit.browsersupport.isOpera()) rect.setAttribute('filter', 'url(#canvashadow)'); +// if (!svgedit.browser.isOpera()) rect.setAttribute('filter', 'url(#canvashadow)'); canvasbg.appendChild(rect); svgFactory_.svgRoot().insertBefore(canvasbg, svgFactory_.svgContent()); }; diff --git a/editor/svg-editor.html b/editor/svg-editor.html index 26b55190..42074714 100644 --- a/editor/svg-editor.html +++ b/editor/svg-editor.html @@ -18,7 +18,7 @@ - + diff --git a/editor/svg-editor.js b/editor/svg-editor.js index a04e66a4..2a4fed2a 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -12,7 +12,8 @@ // Dependencies: // 1) units.js -// 2) svgcanvas.js +// 2) browser.js +// 3) svgcanvas.js (function() { @@ -279,7 +280,7 @@ $.svgIcons(curConfig.imgPath + 'svg_edit_icons.svg', { w:24, h:24, id_match: false, - no_img: !svgedit.browsersupport.isWebkit(), // Opera & Firefox 4 gives odd behavior w/images + no_img: !svgedit.browser.isWebkit(), // Opera & Firefox 4 gives odd behavior w/images fallback_path: curConfig.imgPath, fallback:{ 'new_image':'clear.png', diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 513267a0..a0208ca1 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -11,7 +11,7 @@ // Dependencies: // 1) jQuery -// 2) browsersupport.js +// 2) browser.js // 3) svgtransformlist.js // 4) math.js // 5) units.js @@ -219,12 +219,12 @@ var selectedElements = new Array(1); // Parameters: // id - String with the element's new ID var getElem = null; -if (svgedit.browsersupport.supportsSelectors()) { +if (svgedit.browser.supportsSelectors()) { getElem = function(id) { // querySelector lookup return svgroot.querySelector('#'+id); }; -} else if (svgedit.browsersupport.supportsXpath()) { +} else if (svgedit.browser.supportsXpath()) { getElem = function(id) { // xpath lookup return svgdoc.evaluate('svg:svg[@id="svgroot"]//svg:*[@id="'+id+'"]', @@ -251,7 +251,7 @@ var assignAttributes = canvas.assignAttributes = function(node, attrs, suspendLe if(!suspendLength) suspendLength = 0; // Opera has a problem with suspendRedraw() apparently var handle = null; - if (!svgedit.browsersupport.isOpera()) svgroot.suspendRedraw(suspendLength); + if (!svgedit.browser.isOpera()) svgroot.suspendRedraw(suspendLength); for (var i in attrs) { var ns = (i.substr(0,4) === "xml:" ? xmlns : @@ -267,7 +267,7 @@ var assignAttributes = canvas.assignAttributes = function(node, attrs, suspendLe } - if (!svgedit.browsersupport.isOpera()) svgroot.unsuspendRedraw(handle); + if (!svgedit.browser.isOpera()) svgroot.unsuspendRedraw(handle); }; // Function: cleanupElement @@ -940,7 +940,7 @@ var copyElem = function(el) { // Opera's "d" value needs to be reset for Opera/Win/non-EN // Also needed for webkit (else does not keep curved segments on clone) - if(svgedit.browsersupport.isWebkit() && el.nodeName == 'path') { + if(svgedit.browser.isWebkit() && el.nodeName == 'path') { var fixed_d = pathActions.convertPath(el); new_el.setAttribute('d', fixed_d); } @@ -1080,7 +1080,7 @@ var getRefElem = this.getRefElem = function(attrVal) { // Parameters: // elem - The (text) DOM element to clone var ffClone = function(elem) { - if(!svgedit.browsersupport.isGecko()) return elem; + if(!svgedit.browser.isGecko()) return elem; var clone = elem.cloneNode(true) elem.parentNode.insertBefore(clone, elem); elem.parentNode.removeChild(elem); @@ -2035,7 +2035,7 @@ var recalculateDimensions = this.recalculateDimensions = function(selected) { // Check if it has a gradient with userSpaceOnUse, in which case // adjust it by recalculating the matrix transform. // TODO: Make this work in Webkit using svgedit.transformlist.SVGTransformList - if(!svgedit.browsersupport.isWebkit()) { + if(!svgedit.browser.isWebkit()) { var fill = selected.getAttribute('fill'); if(fill && fill.indexOf('url(') === 0) { var paint = getRefElem(fill); @@ -2662,7 +2662,7 @@ var getMouseTarget = this.getMouseTarget = function(evt) { tlist.appendItem(svgroot.createSVGTransform()); tlist.appendItem(svgroot.createSVGTransform()); - if(svgedit.browsersupport.supportsNonScalingStroke()) { + if(svgedit.browser.supportsNonScalingStroke()) { mouse_target.style.vectorEffect = 'non-scaling-stroke'; var all = mouse_target.getElementsByTagName('*'), len = all.length; for(var i = 0; i < all.length; i++) { @@ -3323,7 +3323,7 @@ var getMouseTarget = this.getMouseTarget = function(evt) { } // no change in mouse position // Remove non-scaling stroke - if(svgedit.browsersupport.supportsNonScalingStroke()) { + if(svgedit.browser.supportsNonScalingStroke()) { var elem = selectedElements[0]; elem.removeAttribute('style'); svgedit.utilities.walkTree(elem, function(elem) { @@ -3903,7 +3903,7 @@ var textActions = canvas.textActions = function() { $(curtext).css('cursor', 'text'); -// if(svgedit.browsersupport.supportsEditableText()) { +// if(svgedit.browser.supportsEditableText()) { // curtext.setAttribute('editable', 'simple'); // return; // } @@ -3943,7 +3943,7 @@ var textActions = canvas.textActions = function() { curtext = false; -// if(svgedit.browsersupport.supportsEditableText()) { +// if(svgedit.browser.supportsEditableText()) { // curtext.removeAttribute('editable'); // } }, @@ -3959,7 +3959,7 @@ var textActions = canvas.textActions = function() { init: function(inputElem) { if(!curtext) return; -// if(svgedit.browsersupport.supportsEditableText()) { +// if(svgedit.browser.supportsEditableText()) { // curtext.select(); // return; // } @@ -4047,7 +4047,7 @@ var pathActions = canvas.pathActions = function() { // Support insertItemBefore on paths for FF2 var list = elem.pathSegList; - if(svgedit.browsersupport.supportsPathInsertItemBefore()) { + if(svgedit.browser.supportsPathInsertItemBefore()) { list.insertItemBefore(newseg, index); return; } @@ -4618,7 +4618,7 @@ var pathActions = canvas.pathActions = function() { } this.endChanges = function(text) { - if(svgedit.browsersupport.isWebkit()) resetD(p.elem); + if(svgedit.browser.isWebkit()) resetD(p.elem); var cmd = new ChangeElementCommand(elem, {d: p.last_d}, text); addCommandToHistory(cmd); call("changed", [elem]); @@ -4894,7 +4894,7 @@ var pathActions = canvas.pathActions = function() { var func = 'createSVGPathSeg' + pathFuncs[type]; var seg = path[func].apply(path, pts); - if(svgedit.browsersupport.supportsPathReplaceItem()) { + if(svgedit.browser.supportsPathReplaceItem()) { path.pathSegList.replaceItem(seg, index); } else { var segList = path.pathSegList; @@ -5805,7 +5805,7 @@ var pathActions = canvas.pathActions = function() { } } - if(svgedit.browsersupport.isWebkit()) resetD(elem); + if(svgedit.browser.isWebkit()) resetD(elem); }, // Convert a path to one with only absolute or relative values convertPath: function(path, toRel) { @@ -6471,7 +6471,7 @@ var uniquifyElems = this.uniquifyElems = function(g) { // Converts gradients from userSpaceOnUse to objectBoundingBox var convertGradients = this.convertGradients = function(elem) { var elems = $(elem).find('linearGradient, radialGradient'); - if(!elems.length && svgedit.browsersupport.isWebkit()) { + if(!elems.length && svgedit.browser.isWebkit()) { // Bug in webkit prevents regular *Gradient selector search elems = $(elem).find('*').filter(function() { return (this.tagName.indexOf('Gradient') >= 0); @@ -6594,7 +6594,7 @@ var convertToGroup = this.convertToGroup = function(elem) { } // Duplicate the gradients for Gecko, since they weren't included in the - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { var dupeGrads = $(findDefs()).children('linearGradient,radialGradient,pattern').clone(); $(g).append(dupeGrads); } @@ -6607,7 +6607,7 @@ var convertToGroup = this.convertToGroup = function(elem) { uniquifyElems(g); // Put the dupe gradients back into (after uniquifying them) - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { $(findDefs()).append( $(g).find('linearGradient,radialGradient,pattern') ); } @@ -6626,7 +6626,7 @@ var convertToGroup = this.convertToGroup = function(elem) { batchCmd.addSubCommand(new InsertElementCommand(g)); } - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { convertGradients(findDefs()); } else { convertGradients(g); @@ -6728,7 +6728,7 @@ this.setSvgString = function(xmlString) { }); // For Firefox: Put all paint elems in defs - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { content.find('linearGradient, radialGradient, pattern').appendTo(findDefs()); } @@ -6903,7 +6903,7 @@ this.importSvgString = function(xmlString) { var symbol = svgdoc.createElementNS(svgns, "symbol"); var defs = findDefs(); - if(svgedit.browsersupport.isGecko()) { + if(svgedit.browser.isGecko()) { // Move all gradients into root for Firefox, workaround for this bug: // https://bugzilla.mozilla.org/show_bug.cgi?id=353575 // TODO: Make this properly undo-able. @@ -6982,7 +6982,7 @@ var identifyLayers = canvas.identifyLayers = function() { var name = $("title",child).text(); // Hack for Opera 10.60 - if(!name && svgedit.browsersupport.isOpera() && child.querySelectorAll) { + if(!name && svgedit.browser.isOpera() && child.querySelectorAll) { name = $(child.querySelectorAll('title')).text(); } @@ -8273,7 +8273,7 @@ this.getBlur = function(elem) { if(filterHidden) { changeSelectedAttributeNoUndo("filter", 'url(#' + elem.id + '_blur)'); } - if(svgedit.browsersupport.isWebkit()) { + if(svgedit.browser.isWebkit()) { console.log('e', elem); elem.removeAttribute('filter'); elem.setAttribute('filter', 'url(#' + elem.id + '_blur)'); @@ -8309,7 +8309,7 @@ this.getBlur = function(elem) { }, 100); } else { // Removing these attributes hides text in Chrome (see Issue 579) - if(!svgedit.browsersupport.isWebkit()) { + if(!svgedit.browser.isWebkit()) { filter.removeAttribute('x'); filter.removeAttribute('y'); filter.removeAttribute('width'); @@ -9840,7 +9840,7 @@ this.getPrivateMethods = function() { canvas.textActions = textActions; } - if (!svgedit.browsersupport.supportsTextCharPos()) { + if (!svgedit.browser.supportsTextCharPos()) { disableAdvancedTextEdit(); } })(); diff --git a/editor/svgtransformlist.js b/editor/svgtransformlist.js index e5dcfe25..fe4539f3 100644 --- a/editor/svgtransformlist.js +++ b/editor/svgtransformlist.js @@ -8,7 +8,7 @@ */ // Dependencies: -// 1) browsersupport.js +// 1) browser.js (function() { @@ -261,7 +261,7 @@ svgedit.transformlist.removeElementFromListMap = function(elem) { // Parameters: // elem - DOM element to get a transformlist from svgedit.transformlist.getTransformList = function(elem) { - if (!svgedit.browsersupport.supportsNativeTransformLists()) { + if (!svgedit.browser.supportsNativeTransformLists()) { var id = elem.id; if(!id) { // Get unique ID for temporary element diff --git a/editor/svgutils.js b/editor/svgutils.js index 3af31a18..75ad60ae 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -9,7 +9,7 @@ // Dependencies: // 1) jQuery -// 2) browsersupport.js +// 2) browser.js // 3) svgtransformlist.js // 4) math.js @@ -421,9 +421,9 @@ svgedit.utilities.getBBox = function(elem) { selected.textContent = 'a'; // Some character needed for the selector to use. ret = selected.getBBox(); selected.textContent = ''; - } else if(elname === 'path' && svgedit.browsersupport.isWebkit()) { + } else if(elname === 'path' && svgedit.browser.isWebkit()) { ret = svgedit.utilities.getPathBBox(selected); - } else if(elname === 'use' && !svgedit.browsersupport.isWebkit() || elname === 'foreignObject') { + } else if(elname === 'use' && !svgedit.browser.isWebkit() || elname === 'foreignObject') { ret = selected.getBBox(); var bb = {}; bb.width = ret.width; diff --git a/test/select_test.html b/test/select_test.html index b2baeb96..e10a093f 100644 --- a/test/select_test.html +++ b/test/select_test.html @@ -3,7 +3,7 @@ - + diff --git a/test/svgtransformlist_test.html b/test/svgtransformlist_test.html index 59276e99..8fead9f8 100644 --- a/test/svgtransformlist_test.html +++ b/test/svgtransformlist_test.html @@ -4,10 +4,10 @@ diff --git a/test/svgutils_test.html b/test/svgutils_test.html index ef0af673..bb5523d8 100644 --- a/test/svgutils_test.html +++ b/test/svgutils_test.html @@ -4,7 +4,7 @@ - + diff --git a/test/test1.html b/test/test1.html index ee7ecdac..1fdb5fa3 100644 --- a/test/test1.html +++ b/test/test1.html @@ -5,7 +5,7 @@ - +