Mercurial > MadButterfly
changeset 392:ebf83a50e1e1
Implement the MadSwatter integration
author | wycc |
---|---|
date | Wed, 15 Apr 2009 08:34:27 +0800 |
parents | 6e7909960f31 |
children | 27774b93521e |
files | inkscape/firefox/content/inkscape.js inkscape/firefox/content/madswatter.js |
diffstat | 2 files changed, 30 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/inkscape/firefox/content/inkscape.js Sun Apr 12 12:02:17 2009 +0800 +++ b/inkscape/firefox/content/inkscape.js Wed Apr 15 08:34:27 2009 +0800 @@ -97,7 +97,7 @@ this.callback = null; this.animation = new MadSwatter(this); - setTimeout("inkscape.fetchDocument()",4000); + setTimeout("inkscape.fetchDocument()",3000); } Inkscape.prototype.gotoScene = function (n)
--- a/inkscape/firefox/content/madswatter.js Sun Apr 12 12:02:17 2009 +0800 +++ b/inkscape/firefox/content/madswatter.js Wed Apr 15 08:34:27 2009 +0800 @@ -7,10 +7,32 @@ function MadSwatter_callback(mbsvg,self) { + var ch = $(mbsvg).find("channels"); + try { + var oldch = $(inkscape.mbsvg.doc).find("channels"); + var newch = $(mbsvg).find("channels"); + oldch.replaceWith(newch); + $('#display').tabs('select',0); + } catch(e) { + alert(e); + } + //self.inkscape.updateDocument(); +} - $(self.inkscape.mbsvg.doc).find("channels").replaceWith(mbsvg.find("channels")); - $('#display').tabs('select',0); - //self.inkscape.updateDocument(); + + +// Call MadSwatter, we will create file in the /tmp and then create an iframe inside thge madswatter div to +// load this file. After the MadSwatter finish the job, it should send an event editcb back to us. In this way, +// we can avoid the security issue. +function MadSwatter_invoke(dom,callback,self) +{ + var f = system_open_write("/tmp/swatter.tmp"); + var serializer = new XMLSerializer(); + var cont = serializer.serializeToString(dom[0]); + + f.write(cont,cont.length); + f.close(); + $('#madswatter').html('<iframe width="900" height="700" src="chrome://madswatter/content/editor.xhtml"></iframe>'); } MadSwatter.prototype.edit=function() @@ -18,10 +40,10 @@ // Generate a new document with the current scene // FIXME: Do we need to do animation filter here? // FIXME: Do we need to support hiearchical animation? + var kk = this.inkscape.mbsvg.generateCurrentSVG(); $('#display').tabs('select',2); - var kk = this.inkscape.mbsvg.generateCurrentSVG(); - //MadSwatter_invoke(kk,MadSwatter_callback,this); + MadSwatter_invoke(kk,MadSwatter_callback,this); // Simulate the MadSwatter - kk.find("metadata").append("<channels></channels>"); - setTimeout(function () { MadSwatter_callback(kk,this);}, 3000); + //kk.find("metadata").append("<channels></channels>"); + //setTimeout(function () { MadSwatter_callback(kk,this);}, 3000); }