c3ed5b461b
WYSIWYG SVG editing. Still no support for mixed SVG/MathML content, yet.
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
// Note: This JavaScript file must be included as the last script on the main HTML editor page to override the open/save handlers
|
|
$(function() {
|
|
if(window.opera && window.opera.io && window.opera.io.filesystem) {
|
|
svgCanvas.setCustomHandlers({
|
|
'open':function() {
|
|
try {
|
|
window.opera.io.filesystem.browseForFile(
|
|
new Date().getTime(), /* mountpoint name */
|
|
"", /* default location */
|
|
function(file) {
|
|
try {
|
|
if (file) {
|
|
fstream = file.open(file, "r");
|
|
var output = "";
|
|
while (!fstream.eof) {
|
|
output += fstream.readLine();
|
|
}
|
|
|
|
svgCanvas.setSvgString(output); /* 'this' is bound to the filestream object here */
|
|
}
|
|
}
|
|
catch(e) {
|
|
console.log("Reading file failed.");
|
|
}
|
|
},
|
|
false, /* not persistent */
|
|
false, /* no multiple selections */
|
|
"*.svg" /* file extension filter */
|
|
);
|
|
}
|
|
catch(e) {
|
|
console.log("Open file failed.");
|
|
}
|
|
|
|
},
|
|
'save':function(window, svg) {
|
|
try {
|
|
window.opera.io.filesystem.browseForSave(
|
|
new Date().getTime(), /* mountpoint name */
|
|
"", /* default location */
|
|
function(file) {
|
|
try {
|
|
if (file) {
|
|
var fstream = file.open(file, "w");
|
|
fstream.write(svg, "UTF-8");
|
|
fstream.close();
|
|
}
|
|
}
|
|
catch(e) {
|
|
console.log("Write to file failed.");
|
|
}
|
|
},
|
|
false /* not persistent */
|
|
);
|
|
}
|
|
catch(e) {
|
|
console.log("Save file failed.");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}); |