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