correct licenses, small changes to make disabling back work and draw an image on...
authorRobert Kaiser <kairo@kairo.at>
Sun, 18 Dec 2011 15:17:39 +0000 (16:17 +0100)
committerRobert Kaiser <kairo@kairo.at>
Sun, 18 Dec 2011 15:17:39 +0000 (16:17 +0100)
index.html
js/mandelbrot.js
style/mandelbrot.css

index e77bb9e949f4d5c0e6df4a21f42794f7dd924b17..78409f833dbed8315713c5087086115be0b40492 100644 (file)
@@ -1,3 +1,40 @@
+<!-- ***** BEGIN LICENSE BLOCK *****
+   - Version: MPL 1.1/GPL 2.0/LGPL 2.1
+   -
+   - The contents of this file are subject to the Mozilla Public License Version
+   - 1.1 (the "License"); you may not use this file except in compliance with
+   - the License. You may obtain a copy of the License at
+   - http://www.mozilla.org/MPL/
+   -
+   - Software distributed under the License is distributed on an "AS IS" basis,
+   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+   - for the specific language governing rights and limitations under the
+   - License.
+   -
+   - The Original Code is KaiRo.at Mandelbrot Web.
+   -
+   - The Initial Developer of the Original Code is
+   - Robert Kaiser <kairo@kairo.at>.
+   - Portions created by the Initial Developer are Copyright (C) 2011
+   - the Initial Developer. All Rights Reserved.
+   -
+   - Contributor(s):
+   -   Robert Kaiser <kairo@kairo.at> (original author)
+   -
+   - Alternatively, the contents of this file may be used under the terms of
+   - either the GNU General Public License Version 2 or later (the "GPL"), or
+   - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+   - in which case the provisions of the GPL or the LGPL are applicable instead
+   - of those above. If you wish to allow use of your version of this file only
+   - under the terms of either the GPL or the LGPL, and not to allow others to
+   - use your version of this file under the terms of the MPL, indicate your
+   - decision by deleting the provisions above and replace them with the notice
+   - and other provisions required by the LGPL or the GPL. If you do not delete
+   - the provisions above, a recipient may use your version of this file under
+   - the terms of any one of the MPL, the GPL or the LGPL.
+   -
+   - ***** END LICENSE BLOCK ***** -->
+
 <!DOCTYPE html>
 <html manifest="manifest.appcache">
 <head>
@@ -13,7 +50,7 @@
 <input type="button" id="drawButton" value="Draw Image"
        onclick="drawImage();">
 <input type="button" id="backButton" value="Back"
-       onclick="goBack();">
+       onclick="goBack();" disabled="true">
 <input type="button" id="settingsButton" value="Settings"
        onclick="toggleSettings();">
 <fieldset id="settings"><legend>Image data</legend>
@@ -47,7 +84,8 @@ Max: <input id="Ci_max" value="1.5" maxlength="6" size="6" type="text">
 </div>
 
 <div id="mainArea">
-<canvas id="mbrotImage" width="300" height="300"></canvas>
+<canvas id="mbrotImage" width="300" height="300"
+        onclick="drawIfEmpty();"></canvas>
 </div>
 
 <p>Time taken for calculation: <span id="calcTime">none yet</span></p>
index ace0deda24e25a97dc9fd6ca4d2d817e2c47f140..5873478487df6597927bd7683d5ad9f4224e3088 100644 (file)
@@ -15,7 +15,7 @@
  *
  * The Initial Developer of the Original Code is
  * Robert Kaiser <kairo@kairo.at>.
- * Portions created by the Initial Developer are Copyright (C) 2008-210
+ * Portions created by the Initial Developer are Copyright (C) 2008-2011
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
@@ -214,6 +214,7 @@ function drawImage() {
 
   if (gCurrentImageData) {
     gLastImageData = gCurrentImageData;
+    document.getElementById("backButton").disabled = false;
   }
 
   gColorPalette = getColorPalette(document.getElementById("palette").value);
@@ -527,15 +528,21 @@ var imgEvHandler = {
           if (zoomend.y < zoomstart.y)
             [zoomend.y, zoomstart.y] = [zoomstart.y, zoomend.y];
 
-          // determine new "coordinates"
-          var CWidth = gCurrentImageData.C_max.r - gCurrentImageData.C_min.r;
-          var CHeight = gCurrentImageData.C_max.i - gCurrentImageData.C_min.i;
-          var newC_min = new complex(
-              gCurrentImageData.C_min.r + zoomstart.x / gCurrentImageData.iWidth * CWidth,
-              gCurrentImageData.C_min.i + zoomstart.y / gCurrentImageData.iHeight * CHeight);
-          var newC_max = new complex(
-              gCurrentImageData.C_min.r + zoomend.x / gCurrentImageData.iWidth * CWidth,
-              gCurrentImageData.C_min.i + zoomend.y / gCurrentImageData.iHeight * CHeight);
+          if (gCurrentImageData) {
+            // determine new "coordinates"
+            var CWidth = gCurrentImageData.C_max.r - gCurrentImageData.C_min.r;
+            var CHeight = gCurrentImageData.C_max.i - gCurrentImageData.C_min.i;
+            var newC_min = new complex(
+                gCurrentImageData.C_min.r + zoomstart.x / gCurrentImageData.iWidth * CWidth,
+                gCurrentImageData.C_min.i + zoomstart.y / gCurrentImageData.iHeight * CHeight);
+            var newC_max = new complex(
+                gCurrentImageData.C_min.r + zoomend.x / gCurrentImageData.iWidth * CWidth,
+                gCurrentImageData.C_min.i + zoomend.y / gCurrentImageData.iHeight * CHeight);
+          }
+          else {
+            var newC_min = new complex(-2, -1.5);
+            var newC_max = new complex(1, 1.5);
+          }
 
           adjustCoordsAndDraw(newC_min, newC_max);
         }
@@ -550,11 +557,17 @@ var imgEvHandler = {
                              coordObj.clientX - canvas.offsetLeft - zoomstart.x,
                              coordObj.clientY - canvas.offsetTop - zoomstart.y);
         }
-      break;
+        break;
     }
   }
 };
 
+function drawIfEmpty() {
+  if (!gCurrentImageData) {
+    drawImage();
+  }
+}
+
 function toggleSettings() {
   var fs = document.getElementById("settings");
   if (fs.style.display != "block") {
@@ -571,6 +584,7 @@ function goBack() {
     // use gLastImageData.iWidth, gLastImageData.iHeight ???
     adjustCoordsAndDraw(gLastImageData.C_min, gLastImageData.C_max);
     gLastImageData = undefined;
+    document.getElementById("backButton").disabled = true;
   }
 }
 
index 5e3cade3c04c8ccd397fa22c99d4338e0c3ef764..5e3473ced42458a26d19f1b4c1a8fbb14a62dfab 100644 (file)
@@ -1,3 +1,44 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is KaiRo.at Mandelbrot Web.
+ *
+ * The Initial Developer of the Original Code is
+ * Robert Kaiser <kairo@kairo.at>.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Robert Kaiser <kairo@kairo.at>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+body {
+  font-family: sans-serif;
+}
+
 #overlayArea {
   position: absolute;
 }