X-Git-Url: https://git-public.kairo.at/?p=mandelbrot.git;a=blobdiff_plain;f=content%2Fmandelbrot.js;h=7d77b1236609b83625fdb1d407e1f46cf884d988;hp=c1f3e5461d33a834be720e733ca6fca82032dd25;hb=cd6af0890f816209ef30d436a80616a0381fc7ce;hpb=5fb4a082a3ed647f2f00b1050c45cd1ba8020940 diff --git a/content/mandelbrot.js b/content/mandelbrot.js index c1f3e54..7d77b12 100644 --- a/content/mandelbrot.js +++ b/content/mandelbrot.js @@ -43,6 +43,7 @@ var gColorPalette = []; var gStartTime = 0; var gMbrotBundle; var gCurrentImageData; +var gLastImageData; function Startup() { gMbrotBundle = document.getElementById("mbrotBundle"); @@ -193,6 +194,10 @@ function drawImage() { document.getElementById("statusLabel").value = gMbrotBundle.getString("statusDrawing"); + if (gCurrentImageData) { + gLastImageData = gCurrentImageData; + } + let Cr_vals = getAdjustPref("last_image.Cr_*"); let Cr_min = Cr_vals.Cr_min; let Cr_max = Cr_vals.Cr_max; @@ -204,6 +209,10 @@ function drawImage() { let iterMax = getAdjustPref("iteration_max"); let algorithm = getAdjustPref("use_algorithm"); + let currentPalette = getAdjustPref("color_palette"); + if (!gColorPalette || !gColorPalette.length) + gColorPalette = getColorPalette(currentPalette); + let iWidth = getAdjustPref("image.width"); let iHeight = getAdjustPref("image.height"); @@ -538,18 +547,11 @@ function saveImage() { } } -function exitMandelbrot() { - var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); - if (appInfo.ID == "mandelbrot@kairo.at") - quitApp(false); - else - window.close(); -} - function updateBookmarkMenu(aParent) { document.getElementById("bookmarkSave").disabled = - (!document.getElementById("drawButton").hidden || (gStartTime > 0)); + (!document.getElementById("drawButton").hidden || (gStartTime > 0)); + + document.getElementById("bookmarkBack").disabled = !gLastImageData; while (aParent.hasChildNodes() && aParent.lastChild.id != "bookmarkSeparator") @@ -586,6 +588,16 @@ function updateBookmarkMenu(aParent) { na.setAttribute("disabled", "true"); } +function goBack () { + if (gLastImageData) { + Services.prefs.setIntPref("mandelbrot.iteration_max", + gLastImageData.iterMax); + // use gLastImageData.iWidth, gLastImageData.iHeight ??? + adjustCoordsAndDraw(gLastImageData.C_min, gLastImageData.C_max); + gLastImageData = undefined; + } +} + function callBookmark(evtarget) { if (evtarget.id == "bookmarkSave" || evtarget.id == "bookmarkSeparator") return;