+ const bundle = document.getElementById("mbrotBundle");
+ const nsIFilePicker = Components.interfaces.nsIFilePicker;
+ var fp = null;
+ try {
+ fp = Components.classes["@mozilla.org/filepicker;1"]
+ .createInstance(nsIFilePicker);
+ } catch (e) {}
+ if (!fp) return;
+ var promptString = bundle.getString("savePrompt");
+ fp.init(window, promptString, nsIFilePicker.modeSave);
+ fp.appendFilter(bundle.getString("pngFilterName"), "*.png");
+ fp.defaultString = "mandelbrot.png";
+
+ var fpResult = fp.show();
+ if (fpResult != nsIFilePicker.returnCancel) {
+ saveCanvas(document.getElementById("mbrotImage"), fp.file);
+ }
+}
+
+function updateBookmarksMenu(aParent) {
+ /* from SM UBhistory, needs to be adapted
+ while (aParent.hasChildNodes())
+ aParent.removeChild(aParent.lastChild);
+
+ var file = Components.classes["@mozilla.org/file/directory_service;1"]
+ .getService(Components.interfaces.nsIProperties)
+ .get("ProfD", Components.interfaces.nsIFile);
+ file.append("urlbarhistory.sqlite");
+ if (file.exists()) {
+ var connection = Components.classes["@mozilla.org/storage/service;1"]
+ .getService(Components.interfaces.mozIStorageService)
+ .openDatabase(file);
+ try {
+ if (connection.tableExists("urlbarhistory")) {
+ var statement = connection.createStatement(
+ "SELECT url FROM urlbarhistory ORDER BY ROWID DESC");
+ while (statement.executeStep())
+ aParent.appendChild(document.createElement("menuitem"))
+ .setAttribute("label", statement.getString(0));
+ statement.reset();
+ statement.finalize();
+ return;
+ }
+ } finally {
+ connection.close();
+ }
+ }
+ //Create the "Nothing Available" Menu item and disable it.
+ var na = aParent.appendChild(document.createElement("menuitem"));
+ na.setAttribute("label", gNavigatorBundle.getString("nothingAvailable"));
+ na.setAttribute("disabled", "true");
+ */
+}
+
+function callBookmark(evtarget) {
+}
+
+function saveBookmark() {
+ /* from SM UBhistory, needs to be adapted
+ // Open or create the urlbar history database.
+ var file = Components.classes["@mozilla.org/file/directory_service;1"]
+ .getService(Components.interfaces.nsIProperties)
+ .get("ProfD", Components.interfaces.nsIFile);
+ file.append("urlbarhistory.sqlite");
+ var connection = Components.classes["@mozilla.org/storage/service;1"]
+ .getService(Components.interfaces.mozIStorageService)
+ .openDatabase(file);
+ connection.beginTransaction();
+ if (!connection.tableExists("urlbarhistory"))
+ connection.createTable("urlbarhistory", "url TEXT, foo INTEGER, bar REAL");
+ // NULL. The value is a NULL value.
+ // INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.
+ // REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.
+ // TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).
+
+ // Put the value as it was typed by the user in to urlbar history
+ statement = connection.createStatement(
+ "INSERT INTO urlbarhistory (url) VALUES (?1)");
+ statement.bindStringParameter(0, aUrlToAdd);
+ statement.execute();
+ statement.finalize();
+ */