Mercurial > hg > forks > multipaint-js
comparison mpui.js @ 212:b3579297e04e
Implement rest of the stuff needed for selecting external palettes in the
launcher and actual Multipaint code.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 03 Sep 2018 14:22:20 +0300 |
parents | 13aed87e472a |
children | ddb36f1c515f |
comparison
equal
deleted
inserted
replaced
211:6d866e284dd2 | 212:b3579297e04e |
---|---|
1 /* | 1 /* |
2 * Multipaint.JS - Javascript launcher | 2 * Multipaint.JS - Javascript launcher |
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, |
6 var mpURL; | 6 mpUIForcedWidth, mpUIForcedHeight, mpURL, |
7 mpUIPalette; | |
7 | 8 |
8 // Machine ID, Name/desc, Alt.palette array index (-1 if none) | 9 // Machine ID, Name/desc, Alt.palette array index (-1 if none) |
9 var mpMachines = | 10 var mpMachines = |
10 [ | 11 [ |
11 [ 0, "C64 hires" , 0 ], | 12 [ 0, "C64 hires" , 0 ], |
144 | 145 |
145 return vobj; | 146 return vobj; |
146 } | 147 } |
147 | 148 |
148 | 149 |
150 function stCleanFilename(vstr) | |
151 { | |
152 return vstr.replace(/[^a-z0-9_\.]/ig, ""); | |
153 } | |
154 | |
155 | |
149 function mpMachineChanged() | 156 function mpMachineChanged() |
150 { | 157 { |
151 var tmp = stGetSelIndex("machineID"); | 158 var tmp = stGetSelIndex("machineID"); |
152 var velem = stGE("paletteID"); | 159 var velem = stGE("paletteID"); |
153 var palID = mpMachines[tmp][2]; | 160 var palID = mpMachines[tmp][2]; |
154 velem.style.display = (palID >= 0) ? "block" : "none"; | 161 velem.style.display = (palID >= 0) ? "block" : "none"; |
155 velem.disabled = true; | |
156 stClearChildren(velem); | 162 stClearChildren(velem); |
157 if (palID >= 0) | 163 if (palID >= 0) |
158 { | 164 { |
159 var vlist = mpPalettes[palID]; | 165 var vlist = mpPalettes[palID]; |
160 for (var n = 0; n < vlist.length; n++) | 166 for (var n = 0; n < vlist.length; n++) |
206 mdiv.appendChild(mobj); | 212 mdiv.appendChild(mobj); |
207 | 213 |
208 mobj = stCE("div"); | 214 mobj = stCE("div"); |
209 mdiv.appendChild(mobj); | 215 mdiv.appendChild(mobj); |
210 mobj.appendChild(stCE("select", "paletteID")); | 216 mobj.appendChild(stCE("select", "paletteID")); |
211 | |
212 | 217 |
213 mdiv = stCE("div", "mdimensions"); | 218 mdiv = stCE("div", "mdimensions"); |
214 mpUI.appendChild(mdiv); | 219 mpUI.appendChild(mdiv); |
215 | 220 |
216 mobj = stCE("p"); | 221 mobj = stCE("p"); |
267 } | 272 } |
268 else | 273 else |
269 mpUIForcedWidth = mpUIForcedHeight = 0; | 274 mpUIForcedWidth = mpUIForcedHeight = 0; |
270 | 275 |
271 mpUIScale = stGetSelValue(stGE("scalesID"), -1); | 276 mpUIScale = stGetSelValue(stGE("scalesID"), -1); |
277 index = stGetSelValue(stGE("paletteID"), -1); | |
278 if (index >= 0) | |
279 mpUIPalette = mpPalettes[mpMachine][index]; | |
272 | 280 |
273 stClearChildren(mpUI); | 281 stClearChildren(mpUI); |
274 | 282 |
275 // Initialize the canvas etc. | 283 // Initialize the canvas etc. |
276 var mpCanvas = stGE("mpCanvas"); | 284 var mpCanvas = stGE("mpCanvas"); |
277 mpCanvas.style.display = "block"; | 285 mpCanvas.style.display = "block"; |
278 | 286 |
279 window.location.href = mpURL +"?"+ mpMachine.toString() +":"+ mpUIForcedWidth +":"+ mpUIForcedHeight +":"+ mpUIScale; | 287 window.location.href = mpURL +"?"+ |
288 mpMachine.toString() +":"+ | |
289 mpUIForcedWidth +":"+ mpUIForcedHeight +":"+ mpUIScale +":"+ mpUIPalette; | |
280 | 290 |
281 mpRunSketch(mpCanvas); | 291 mpRunSketch(mpCanvas); |
282 } | 292 } |
283 | 293 |
284 | 294 |
303 mpUIForcedWidth = parseInt(sargs[1]); | 313 mpUIForcedWidth = parseInt(sargs[1]); |
304 mpUIForcedHeight = parseInt(sargs[2]); | 314 mpUIForcedHeight = parseInt(sargs[2]); |
305 } | 315 } |
306 if (sargs.length >= 4) | 316 if (sargs.length >= 4) |
307 mpUIScale = parseInt(sargs[3]); | 317 mpUIScale = parseInt(sargs[3]); |
318 | |
319 if (sargs.length >= 5) | |
320 mpUIPalette = stCleanFilename(sargs[4]); | |
308 } | 321 } |
309 else | 322 else |
310 mpURL = slink; | 323 mpURL = slink; |
311 | 324 |
312 // Either run sketch or show the launcher | 325 // Either run sketch or show the launcher |