Mercurial > hg > forks > multipaint-js
comparison mpui.js @ 208:c6c1dd769566
Some work towards user-selectable alternate palettes in the launcher.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 29 Aug 2018 15:17:55 +0300 |
parents | 3b0864bf7436 |
children | edc628a79dd3 |
comparison
equal
deleted
inserted
replaced
207:3b0864bf7436 | 208:c6c1dd769566 |
---|---|
3 * (C) Copyright 2018 Matti 'ccr' Hämäläinen <ccr@tnsp.org> | 3 * (C) Copyright 2018 Matti 'ccr' Hämäläinen <ccr@tnsp.org> |
4 */ | 4 */ |
5 var mpMachine = 0, mpUIScale, mpUIForcedWidth, mpUIForcedHeight; | 5 var mpMachine = 0, mpUIScale, mpUIForcedWidth, mpUIForcedHeight; |
6 var mpURL; | 6 var mpURL; |
7 | 7 |
8 // Machine ID, Name/desc, Alt.palette array index (-1 if none) | |
8 var mpMachines = | 9 var mpMachines = |
9 [ | 10 [ |
10 [ 0, "C64 hires" , ], | 11 [ 0, "C64 hires" , 0 ], |
11 [ 10, "C64 multicolor" , ], | 12 [ 10, "C64 multicolor" , 0 ], |
12 [ 6, "ZX Spectrum" , ], | 13 [ 6, "ZX Spectrum" , -1 ], |
13 [ 5, "MSX1 mode 2" , ], | 14 [ 5, "MSX1 mode 2" , -1 ], |
14 [ 9, "Plus4 hires" , ], | 15 [ 9, "Plus4 hires" , -1 ], |
15 [ 19, "Plus4 multicolor" , ], | 16 [ 19, "Plus4 multicolor" , -1 ], |
16 [ 2, "Amstrad CPC mode 0" , ], | 17 [ 2, "Amstrad CPC mode 0" , -1 ], |
17 | 18 |
18 [ -1, "Experimental/unsupported modes below" , ], | 19 [ -1, "Experimental/unsupported modes below" , -1 ], |
19 | 20 |
20 [ 32, "C64 no limit (buggy)" , ], | 21 [ 32, "C64 no limit (buggy)", 0 ], |
21 [ 20, "C64 FLI hires" , ], | 22 [ 20, "C64 FLI hires" , 0 ], |
22 [ 21, "C64 FLI multicolor" , ], | 23 [ 21, "C64 FLI multicolor" , 0 ], |
23 [ 7, "Timex" , ], | 24 [ 7, "Timex" , -1 ], |
24 [ 8, "JR200" , ], | 25 [ 8, "JR200" , -1 ], |
25 [ 99, "BK-0010" , ], | 26 [ 99, "BK-0010" , -1 ], |
26 // [ , "" , false ], | 27 // [ , "" , -1 ], |
27 ]; | 28 ]; |
28 | 29 |
29 | 30 |
31 // Alternative palettes array | |
32 var mpPalettes = | |
33 [ | |
34 [ "pepto.act", "colodore.act", ], | |
35 ]; | |
36 | |
37 | |
38 // UI dimensions list (first is always "default") | |
30 var mpUIDimensions = | 39 var mpUIDimensions = |
31 [ | 40 [ |
32 [ -1, -1 ], | 41 [ -1, -1 ], |
33 [ 1200, 800 ], | 42 [ 1200, 800 ], |
34 [ 1600, 800 ], | 43 [ 1600, 800 ], |
35 [ 1600, 1000 ], | 44 [ 1600, 1000 ], |
36 ]; | 45 ]; |
37 | 46 |
38 | 47 |
48 // UI scaling factors, 2 is default and thus first | |
39 var mpUIScales = | 49 var mpUIScales = |
40 [ | 50 [ |
41 2, 3, 1 | 51 2, 3, 1 |
42 ]; | 52 ]; |
53 | |
43 | 54 |
44 var mpSources = | 55 var mpSources = |
45 [ | 56 [ |
46 "buffers.pde", | 57 "buffers.pde", |
47 "files.pde", | 58 "files.pde", |
101 { | 112 { |
102 stAddEventOb(obname, stGE(obname), evtype, evcallback, evparam); | 113 stAddEventOb(obname, stGE(obname), evtype, evcallback, evparam); |
103 } | 114 } |
104 | 115 |
105 | 116 |
117 function stGetSelIndex(vname) | |
118 { | |
119 var velem = stGE(vname); | |
120 return velem ? velem.selectedIndex : 0; | |
121 } | |
122 | |
123 | |
106 function stGetSelValue(velem, vdef) | 124 function stGetSelValue(velem, vdef) |
107 { | 125 { |
108 if (velem) | 126 if (velem) |
109 return velem.selectedIndex >= 0 ? velem.options[velem.selectedIndex].value : vdef; | 127 return velem.selectedIndex >= 0 ? velem.options[velem.selectedIndex].value : vdef; |
110 else | 128 else |
140 | 158 |
141 var mdiv = stCE("div", "mmachine"); | 159 var mdiv = stCE("div", "mmachine"); |
142 mpUI.appendChild(mdiv); | 160 mpUI.appendChild(mdiv); |
143 | 161 |
144 mobj = stCE("p"); | 162 mobj = stCE("p"); |
145 mobj.textContent = "Target platform / mode:"; | 163 mobj.textContent = "Target machine / mode:"; |
146 mdiv.appendChild(mobj); | 164 mdiv.appendChild(mobj); |
147 | 165 |
148 | 166 |
149 mdiv.appendChild(stCreateSelect("machineID", mpMachines, | 167 mobj = stCreateSelect("machineID", mpMachines, |
150 function (vn, vopt, val) { | 168 function (vn, vopt, val) |
169 { | |
151 if (val[0] < 0) | 170 if (val[0] < 0) |
152 vopt.disabled = true; | 171 vopt.disabled = true; |
153 else | 172 else |
154 vopt.value = val[0]; | 173 vopt.value = val[0]; |
155 | 174 |
156 vopt.textContent = val[1]; | 175 vopt.textContent = val[1]; |
157 })); | 176 }); |
158 | 177 |
178 stAddEventOb(mobj.name, mobj, "change", mpMachineChanged); | |
179 mdiv.appendChild(mobj); | |
159 mobj = stCE("button", "selectID"); | 180 mobj = stCE("button", "selectID"); |
160 mobj.textContent = "RUN"; | 181 mobj.textContent = "RUN"; |
161 stAddEventOb(mobj.name, mobj, "click", mpLauncherDone); | 182 stAddEventOb(mobj.name, mobj, "click", mpLauncherDone); |
162 mdiv.appendChild(mobj); | 183 mdiv.appendChild(mobj); |
163 | 184 |