Mercurial > MadButterfly
diff inkscape/firefox/content/madswatter.js @ 392:ebf83a50e1e1
Implement the MadSwatter integration
author | wycc |
---|---|
date | Wed, 15 Apr 2009 08:34:27 +0800 |
parents | 45e04408fc19 |
children |
line wrap: on
line diff
--- 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); }