implement graphical drag feedback for zooming
[mandelbrot.git] / xulapp / chrome / mandelbrot / content / mandelbrot.xul
... / ...
CommitLineData
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
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 window [
44 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
45 %brandDTD;
46 <!ENTITY % mandelbrotDTD SYSTEM "chrome://mandelbrot/locale/mandelbrot.dtd">
47 %mandelbrotDTD;
48]>
49
50<window id="mandelbrotWindow" title="&windowTitle;"
51 width="350" height="450"
52 onload="Startup()"
53 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
54 xmlns:html="http://www.w3.org/1999/xhtml">
55
56 <script type="application/x-javascript"
57 src="chrome://mandelbrot/content/mandelbrot.js"/>
58
59 <stringbundleset id="stringbundleset">
60 <stringbundle id="mbrotBundle" src="chrome://mandelbrot/locale/mandelbrot.properties"/>
61 </stringbundleset>
62
63 <commandset id="mainCommands">
64 </commandset>
65
66 <toolbox>
67 <menubar>
68 <menu id="fileMenu" label="&fileMenu.label;">
69 <menupopup id="menu_filePopup">
70 <menuitem id="fileDraw" label="&fileDraw.label;" oncommand="drawImage();"/>
71 <menuitem id="fileSave" label="&fileSave.label;" oncommand="saveImage();"/>
72 <menuseparator/>
73 <menuitem id="fileQuit" label="&fileQuit.label;" oncommand="quitApp(false);"/>
74 </menupopup>
75 </menu>
76 <menu id="bookmarkMenu" label="&bookmarkMenu.label;">
77 <menupopup id="menu_bookmarkPopup"
78 onpopupshowing="updateBookmarkMenu(event.target);"
79 oncommand="callBookmark(event.target);">
80 <menuitem id="bookmarkOverview" label="&bookmarkOverview.label;"/>
81 <menuitem id="bookmarkSave" label="&bookmarkSave.label;" oncommand="saveBookmark();"/>
82 <menuseparator id="bookmarkSeparator"/>
83 </menupopup>
84 </menu>
85 <menu id="prefMenu" label="&prefMenu.label;">
86 <menupopup id="menu_prefPopup">
87 <menu id="iterMenu" label="&iterMenu.label;">
88 <menupopup id="menu_iterPopup" onpopupshowing="updateIterMenu();" oncommand="setIter(event.target.value);">
89 <menuitem type="radio" name="iter" value="50" label="&iter50.label;"/>
90 <menuitem type="radio" name="iter" value="100" label="&iter100.label;"/>
91 <menuitem type="radio" name="iter" value="500" label="&iter500.label;"/>
92 <menuitem type="radio" name="iter" value="1000" label="&iter1000.label;"/>
93 </menupopup>
94 </menu>
95 <menu id="colorMenu" label="&colorMenu.label;">
96 <menupopup id="menu_palettePopup" onpopupshowing="updatePaletteMenu();" oncommand="setPalette(event.target.value);">
97 <menuitem type="radio" name="palette" value="bw" label="&colorBW.label;"/>
98 <menuitem type="radio" name="palette" value="kairo" label="&colorKairo.label;"/>
99 <menuitem type="radio" name="palette" value="rainbow-linear1" label="&colorRBLin1.label;"/>
100 <menuitem type="radio" name="palette" value="rainbow-squared1" label="&colorRBSq1.label;"/>
101 <menuitem type="radio" name="palette" value="rainbow-linear2" label="&colorRBLin2.label;"/>
102 <menuitem type="radio" name="palette" value="rainbow-squared2" label="&colorRBSq2.label;"/>
103 </menupopup>
104 </menu>
105 <menuitem id="imgSettings" label="&imgSettings.label;" oncommand="imgSettings();"/>
106 </menupopup>
107 </menu>
108 <menu id="debugMenu" label="&debugMenu.label;">
109 <menupopup id="menu_debugPopup" onpopupshowing="updateDebugMenu();">
110 <menuitem type="checkbox" id="jitEnabled" label="&jitEnabled.label;" oncommand="toggleJITState(event.target);"/>
111 <menu id="algoMenu" label="&algoMenu.label;">
112 <menupopup id="menu_algoPopup" onpopupshowing="updateAlgoMenu();" oncommand="setAlgorithm(event.target.value);">
113 <menuitem type="radio" name="algorithm" value="numeric" label="&algoNumeric.label;"/>
114 <menuitem type="radio" name="algorithm" value="oo" label="&algoOO.label;"/>
115 </menupopup>
116 </menu>
117 <menuitem id="errorConsole" label="&errorConsole.label;"
118 oncommand="errorConsole();"/>
119 <menuitem id="addonsMgr" label="&addonsManager.label;"
120 oncommand="addonsManager();"/>
121 </menupopup>
122 </menu>
123 </menubar>
124 </toolbox>
125 <hbox flex="1" pack="center" align="center">
126 <stack>
127 <html:canvas id="mbrotImage" width="300" height="300"
128 onmousedown="mouseevent('down', event);"
129 onmouseup="mouseevent('up',event);"
130 onmousemove="mouseevent('move',event);">
131 </html:canvas>
132 <button id="drawButton" label="&fileDraw.label;" oncommand="drawImage();"/>
133 </stack>
134 </hbox>
135 <hbox pack="end" align="end">
136 <description id="statusLabel"/>
137 </hbox>
138</window>