| const PLI_TEMPLATE = ".palette-list-item-template"; | const PLI_TEMPLATE = ".palette-list-item-template"; | ||||
| const PLI_TITLE = ".title"; | const PLI_TITLE = ".title"; | ||||
| const PLI_BG_COLOR = ".pal-bg-color"; | |||||
| const PLI_FG_BASE = ".pal-fg-"; | |||||
| const PLI_BG_BASE = ".pal-bg-"; | |||||
| const PLI_SELECTED = ".item-selected"; | const PLI_SELECTED = ".item-selected"; | ||||
| const PLI_BG_COLOR = "pal-bg-color"; | |||||
| const PLI_FG_BASE = "pal-fg-"; | |||||
| const PLI_BG_BASE = "pal-bg-"; | |||||
| const PLI_COLOR_BASE = "nes-color-bg-"; | const PLI_COLOR_BASE = "nes-color-bg-"; | ||||
| var Palettes = []; | var Palettes = []; | ||||
| } | } | ||||
| } | } | ||||
| function SetElPaletteName(el, pname){ | |||||
| el.setAttribute("palname", pname); | |||||
| var sel = el.querySelectorAll(PLI_TITLE); | |||||
| if (sel.length === 1){ | |||||
| sel = sel[0]; | |||||
| sel.innerHTML = pname; | |||||
| } | |||||
| } | |||||
| function SetElToColor(el, mode, pi, ci, hex){ | function SetElToColor(el, mode, pi, ci, hex){ | ||||
| var cel = null; | var cel = null; | ||||
| if (ci === 0){ | if (ci === 0){ | ||||
| cel = el.querySelectorAll(PLI_BG_COLOR); | |||||
| cel = el.querySelectorAll("." + PLI_BG_COLOR); | |||||
| } else { | } else { | ||||
| cel = el.querySelectorAll(((mode == 0) ? PLI_FG_BASE : PLI_BG_BASE) + pi + "-" + ci); | |||||
| cel = el.querySelectorAll("." + ((mode == 0) ? PLI_FG_BASE : PLI_BG_BASE) + pi + "-" + ci); | |||||
| } | } | ||||
| if (cel !== null && cel.length === 1){ | if (cel !== null && cel.length === 1){ | ||||
| cel = cel[0]; | cel = cel[0]; | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| cel.classList.add("." + PLI_COLOR_BASE + hex); | |||||
| cel.classList.add(PLI_COLOR_BASE + hex.toUpperCase()); | |||||
| } | } | ||||
| } | } | ||||
| function ColorElementToPalette(el, palette){ | function ColorElementToPalette(el, palette){ | ||||
| SetElToColor( | |||||
| el, 0, | |||||
| 0, 0, | |||||
| palette.get_palette_syscolor_index(0,0,true) | |||||
| ); | |||||
| for (let p=0; p < 8; p++){ | for (let p=0; p < 8; p++){ | ||||
| for (let c=1; c < 4; c++){ | for (let c=1; c < 4; c++){ | ||||
| SetElToColor( | SetElToColor( | ||||
| function ConnectElementToPalette(el, palette){ | function ConnectElementToPalette(el, palette){ | ||||
| palette.listen("palettes_changed", (e) => { | palette.listen("palettes_changed", (e) => { | ||||
| if (e.type == "ALL"){ | if (e.type == "ALL"){ | ||||
| ColorElementToPalette(el, palette); | |||||
| if (e.hasOwnProperty("cindex")){ | |||||
| SetElToColor( | |||||
| el, 0, | |||||
| 0, 0, | |||||
| palette.get_palette_syscolor_index(0,0,true) | |||||
| ); | |||||
| } else { | |||||
| ColorElementToPalette(el, palette); | |||||
| } | |||||
| } else if (e.type == "SPRITE"){ | } else if (e.type == "SPRITE"){ | ||||
| SetElToColor( | SetElToColor( | ||||
| el, 0, | el, 0, | ||||
| var el = oel[0].cloneNode(true); | var el = oel[0].cloneNode(true); | ||||
| el.classList.remove(PLI_TEMPLATE); | el.classList.remove(PLI_TEMPLATE); | ||||
| el.classList.remove("hidden"); | el.classList.remove("hidden"); | ||||
| el.setAttribute("palname", pname); | |||||
| ConnectElementToPalette(el, palette); | ConnectElementToPalette(el, palette); | ||||
| ColorElementToPalette(el, palette); | ColorElementToPalette(el, palette); | ||||
| SetElPaletteName(el, pname); | |||||
| el.addEventListener("click", HANDLE_PaletteClick); | el.addEventListener("click", HANDLE_PaletteClick); | ||||
| oel[0].parentNode.appendChild(el); | oel[0].parentNode.appendChild(el); | ||||
| return el; | return el; | ||||
| if (i < 0) | if (i < 0) | ||||
| throw new ValueError("Failed to find palette named '" + oldname +"'. Cannot rename."); | throw new ValueError("Failed to find palette named '" + oldname +"'. Cannot rename."); | ||||
| Palettes[i][0] = newname; | Palettes[i][0] = newname; | ||||
| Palettes[i][2].setAttribute("palname", newname); | |||||
| SetElPaletteName(Palettes[i][2], newname); | |||||
| return this; | return this; | ||||
| } | } | ||||
| background-color: $list-item-selected-bg; | background-color: $list-item-selected-bg; | ||||
| } | } | ||||
| } | } | ||||
| .list-v-padding{ | |||||
| padding-top: 0.4em; | |||||
| padding-bottom: 0.4em; | |||||
| } | |||||
| .list-h-padding{ | |||||
| padding-left: 0.4em; | |||||
| padding-right: 0.4em; | |||||
| } | |||||
| .list-l-padding{ | |||||
| padding-left: 0.4em; | |||||
| } |
| <div class="list-item-container palette-list-item-template hidden"> | <div class="list-item-container palette-list-item-template hidden"> | ||||
| <div class=pure-g"> | |||||
| <div class=pure-u-1"> | |||||
| <span class="title">Title here</span> | |||||
| <div class="list-h-padding list-v-padding"> | |||||
| <div class=pure-g"> | |||||
| <div class=pure-u-1"> | |||||
| <span class="title">Title here</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-g"> | <div class="pure-g"> | ||||
| <div class="pure-u-1-4 pal-bg-color"> </div> | <div class="pure-u-1-4 pal-bg-color"> </div> | ||||
| <div class="pure-u-3-4"> | <div class="pure-u-3-4"> | ||||
| <div class="pure-g"> | <div class="pure-g"> | ||||
| <div class="pure-u-1-2"> | <div class="pure-u-1-2"> | ||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-fg-0-1"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-0-2"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-0-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-fg-1-1"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-1-2"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-1-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-fg-2-1"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-2-2"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-2-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-fg-3-1"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-3-2"> </div> | |||||
| <div class="pure-u-1-4 pal-fg-3-3"> </div> | |||||
| <div class="list-l-padding"> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-fg-0-1"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-0-2"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-0-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-fg-1-1"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-1-2"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-1-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-fg-2-1"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-2-2"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-2-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-fg-3-1"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-3-2"> </div> | |||||
| <div class="pure-u-1-3 pal-fg-3-3"> </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="pure-u-1-2"> | <div class="pure-u-1-2"> | ||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-bg-0-1"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-0-2"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-0-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-bg-1-1"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-1-2"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-1-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-bg-2-1"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-2-2"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-2-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-4 pal-bg-3-1"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-3-2"> </div> | |||||
| <div class="pure-u-1-4 pal-bg-3-3"> </div> | |||||
| <div class="list-l-padding"> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-bg-0-1"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-0-2"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-0-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-bg-1-1"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-1-2"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-1-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-bg-2-1"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-2-2"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-2-3"> </div> | |||||
| </div> | |||||
| <div class="pure-g"> | |||||
| <div class="pure-u-1-3 pal-bg-3-1"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-3-2"> </div> | |||||
| <div class="pure-u-1-3 pal-bg-3-3"> </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> |