Move new modules into a svgedit 'namespace'
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1821 eee81c28-f429-11dd-99c0-75d572ba1dddmaster
parent
6298d557cf
commit
0bd50af99b
|
@ -12,15 +12,19 @@
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
BrowserSupport = {};
|
if (window.svgedit == undefined) {
|
||||||
|
window.svgedit = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
svgedit.BrowserSupport = {};
|
||||||
|
|
||||||
var svgns = 'http://www.w3.org/2000/svg';
|
var svgns = 'http://www.w3.org/2000/svg';
|
||||||
var userAgent = navigator.userAgent;
|
var userAgent = navigator.userAgent;
|
||||||
|
|
||||||
// Note: Browser sniffing should only be used if no other detection method is possible
|
// Note: Browser sniffing should only be used if no other detection method is possible
|
||||||
BrowserSupport.isOpera = !!window.opera;
|
svgedit.BrowserSupport.isOpera = !!window.opera;
|
||||||
BrowserSupport.isWebkit = userAgent.indexOf("AppleWebKit") >= 0;
|
svgedit.BrowserSupport.isWebkit = userAgent.indexOf("AppleWebKit") >= 0;
|
||||||
BrowserSupport.isGecko = userAgent.indexOf('Gecko/') >= 0;
|
svgedit.BrowserSupport.isGecko = userAgent.indexOf('Gecko/') >= 0;
|
||||||
|
|
||||||
// segList functions (for FF1.5 and 2.0)
|
// segList functions (for FF1.5 and 2.0)
|
||||||
function getPathReplaceItem() {
|
function getPathReplaceItem() {
|
||||||
|
@ -65,7 +69,7 @@ function getTextCharPos() {
|
||||||
|
|
||||||
function getEditableText() {
|
function getEditableText() {
|
||||||
// TODO: Find better way to check support for this
|
// TODO: Find better way to check support for this
|
||||||
return BrowserSupport.isOpera;
|
return svgedit.BrowserSupport.isOpera;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGoodDecimals() {
|
function getGoodDecimals() {
|
||||||
|
@ -87,11 +91,11 @@ function getNonScalingStroke() {
|
||||||
return rect.style.vectorEffect === 'non-scaling-stroke';
|
return rect.style.vectorEffect === 'non-scaling-stroke';
|
||||||
}
|
}
|
||||||
|
|
||||||
BrowserSupport.pathReplaceItem = getPathReplaceItem();
|
svgedit.BrowserSupport.pathReplaceItem = getPathReplaceItem();
|
||||||
BrowserSupport.pathInsertItemBefore = getPathInsertItemBefore();
|
svgedit.BrowserSupport.pathInsertItemBefore = getPathInsertItemBefore();
|
||||||
BrowserSupport.textCharPos = getTextCharPos();
|
svgedit.BrowserSupport.textCharPos = getTextCharPos();
|
||||||
BrowserSupport.editableText = getEditableText();
|
svgedit.BrowserSupport.editableText = getEditableText();
|
||||||
BrowserSupport.goodDecimals = getGoodDecimals();
|
svgedit.BrowserSupport.goodDecimals = getGoodDecimals();
|
||||||
BrowserSupport.nonScalingStroke = getNonScalingStroke();
|
svgedit.BrowserSupport.nonScalingStroke = getNonScalingStroke();
|
||||||
|
|
||||||
})();
|
})();
|
|
@ -89,10 +89,10 @@ if(window.opera) {
|
||||||
// config - An object that contains configuration data
|
// config - An object that contains configuration data
|
||||||
$.SvgCanvas = function(container, config)
|
$.SvgCanvas = function(container, config)
|
||||||
{
|
{
|
||||||
var isOpera = BrowserSupport.isOpera,
|
var support = svgedit.BrowserSupport,
|
||||||
isWebkit = BrowserSupport.isWebkit,
|
isOpera = support.isOpera,
|
||||||
isGecko = BrowserSupport.isGecko,
|
isWebkit = support.isWebkit,
|
||||||
support = BrowserSupport,
|
isGecko = support.isGecko,
|
||||||
|
|
||||||
// this defines which elements and attributes that we support
|
// this defines which elements and attributes that we support
|
||||||
svgWhiteList = {
|
svgWhiteList = {
|
||||||
|
@ -196,7 +196,7 @@ if(config) {
|
||||||
|
|
||||||
// Static class for various utility functions
|
// Static class for various utility functions
|
||||||
// See svgutils.js.
|
// See svgutils.js.
|
||||||
var Utils = this.Utils = SVGEditUtilities;
|
var Utils = this.Utils = svgedit.Utilities;
|
||||||
|
|
||||||
// Function: snapToGrid
|
// Function: snapToGrid
|
||||||
// round value to for snapping
|
// round value to for snapping
|
||||||
|
@ -8563,12 +8563,10 @@ this.importSvgString = function(xmlString) {
|
||||||
addToSelection([use_el]);
|
addToSelection([use_el]);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
// TODO: Find way to add this in a recalculateDimensions-parsable way
|
// TODO: Find way to add this in a recalculateDimensions-parsable way
|
||||||
// if (vb[0] != 0 || vb[1] != 0)
|
// if (vb[0] != 0 || vb[1] != 0)
|
||||||
// ts = "translate(" + (-vb[0]) + "," + (-vb[1]) + ") " + ts;
|
// ts = "translate(" + (-vb[0]) + "," + (-vb[1]) + ") " + ts;
|
||||||
|
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
return false;
|
return false;
|
||||||
|
@ -11306,7 +11304,7 @@ function disableAdvancedTextEdit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
if (!BrowserSupport.textCharPos) {
|
if (!svgedit.BrowserSupport.textCharPos) {
|
||||||
disableAdvancedTextEdit();
|
disableAdvancedTextEdit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,15 +7,22 @@
|
||||||
* Copyright(c) 2010 Jeff Schiller
|
* Copyright(c) 2010 Jeff Schiller
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// NOTE: Requires jQuery to be loaded.
|
// Dependencies:
|
||||||
|
// 1) jQuery
|
||||||
|
|
||||||
SVGEditUtilities = {
|
(function() {
|
||||||
|
|
||||||
|
if (window.svgedit == undefined) {
|
||||||
|
window.svgedit = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
svgedit.Utilities = {
|
||||||
};
|
};
|
||||||
|
|
||||||
// String used to encode base64.
|
// String used to encode base64.
|
||||||
SVGEditUtilities._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
svgedit.Utilities._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||||
|
|
||||||
// Function: SVGEditUtilities.toXml
|
// Function: svgedit.Utilities.toXml
|
||||||
// Converts characters in a string to XML-friendly entities.
|
// Converts characters in a string to XML-friendly entities.
|
||||||
//
|
//
|
||||||
// Example: "&" becomes "&"
|
// Example: "&" becomes "&"
|
||||||
|
@ -25,11 +32,11 @@ SVGEditUtilities._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// The converted string
|
// The converted string
|
||||||
SVGEditUtilities.toXml = function(str) {
|
svgedit.Utilities.toXml = function(str) {
|
||||||
return $('<p/>').text(str).html();
|
return $('<p/>').text(str).html();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Function: SVGEditUtilities.fromXml
|
// Function: svgedit.Utilities.fromXml
|
||||||
// Converts XML entities in a string to single characters.
|
// Converts XML entities in a string to single characters.
|
||||||
// Example: "&" becomes "&"
|
// Example: "&" becomes "&"
|
||||||
//
|
//
|
||||||
|
@ -38,7 +45,7 @@ SVGEditUtilities.toXml = function(str) {
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// The converted string
|
// The converted string
|
||||||
SVGEditUtilities.fromXml = function(str) {
|
svgedit.Utilities.fromXml = function(str) {
|
||||||
return $('<p/>').html(str).text();
|
return $('<p/>').html(str).text();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -52,12 +59,12 @@ SVGEditUtilities.fromXml = function(str) {
|
||||||
|
|
||||||
// Function: Utils.encode64
|
// Function: Utils.encode64
|
||||||
// Converts a string to base64
|
// Converts a string to base64
|
||||||
SVGEditUtilities.encode64 = function(input) {
|
svgedit.Utilities.encode64 = function(input) {
|
||||||
// base64 strings are 4/3 larger than the original string
|
// base64 strings are 4/3 larger than the original string
|
||||||
// input = Utils.encodeUTF8(input); // convert non-ASCII characters
|
// input = Utils.encodeUTF8(input); // convert non-ASCII characters
|
||||||
input = Utils.convertToXMLReferences(input);
|
input = Utils.convertToXMLReferences(input);
|
||||||
if(window.btoa) return window.btoa(input); // Use native if available
|
if(window.btoa) return window.btoa(input); // Use native if available
|
||||||
var _keyStr = SVGEditUtilities._keyStr;
|
var _keyStr = svgedit.Utilities._keyStr;
|
||||||
var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
|
var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
|
||||||
var chr1, chr2, chr3;
|
var chr1, chr2, chr3;
|
||||||
var enc1, enc2, enc3, enc4;
|
var enc1, enc2, enc3, enc4;
|
||||||
|
@ -90,7 +97,7 @@ SVGEditUtilities.encode64 = function(input) {
|
||||||
|
|
||||||
// Function: Utils.decode64
|
// Function: Utils.decode64
|
||||||
// Converts a string from base64
|
// Converts a string from base64
|
||||||
SVGEditUtilities.decode64 = function(input) {
|
svgedit.Utilities.decode64 = function(input) {
|
||||||
if(window.atob) return window.atob(input);
|
if(window.atob) return window.atob(input);
|
||||||
var output = "";
|
var output = "";
|
||||||
var chr1, chr2, chr3 = "";
|
var chr1, chr2, chr3 = "";
|
||||||
|
@ -150,9 +157,9 @@ SVGEditUtilities.decode64 = function(input) {
|
||||||
// return output;
|
// return output;
|
||||||
// },
|
// },
|
||||||
|
|
||||||
// Function: Utils.convertToXMLReferences
|
// Function: svgedit.Utilities.convertToXMLReferences
|
||||||
// Converts a string to use XML references
|
// Converts a string to use XML references
|
||||||
SVGEditUtilities.convertToXMLReferences = function(input) {
|
svgedit.Utilities.convertToXMLReferences = function(input) {
|
||||||
var output = '';
|
var output = '';
|
||||||
for (var n = 0; n < input.length; n++){
|
for (var n = 0; n < input.length; n++){
|
||||||
var c = input.charCodeAt(n);
|
var c = input.charCodeAt(n);
|
||||||
|
@ -175,7 +182,7 @@ SVGEditUtilities.convertToXMLReferences = function(input) {
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Boolean that's true if rectangles intersect
|
// Boolean that's true if rectangles intersect
|
||||||
SVGEditUtilities.rectsIntersect = function(r1, r2) {
|
svgedit.Utilities.rectsIntersect = function(r1, r2) {
|
||||||
return r2.x < (r1.x+r1.width) &&
|
return r2.x < (r1.x+r1.width) &&
|
||||||
(r2.x+r2.width) > r1.x &&
|
(r2.x+r2.width) > r1.x &&
|
||||||
r2.y < (r1.y+r1.height) &&
|
r2.y < (r1.y+r1.height) &&
|
||||||
|
@ -197,7 +204,7 @@ SVGEditUtilities.rectsIntersect = function(r1, r2) {
|
||||||
// x - The angle-snapped x value
|
// x - The angle-snapped x value
|
||||||
// y - The angle-snapped y value
|
// y - The angle-snapped y value
|
||||||
// snapangle - The angle at which to snap
|
// snapangle - The angle at which to snap
|
||||||
SVGEditUtilities.snapToAngle = function(x1,y1,x2,y2) {
|
svgedit.Utilities.snapToAngle = function(x1,y1,x2,y2) {
|
||||||
var snap = Math.PI/4; // 45 degrees
|
var snap = Math.PI/4; // 45 degrees
|
||||||
var dx = x2 - x1;
|
var dx = x2 - x1;
|
||||||
var dy = y2 - y1;
|
var dy = y2 - y1;
|
||||||
|
@ -213,7 +220,7 @@ SVGEditUtilities.snapToAngle = function(x1,y1,x2,y2) {
|
||||||
// Function: text2xml
|
// Function: text2xml
|
||||||
// Cross-browser compatible method of converting a string to an XML tree
|
// 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
|
// found this function here: http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f
|
||||||
SVGEditUtilities.text2xml = function(sXML) {
|
svgedit.Utilities.text2xml = function(sXML) {
|
||||||
if(sXML.indexOf('<svg:svg') >= 0) {
|
if(sXML.indexOf('<svg:svg') >= 0) {
|
||||||
sXML = sXML.replace(/<(\/?)svg:/g, '<$1').replace('xmlns:svg', 'xmlns');
|
sXML = sXML.replace(/<(\/?)svg:/g, '<$1').replace('xmlns:svg', 'xmlns');
|
||||||
}
|
}
|
||||||
|
@ -241,7 +248,7 @@ SVGEditUtilities.text2xml = function(sXML) {
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// An object with properties names x, y, width, height.
|
// An object with properties names x, y, width, height.
|
||||||
SVGEditUtilities.bboxToObj = function(bbox) {
|
svgedit.Utilities.bboxToObj = function(bbox) {
|
||||||
return {
|
return {
|
||||||
x: bbox.x,
|
x: bbox.x,
|
||||||
y: bbox.y,
|
y: bbox.y,
|
||||||
|
@ -249,3 +256,5 @@ SVGEditUtilities.bboxToObj = function(bbox) {
|
||||||
height: bbox.height
|
height: bbox.height
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
Loading…
Reference in New Issue