Move new modules into a svgedit 'namespace'

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1821 eee81c28-f429-11dd-99c0-75d572ba1ddd
master
Jeff Schiller 2010-10-26 16:33:44 +00:00
parent 6298d557cf
commit 0bd50af99b
3 changed files with 46 additions and 35 deletions

View File

@ -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();
})(); })();

View File

@ -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();
} }

View File

@ -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: "&amp;" becomes "&" // Example: "&amp;" 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
} }
}; };
})();