changeset 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
files files.pde mpui.js style.css
diffstat 3 files changed, 46 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/files.pde	Wed Aug 29 15:16:54 2018 +0300
+++ b/files.pde	Wed Aug 29 15:17:55 2018 +0300
@@ -230,6 +230,7 @@
 }
 
 
+// XXX TODO: Make this support other platforms than C64
 boolean mpLoadPalette(String fname)
 {
     if (g_map[13] != C64)
--- a/mpui.js	Wed Aug 29 15:16:54 2018 +0300
+++ b/mpui.js	Wed Aug 29 15:17:55 2018 +0300
@@ -5,28 +5,37 @@
 var mpMachine = 0, mpUIScale, mpUIForcedWidth, mpUIForcedHeight;
 var mpURL;
 
+// Machine ID, Name/desc, Alt.palette array index (-1 if none)
 var mpMachines =
 [
-  [   0, "C64 hires"          , ],
-  [  10, "C64 multicolor"     , ],
-  [   6, "ZX Spectrum"        , ],
-  [   5, "MSX1 mode 2"        , ],
-  [   9, "Plus4 hires"        , ],
-  [  19, "Plus4 multicolor"   , ],
-  [   2, "Amstrad CPC mode 0" , ],
+  [   0, "C64 hires"           , 0 ],
+  [  10, "C64 multicolor"      , 0 ],
+  [   6, "ZX Spectrum"         , -1 ],
+  [   5, "MSX1 mode 2"         , -1 ],
+  [   9, "Plus4 hires"         , -1 ],
+  [  19, "Plus4 multicolor"    , -1 ],
+  [   2, "Amstrad CPC mode 0"  , -1 ],
 
-  [  -1, "Experimental/unsupported modes below" , ],
+  [  -1, "Experimental/unsupported modes below" , -1 ],
 
-  [  32, "C64 no limit (buggy)"       , ],
-  [  20, "C64 FLI hires"      , ],
-  [  21, "C64 FLI multicolor" , ],
-  [   7, "Timex"              , ],
-  [   8, "JR200"              , ],
-  [  99, "BK-0010"            , ],
-//  [  , "" , false ],
+  [  32, "C64 no limit (buggy)", 0 ],
+  [  20, "C64 FLI hires"       , 0 ],
+  [  21, "C64 FLI multicolor"  , 0 ],
+  [   7, "Timex"               , -1 ],
+  [   8, "JR200"               , -1 ],
+  [  99, "BK-0010"             , -1 ],
+//  [  , "" , -1 ],
 ];
 
 
+// Alternative palettes array
+var mpPalettes =
+[
+  [ "pepto.act", "colodore.act", ],
+];
+
+
+// UI dimensions list (first is always "default")
 var mpUIDimensions =
 [
   [ -1, -1 ],
@@ -36,11 +45,13 @@
 ];
 
 
+// UI scaling factors, 2 is default and thus first
 var mpUIScales =
 [
   2, 3, 1
 ];
 
+
 var mpSources =
 [
   "buffers.pde",
@@ -103,6 +114,13 @@
 }
 
 
+function stGetSelIndex(vname)
+{
+  var velem = stGE(vname);
+  return velem ? velem.selectedIndex : 0;
+}
+
+
 function stGetSelValue(velem, vdef)
 {
   if (velem)
@@ -142,20 +160,23 @@
   mpUI.appendChild(mdiv);
 
   mobj = stCE("p");
-  mobj.textContent = "Target platform / mode:";
+  mobj.textContent = "Target machine / mode:";
   mdiv.appendChild(mobj);
 
 
-  mdiv.appendChild(stCreateSelect("machineID", mpMachines,
-    function (vn, vopt, val) {
+  mobj = stCreateSelect("machineID", mpMachines,
+    function (vn, vopt, val)
+    {
       if (val[0] < 0)
         vopt.disabled = true;
       else
         vopt.value = val[0];
 
       vopt.textContent = val[1];
-    }));
+    });
 
+  stAddEventOb(mobj.name, mobj, "change", mpMachineChanged);
+  mdiv.appendChild(mobj);
   mobj = stCE("button", "selectID");
   mobj.textContent = "RUN";
   stAddEventOb(mobj.name, mobj, "click", mpLauncherDone);
--- a/style.css	Wed Aug 29 15:16:54 2018 +0300
+++ b/style.css	Wed Aug 29 15:17:55 2018 +0300
@@ -22,6 +22,11 @@
 	display: inline-block;
 	padding-right: 1em;
 	padding-left: 1em;
+	vertical-align: top;
+}
+
+#mmachine {
+	height: 10em;
 }
 
 #scalesID {