From d627c01d1e35e2c21be811cf8bdadc64fa3d653a Mon Sep 17 00:00:00 2001 From: Alexis Deveria Date: Wed, 14 Jul 2010 18:05:03 +0000 Subject: [PATCH] Added extension that adds Image library option to main menu, includes minimal local and external libraries git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1630 eee81c28-f429-11dd-99c0-75d572ba1ddd --- editor/extensions/ext-imagelib.js | 184 +++++++++++++++++++++++++++++ editor/extensions/ext-imagelib.xml | 10 ++ editor/svg-editor.js | 100 +++++++++------- editor/svgcanvas.js | 4 + 4 files changed, 254 insertions(+), 44 deletions(-) create mode 100644 editor/extensions/ext-imagelib.js create mode 100644 editor/extensions/ext-imagelib.xml diff --git a/editor/extensions/ext-imagelib.js b/editor/extensions/ext-imagelib.js new file mode 100644 index 00000000..074eca5f --- /dev/null +++ b/editor/extensions/ext-imagelib.js @@ -0,0 +1,184 @@ +/* + * ext-imagelib.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Alexis Deveria + * + */ + +svgEditor.addExtension("imagelib", function() { + + var img_libs = [{ + name: 'Demo library (local)', + url: 'extensions/imagelib/index.html', + description: 'Demonstration library for SVG-edit on this server' + }, + { + name: 'Demo library (external)', + url: 'http://a.deveria.com/tests/clip-art/', + description: 'Demonstration library for SVG-edit on another domain' + }, + ]; + + + function closeBrowser() { + $('#imgbrowse_holder').hide(); + } + + window.addEventListener("message", function(evt) { + // Receive postMessage data + var response = evt.data; + + if(!response) { + $.alert('No data was given', closeBrowser); + return; + } + + var char1 = response.charAt(0); + + switch (char1) { + case '<': + svgEditor.loadFromString(response); + break; + case 'd': + if(response.indexOf('data:') === 0) { + svgEditor.loadFromDataURI(response); + break; + } + // Else fall through + default: + $.alert('Unexpected data was returned', closeBrowser); + return; + } + + closeBrowser(); + + }, true); + + + function showBrowser() { + var browser = $('#imgbrowse'); + if(!browser.length) { + $('
\ +
').insertAfter('#svg_docprops'); + browser = $('#imgbrowse'); + + var all_libs = 'Select an image library'; + + var lib_opts = $('