port bug 1155776, bug 1155816, bug 870370 (moves from Makefile.in to moz.build)
[mandelbrot.git] / content / mandelbrot.xul
1 <?xml version="1.0"?>
2
3 <!-- ***** BEGIN LICENSE BLOCK *****
4    - Version: MPL 1.1/GPL 2.0/LGPL 2.1
5    -
6    - The contents of this file are subject to the Mozilla Public License Version
7    - 1.1 (the "License"); you may not use this file except in compliance with
8    - the License. You may obtain a copy of the License at
9    - http://www.mozilla.org/MPL/
10    -
11    - Software distributed under the License is distributed on an "AS IS" basis,
12    - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13    - for the specific language governing rights and limitations under the
14    - License.
15    -
16    - The Original Code is KaiRo.at Mandelbrot, XULRunner version.
17    -
18    - The Initial Developer of the Original Code is
19    - Robert Kaiser <kairo@kairo.at>.
20    - Portions created by the Initial Developer are Copyright (C) 2008-2011
21    - the Initial Developer. All Rights Reserved.
22    -
23    - Contributor(s):
24    -   Robert Kaiser <kairo@kairo.at>
25    -
26    - Alternatively, the contents of this file may be used under the terms of
27    - either the GNU General Public License Version 2 or later (the "GPL"), or
28    - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29    - in which case the provisions of the GPL or the LGPL are applicable instead
30    - of those above. If you wish to allow use of your version of this file only
31    - under the terms of either the GPL or the LGPL, and not to allow others to
32    - use your version of this file under the terms of the MPL, indicate your
33    - decision by deleting the provisions above and replace them with the notice
34    - and other provisions required by the LGPL or the GPL. If you do not delete
35    - the provisions above, a recipient may use your version of this file under
36    - the terms of any one of the MPL, the GPL or the LGPL.
37    -
38    - ***** END LICENSE BLOCK ***** -->
39
40 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
41 <?xml-stylesheet href="chrome://mandelbrot/skin/" type="text/css"?>
42
43 <!DOCTYPE page [
44   <!ENTITY % mandelbrotDTD SYSTEM "chrome://mandelbrot/locale/mandelbrot.dtd">
45   %mandelbrotDTD;
46 ]>
47
48 <page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
49       xmlns:html="http://www.w3.org/1999/xhtml"
50       id="mandelbrot-page" title="&windowTitle;"
51       disablefastfind="true"
52       onload="Startup();">
53
54   <html:link rel="shortcut icon"
55               href="chrome://mandelbrot/skin/mandelbrotIcon16.png"/>
56
57   <script type="application/x-javascript"
58           src="chrome://mandelbrot/content/mandelbrot.js"/>
59
60   <stringbundleset id="stringbundleset">
61     <stringbundle id="mbrotBundle" src="chrome://mandelbrot/locale/mandelbrot.properties"/>
62   </stringbundleset>
63
64   <commandset id="mainCommands">
65   </commandset>
66
67   <toolbox>
68     <toolbar class="chromeclass-toolbar"
69              id="mandelbrotToolbar"
70              align="center">
71       <toolbarbutton id="fileDraw"
72                      label="&toolbarDraw.label;"
73                      oncommand="drawImage();"/>
74       <toolbarbutton id="fileSave"
75                      label="&toolbarSave.label;"
76                      oncommand="saveImage();"/>
77       <toolbarbutton id="bookmarkMenu"
78                      type="menu"
79                      class="tabbable"
80                      label="&bookmarkMenu.label;">
81         <menupopup id="menu_bookmarkPopup"
82                    onpopupshowing="updateBookmarkMenu(event.target);"
83                    oncommand="callBookmark(event.target);">
84           <menuitem id="bookmarkBack"
85                     label="&bookmarkBack.label;"
86                     disabled="true"
87                     oncommand="goBack();"/>
88           <menuitem id="bookmarkOverview"
89                     label="&bookmarkOverview.label;"/>
90           <menuitem id="bookmarkSave"
91                     label="&bookmarkSave.label;"
92                     oncommand="saveBookmark();"/>
93           <menuseparator id="bookmarkSeparator"/>
94         </menupopup>
95       </toolbarbutton>
96       <toolbarbutton id="imgSettings"
97                      label="&imgSettings.label;"
98                      oncommand="imgSettings();"/>
99     </toolbar>
100   </toolbox>
101   <panel id="imgSettingsPanel"
102          onpopupshowing="initImgSettings();"
103          onpopuphiding="saveImgSettings();">
104     <!-- |titlebar="normal" noautohide="true" close="true" label="&imageSettings.title;"|
105          doesn't seem to work on the panel, so work around with a <titlebar> instead -->
106     <titlebar><label value="&imageSettings.title;"/></titlebar>
107     <groupbox>
108       <caption label="&coord.title;"/>
109       <description value="&coord.real.label;" class="coord-caption"/>
110       <hbox align="center">
111         <label value="&coord.min.label;" control="is_Cr_min"/>
112         <textbox id="is_Cr_min" size="10"
113                  onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');"/>
114         <label value="&coord.max.label;" control="is_Cr_max"/>
115         <textbox id="is_Cr_max" size="10"
116                  onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');"/>
117         <label value="&coord.scale.label;" control="is_Cr_scale"/>
118         <textbox id="is_Cr_scale" size="10"
119                  onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'max');"/>
120       </hbox>
121       <separator class="thin"/>
122       <description value="&coord.imag.label;" class="coord-caption"/>
123       <hbox align="center">
124         <label value="&coord.min.label;" control="is_Ci_min"/>
125         <textbox id="is_Ci_min" size="10"
126                  onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');"/>
127         <label value="&coord.max.label;" control="is_Ci_max"/>
128         <textbox id="is_Ci_max" size="10"
129                  onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');"/>
130         <label value="&coord.scale.label;" control="is_Ci_scale"/>
131         <textbox id="is_Ci_scale" size="10"
132                  onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'max');"/>
133       </hbox>
134     </groupbox>
135
136     <hbox flex="1">
137       <groupbox>
138         <caption label="&img.size.title;"/>
139         <hbox align="center">
140           <label value="&img.width.label;" control="is_img_width"/>
141           <textbox id="is_img_width" size="4"
142                    onchange="checkISValue(this, 'dim'); recalcCoord('Ci', 'scale');"/>
143         </hbox>
144         <hbox align="center">
145           <label value="&img.height.label;" control="is_img_height"/>
146           <textbox id="is_img_height" size="4"
147                    onchange="checkISValue(this, 'dim'); recalcCoord('Cr', 'scale');"/>
148         </hbox>
149       </groupbox>
150
151       <groupbox>
152         <caption label="&preview.title;"/>
153         <hbox flex="1" pack="center" align="center">
154           <html:canvas id="is_mbrotPreview" width="50" height="50"></html:canvas>
155         </hbox>
156         <button id="is_previewButton" label="&previewDraw.label;" oncommand="drawPreview();"/>
157       </groupbox>
158
159       <groupbox>
160         <caption label="&options.title;"/>
161         <hbox>
162           <vbox>
163             <label value="&colorList.label;" control="colorList"/>
164             <menulist id="colorList">
165               <menupopup oncommand="setPalette(event.target.value);">
166                 <menuitem value="bw" label="&colorBW.label;"/>
167                 <menuitem value="kairo" label="&colorKairo.label;"/>
168                 <menuitem value="rainbow-linear1" label="&colorRBLin1.label;"/>
169                 <menuitem value="rainbow-squared1" label="&colorRBSq1.label;"/>
170                 <menuitem value="rainbow-linear2" label="&colorRBLin2.label;"/>
171                 <menuitem value="rainbow-squared2" label="&colorRBSq2.label;"/>
172               </menupopup>
173             </menulist>
174             <label value="&algoList.label;" control="algoList"/>
175             <menulist id="algoList">
176               <menupopup oncommand="setAlgorithm(event.target.value);">
177                 <menuitem value="numeric" label="&algoNumeric.label;"/>
178                 <menuitem value="oo" label="&algoOO.label;"/>
179               </menupopup>
180             </menulist>
181           </vbox>
182           <vbox>
183             <label value="&iterList.label;" control="iterList"/>
184             <menulist id="iterList">
185               <menupopup oncommand="setIter(event.target.value);">
186                 <menuitem value="50" label="&iter50.label;"/>
187                 <menuitem value="100" label="&iter100.label;"/>
188                 <menuitem value="500" label="&iter500.label;"/>
189                 <menuitem value="1000" label="&iter1000.label;"/>
190               </menupopup>
191             </menulist>
192             <hbox align="center">
193               <checkbox id="is_syncProp"
194                         label="&syncProp.label;"
195                         onclick="checkProportions();"/>
196             </hbox>
197           </vbox>
198         </hbox>
199       </groupbox>
200     </hbox>
201     <hbox>
202       <button id="is_closeButton" label="&closeSettings.label;" oncommand="closeImgSettings();"/>
203       <spacer flex="1"/>
204       <button id="is_drawButton" label="&drawImageButton.label;" oncommand="closeImgSettings(); drawImage();"/>
205     </hbox>
206   </panel>
207   <hbox flex="1" pack="center" align="center">
208     <stack>
209       <html:canvas id="mbrotImage" width="300" height="300">
210       </html:canvas>
211       <button id="drawButton" label="&buttonDraw.label;" oncommand="drawImage();"/>
212     </stack>
213   </hbox>
214   <hbox pack="end" align="end">
215     <description id="statusLabel"/>
216   </hbox>
217 </page>