| | |
| | | //initialize communication |
| | | this.frame = frame; |
| | | this.stack = []; //callback stack |
| | | |
| | | |
| | | var editapi = this; |
| | | |
| | | |
| | | window.addEventListener("message", function(e){ |
| | | if(e.data.substr(0,5) == "ERROR"){ |
| | | editapi.stack.splice(0,1)[0](e.data,"error") |
| | |
| | | } |
| | | }) |
| | | |
| | | Everything is done with the same API as the real svg-edit, |
| | | Everything is done with the same API as the real svg-edit, |
| | | and all documentation is unchanged. The only difference is |
| | | when handling returns, the callback notation is used instead. |
| | | when handling returns, the callback notation is used instead. |
| | | |
| | | var blah = new embedded_svg_edit(window.frames['svgedit']); |
| | | blah.clearSelection("woot","blah",1337,[1,2,3,4,5,"moo"],-42,{a: "tree",b:6, c: 9})(function(){console.log("GET DATA",arguments)}) |
| | |
| | | this.encode = embedded_svg_edit.encode; |
| | | //List of functions extracted with this: |
| | | //Run in firebug on http://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html |
| | | |
| | | |
| | | //for(var i=0,q=[],f = document.querySelectorAll("div.CFunction h3.CTitle a");i<f.length;i++){q.push(f[i].name)};q |
| | | //var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString", |
| | | //"createLayer", "deleteCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "setLayerVisibility", |
| | | //"moveSelectedToLayer", "clear"]; |
| | | |
| | | |
| | | |
| | | |
| | | //Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API |
| | | //var l=[];for(var i in svgCanvas){if(typeof svgCanvas[i] == "function"){l.push(i)}}; |
| | | //run in svgedit itself |
| | |
| | | "getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText", |
| | | "getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion", |
| | | "setIconSize", "setLang", "setCustomHandlers"]; |
| | | |
| | | |
| | | //TODO: rewrite the following, it's pretty scary. |
| | | for(var i = 0; i < functions.length; i++){ |
| | | this[functions[i]] = (function(d){ |
| | |
| | | args.push(arguments[g]); |
| | | } |
| | | var cbid = t.send(d,args, function(){}) //the callback (currently it's nothing, but will be set later |
| | | |
| | | |
| | | return function(newcallback){ |
| | | t.callbacks[cbid] = newcallback; //set callback |
| | | } |
| | |
| | | //simple partial JSON encoder implementation |
| | | if(window.JSON && JSON.stringify) return JSON.stringify(obj); |
| | | var enc = arguments.callee; //for purposes of recursion |
| | | |
| | | |
| | | if(typeof obj == "boolean" || typeof obj == "number"){ |
| | | return obj+'' //should work... |
| | | }else if(typeof obj == "string"){ |