<?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">
]>
<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">
<stringbundle id="mbrotBundle" src="chrome://mandelbrot/locale/mandelbrot.properties"/>
</stringbundleset>
+ <commandset id="mainCommands">
+ </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;">
+ <menupopup id="menu_bookmarkPopup"
+ onpopupshowing="updateBookmarkMenu(event.target);"
+ oncommand="callBookmark(event.target);">
+ <menuitem id="bookmarkOverview" label="&bookmarkOverview.label;"/>
+ <menuitem id="bookmarkSave" label="&bookmarkSave.label;" oncommand="saveBookmark();"/>
+ <menuseparator id="bookmarkSeparator"/>
</menupopup>
</menu>
<menu id="prefMenu" label="&prefMenu.label;">
<menupopup id="menu_palettePopup" onpopupshowing="updatePaletteMenu();" oncommand="setPalette(event.target.value);">
<menuitem type="radio" name="palette" value="bw" label="&colorBW.label;"/>
<menuitem type="radio" name="palette" value="kairo" label="&colorKairo.label;"/>
+ <menuitem type="radio" name="palette" value="rainbow-linear1" label="&colorRBLin1.label;"/>
+ <menuitem type="radio" name="palette" value="rainbow-squared1" label="&colorRBSq1.label;"/>
+ <menuitem type="radio" name="palette" value="rainbow-linear2" label="&colorRBLin2.label;"/>
+ <menuitem type="radio" name="palette" value="rainbow-squared2" label="&colorRBSq2.label;"/>
</menupopup>
</menu>
<menuitem id="imgSettings" label="&imgSettings.label;" oncommand="imgSettings();"/>
</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"
+ onclick="checkProportions();"/>
+ <label value="&syncProp.label;" control="is_syncProp"/>
+ </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"></html:canvas>
+ <html:canvas id="mbrotImage" width="300" height="300"
+ onmousedown="mouseevent('down', event);"
+ onmouseup="mouseevent('up',event);"
+ onmousemove="mouseevent('move',event);">
+ </html:canvas>
<button id="drawButton" label="&fileDraw.label;" oncommand="drawImage();"/>
</stack>
</hbox>