add item to new Firefox button menu, make Firefox and SeaMonkey open Mandelbrot in...
[mandelbrot.git] / xulapp / chrome / mandelbrot / content / mandelbrot.xul
index 57198726d9b3624d732a07d989ce38dbeece14c9..cbf7c6d68c3ad0238073b1d3cecc32dd13345881 100644 (file)
@@ -41,6 +41,8 @@
 <?xml-stylesheet href="chrome://mandelbrot/skin/" type="text/css"?>
 
 <!DOCTYPE window [
+  <!ENTITY % mandelOverlayDTD SYSTEM "chrome://mandelbrot/locale/mandelbrot-overlay.dtd">
+  %mandelOverlayDTD;
   <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
   %brandDTD;
   <!ENTITY % mandelbrotDTD SYSTEM "chrome://mandelbrot/locale/mandelbrot.dtd">
@@ -48,7 +50,7 @@
 ]>
 
 <window id="mandelbrotWindow" title="&windowTitle;"
-        width="350" height="450"
+        width="650" height="750"
         onload="Startup()"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         xmlns:html="http://www.w3.org/1999/xhtml">
   </commandset>
 
   <toolbox>
-    <menubar>
+    <menubar id="mandelbrotMenubar">
       <menu id="fileMenu" label="&fileMenu.label;">
         <menupopup id="menu_filePopup">
           <menuitem id="fileDraw" label="&fileDraw.label;" oncommand="drawImage();"/>
           <menuitem id="fileSave" label="&fileSave.label;" oncommand="saveImage();"/>
           <menuseparator/>
-          <menuitem id="fileQuit" label="&fileQuit.label;" oncommand="quitApp(false);"/>
+          <menuitem id="fileQuit" label="&fileQuit.label;" oncommand="exitMandelbrot();"/>
         </menupopup>
       </menu>
       <menu id="bookmarkMenu" label="&bookmarkMenu.label;">
       </menu>
       <menu id="debugMenu" label="&debugMenu.label;">
         <menupopup id="menu_debugPopup" onpopupshowing="updateDebugMenu();">
-          <menuitem type="checkbox" id="jitEnabled" label="&jitEnabled.label;" oncommand="toggleJITState(event.target);"/>
+          <menuitem type="checkbox" id="tracejitEnabled" label="&tracejitEnabled.label;" oncommand="toggleJITState(event.target, 'trace');"/>
+          <menuitem type="checkbox" id="methodjitEnabled" label="&methodjitEnabled.label;" oncommand="toggleJITState(event.target, 'method');"/>
           <menu id="algoMenu" label="&algoMenu.label;">
             <menupopup id="menu_algoPopup" onpopupshowing="updateAlgoMenu();" oncommand="setAlgorithm(event.target.value);">
               <menuitem type="radio" name="algorithm" value="numeric" label="&algoNumeric.label;"/>
       </menu>
     </menubar>
   </toolbox>
+  <panel id="imgSettingsPanel"
+         onpopupshowing="initImgSettings();"
+         onpopuphiding="saveImgSettings();">
+    <!-- |titlebar="normal" noautohide="true" close="true" label="&imageSettings.title;"|
+         doesn't seem to work on the panel, so work around with a <titlebar> instead -->
+    <titlebar><label value="&imageSettings.title;"/></titlebar>
+    <groupbox>
+      <caption label="&coord.title;"/>
+      <description value="&coord.real.label;" class="coord-caption"/>
+      <hbox align="center">
+        <label value="&coord.min.label;" control="is_Cr_min"/>
+        <textbox id="is_Cr_min" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');"/>
+        <label value="&coord.max.label;" control="is_Cr_max"/>
+        <textbox id="is_Cr_max" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');"/>
+        <label value="&coord.scale.label;" control="is_Cr_scale"/>
+        <textbox id="is_Cr_scale" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'max');"/>
+      </hbox>
+      <separator class="thin"/>
+      <description value="&coord.imag.label;" class="coord-caption"/>
+      <hbox align="center">
+        <label value="&coord.min.label;" control="is_Ci_min"/>
+        <textbox id="is_Ci_min" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');"/>
+        <label value="&coord.max.label;" control="is_Ci_max"/>
+        <textbox id="is_Ci_max" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');"/>
+        <label value="&coord.scale.label;" control="is_Ci_scale"/>
+        <textbox id="is_Ci_scale" size="10"
+                 onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'max');"/>
+      </hbox>
+    </groupbox>
+
+    <hbox flex="1">
+      <groupbox>
+        <caption label="&img.size.title;"/>
+        <hbox align="center">
+          <label value="&img.width.label;" control="is_img_width"/>
+          <textbox id="is_img_width" size="4"
+                   onchange="checkISValue(this, 'dim'); recalcCoord('Ci', 'scale');"/>
+        </hbox>
+        <hbox align="center">
+          <label value="&img.height.label;" control="is_img_height"/>
+          <textbox id="is_img_height" size="4"
+                   onchange="checkISValue(this, 'dim'); recalcCoord('Cr', 'scale');"/>
+        </hbox>
+      </groupbox>
+
+      <groupbox>
+        <caption label="&preview.title;"/>
+        <hbox flex="1" pack="center" align="center">
+          <html:canvas id="is_mbrotPreview" width="50" height="50"></html:canvas>
+        </hbox>
+        <button id="is_previewButton" label="&previewDraw.label;" oncommand="drawPreview();"/>
+      </groupbox>
+
+      <groupbox>
+        <caption label="&options.title;"/>
+        <hbox align="center">
+          <checkbox id="is_syncProp"
+                    label="&syncProp.label;"
+                    onclick="checkProportions();"/>
+        </hbox>
+      </groupbox>
+    </hbox>
+    <hbox>
+      <button id="is_closeButton" label="&closeSettings.label;" oncommand="closeImgSettings();"/>
+      <spacer flex="1"/>
+      <button id="is_drawButton" label="&drawImageButton.label;" oncommand="closeImgSettings(); drawImage();"/>
+    </hbox>
+  </panel>
   <hbox flex="1" pack="center" align="center">
     <stack>
       <html:canvas id="mbrotImage" width="300" height="300"
                    onmousedown="mouseevent('down', event);"
-                   onmouseup="mouseevent('up',event);">
+                   onmouseup="mouseevent('up',event);"
+                   onmousemove="mouseevent('move',event);">
       </html:canvas>
       <button id="drawButton" label="&fileDraw.label;" oncommand="drawImage();"/>
     </stack>