implement graphical drag feedback for zooming
[mandelbrot.git] / xulapp / chrome / mandelbrot / content / image-settings.xul
index 04da6562b5a34335cbfe03aa27214bebda5440af..605aac20a07f8b754936dc2b7a208a04f7c512b9 100644 (file)
@@ -46,9 +46,9 @@
             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="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>
       <caption label="&coord.title;"/>
       <description value="&coord.real.label;"/>
-      <hbox flex="1">
+      <hbox align="center">
         <label value="&coord.min.label;" control="Cr_min"/>
         <textbox id="Cr_min" size="10"
-                 preference="mandelbrot.last_image.Cr_min"/>
+                 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"/>
+                 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>
       <description value="&coord.imag.label;"/>
-      <hbox flex="1">
+      <hbox align="center">
         <label value="&coord.min.label;" control="Ci_min"/>
         <textbox id="Ci_min" size="10"
-                 preference="mandelbrot.last_image.Ci_min"/>
+                 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"/>
+                 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 flex="1">
+        <hbox align="center">
           <label value="&img.width.label;" control="imgWidth"/>
           <textbox id="imgWidth" size="4"
-                   preference="mandelbrot.image.width"/>
+                   preference="mandelbrot.image.width"
+                   onchange="recalcCoord('Ci', 'scale');"/>
         </hbox>
-        <hbox flex="1">
+        <hbox align="center">
           <label value="&img.height.label;" control="imgHeight"/>
           <textbox id="imgHeight" size="4"
-                   preference="mandelbrot.image.height"/>
+                   preference="mandelbrot.image.height"
+                   onchange="recalcCoord('Cr', 'scale');"/>
         </hbox>
       </groupbox>
-    
+
       <groupbox>
         <caption label="&preview.title;"/>
         <hbox flex="1" pack="center" align="center">
         </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>