diff --git a/emcclib.js b/emcclib.js index 8da9dba..036caf3 100644 --- a/emcclib.js +++ b/emcclib.js @@ -70,18 +70,19 @@ mergeInto(LibraryManager.library, { js_add_preset: function(menuid, ptr, value) { var name = UTF8ToString(ptr); var item = document.createElement("li"); - item.setAttribute("data-index", value); - var tick = document.createElement("span"); + var label = document.createElement("label"); + var tick = document.createElement("input"); + tick.type = "radio"; tick.className = "tick"; - tick.appendChild(document.createTextNode("\u2713")); - item.appendChild(tick); - item.appendChild(document.createTextNode(name)); + tick.name = "preset"; + tick.value = value; + label.appendChild(tick); + label.appendChild(document.createTextNode(name)); + item.appendChild(label); gametypesubmenus[menuid].appendChild(item); - gametypeitems.push(item); - item.onclick = function(event) { + tick.onclick = function(event) { if (dlg_dimmer === null) { - gametypeselectedindex = value; command(2); } } @@ -100,13 +101,14 @@ mergeInto(LibraryManager.library, { // We still create a transparent tick element, even though it // won't ever be selected, to make submenu titles line up // nicely with their neighbours. + var label = document.createElement("div"); var tick = document.createElement("span"); - tick.appendChild(document.createTextNode("\u2713")); tick.className = "tick"; - item.appendChild(tick); - item.appendChild(document.createTextNode(name)); + label.appendChild(tick); + label.appendChild(document.createTextNode(name)); + item.appendChild(label); var submenu = document.createElement("ul"); - item.appendChild(submenu); + label.appendChild(submenu); gametypesubmenus[menuid].appendChild(item); var toret = gametypesubmenus.length; gametypesubmenus.push(submenu); @@ -120,7 +122,7 @@ mergeInto(LibraryManager.library, { * dropdown. */ js_get_selected_preset: function() { - return gametypeselectedindex; + return menuform.elements["preset"].value; }, /* @@ -131,16 +133,7 @@ mergeInto(LibraryManager.library, { * which turn out to exactly match a preset). */ js_select_preset: function(n) { - gametypeselectedindex = n; - for (var i in gametypeitems) { - var item = gametypeitems[i]; - var tick = item.firstChild; - if (item.getAttribute("data-index") == n) { - tick.classList.add("selected"); - } else { - tick.classList.remove("selected"); - } - } + menuform.elements["preset"].value = n; }, /* diff --git a/emccpre.js b/emccpre.js index 77bdbb1..93d2e45 100644 --- a/emccpre.js +++ b/emccpre.js @@ -126,15 +126,17 @@ var dlg_return_funcs = null; var dlg_return_sval, dlg_return_ival; // The