implement graphical drag feedback for zooming
[mandelbrot.git] / xulapp / chrome / mandelbrot / content / image-settings.xul
index efe8288096daeb7358b338deb752abd2439318ef..605aac20a07f8b754936dc2b7a208a04f7c512b9 100644 (file)
 
 <prefwindow id="imgSettingsDlg"
             xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+            xmlns:html="http://www.w3.org/1999/xhtml"
             title="&imageSettings.title;"
-            dlgbuttons="accept,cancel"
-            ondialogaccept="callDrawImage();"
-            buttonlabelaccept="&DrawImageButton.label;">
+            buttons="accept,cancel,extra1"
+            ondialogextra1="callDrawImage();"
+            buttonlabelextra1="&DrawImageButton.label;">
 
   <prefpane id="imgSettingsPane" onpaneload="initSettings();">
     <script type="application/x-javascript"
                   type="int"/>
       <preference id="mandelbrot.image.height" name="mandelbrot.image.height"
                   type="int"/>
+      <preference id="mandelbrot.last_image.Cr_min" name="mandelbrot.last_image.Cr_min"
+                  type="string"/>
+      <preference id="mandelbrot.last_image.Cr_max" name="mandelbrot.last_image.Cr_max"
+                  type="string"/>
+      <preference id="mandelbrot.last_image.Ci_min" name="mandelbrot.last_image.Ci_min"
+                  type="string"/>
+      <preference id="mandelbrot.last_image.Ci_max" name="mandelbrot.last_image.Ci_max"
+                  type="string"/>
+      <preference id="mandelbrot.syncProportions" name="mandelbrot.syncProportions"
+                  type="bool"/>
     </preferences>
 
-    <groupbox label="&img.size.title;">
-      <hbox flex="1">
-        <label value="&img.width.label;" control="imgWidth"/>
-        <textbox id="imgWidth" size="4" preference="mandelbrot.image.width"/>
+    <groupbox>
+      <caption label="&coord.title;"/>
+      <description value="&coord.real.label;"/>
+      <hbox align="center">
+        <label value="&coord.min.label;" control="Cr_min"/>
+        <textbox id="Cr_min" size="10"
+                 preference="mandelbrot.last_image.Cr_min"
+                 onchange="recalcCoord('Cr', 'scale');"/>
+        <label value="&coord.max.label;" control="Cr_max"/>
+        <textbox id="Cr_max" size="10"
+                 preference="mandelbrot.last_image.Cr_max"
+                 onchange="recalcCoord('Cr', 'scale');"/>
+        <label value="&coord.scale.label;" control="Cr_scale"/>
+        <textbox id="Cr_scale" size="10"
+                 onchange="recalcCoord('Cr', 'max');"/>
       </hbox>
-      <hbox flex="1">
-        <label value="&img.height.label;" control="imgHeight"/>
-        <textbox id="imgHeight" size="4" preference="mandelbrot.image.heigth"/>
+      <description value="&coord.imag.label;"/>
+      <hbox align="center">
+        <label value="&coord.min.label;" control="Ci_min"/>
+        <textbox id="Ci_min" size="10"
+                 preference="mandelbrot.last_image.Ci_min"
+                 onchange="recalcCoord('Ci', 'scale');"/>
+        <label value="&coord.max.label;" control="Ci_max"/>
+        <textbox id="Ci_max" size="10"
+                 preference="mandelbrot.last_image.Ci_max"
+                 onchange="recalcCoord('Ci', 'scale');"/>
+        <label value="&coord.scale.label;" control="Ci_scale"/>
+        <textbox id="Ci_scale" size="10"
+                 onchange="recalcCoord('Ci', 'max');"/>
       </hbox>
     </groupbox>
+
+    <hbox flex="1">
+      <groupbox>
+        <caption label="&img.size.title;"/>
+        <hbox align="center">
+          <label value="&img.width.label;" control="imgWidth"/>
+          <textbox id="imgWidth" size="4"
+                   preference="mandelbrot.image.width"
+                   onchange="recalcCoord('Ci', 'scale');"/>
+        </hbox>
+        <hbox align="center">
+          <label value="&img.height.label;" control="imgHeight"/>
+          <textbox id="imgHeight" size="4"
+                   preference="mandelbrot.image.height"
+                   onchange="recalcCoord('Cr', 'scale');"/>
+        </hbox>
+      </groupbox>
+
+      <groupbox>
+        <caption label="&preview.title;"/>
+        <hbox flex="1" pack="center" align="center">
+          <html:canvas id="mbrotPreview" width="50" height="50"></html:canvas>
+        </hbox>
+        <button id="previewButton" label="&previewDraw.label;" oncommand="drawPreview();"/>
+      </groupbox>
+
+      <groupbox>
+        <caption label="&options.title;"/>
+        <hbox align="center">
+          <checkbox id="syncProp"
+                    preference="mandelbrot.syncProportions"
+                    onclick="checkProportions();"/>
+          <label value="&syncProp.label;" control="syncProp"/>
+        </hbox>
+      </groupbox>
+    </hbox>
   </prefpane>
 </prefwindow>