diff --git a/ESP32_AP-Flasher/data/www/index.html.gz b/ESP32_AP-Flasher/data/www/index.html.gz index 37514c7d..1a2a528c 100644 Binary files a/ESP32_AP-Flasher/data/www/index.html.gz and b/ESP32_AP-Flasher/data/www/index.html.gz differ diff --git a/ESP32_AP-Flasher/data/www/main.js.gz b/ESP32_AP-Flasher/data/www/main.js.gz index 06b57328..d0847f53 100644 Binary files a/ESP32_AP-Flasher/data/www/main.js.gz and b/ESP32_AP-Flasher/data/www/main.js.gz differ diff --git a/ESP32_AP-Flasher/data/www/painter.js.gz b/ESP32_AP-Flasher/data/www/painter.js.gz index 59b29f9b..a36cdf38 100644 Binary files a/ESP32_AP-Flasher/data/www/painter.js.gz and b/ESP32_AP-Flasher/data/www/painter.js.gz differ diff --git a/ESP32_AP-Flasher/wwwroot/main.js b/ESP32_AP-Flasher/wwwroot/main.js index af85726a..e9fcfaae 100644 --- a/ESP32_AP-Flasher/wwwroot/main.js +++ b/ESP32_AP-Flasher/wwwroot/main.js @@ -924,10 +924,10 @@ $('#paintbutton').onclick = function () { const hwtype = $('#tag' + mac).dataset.hwtype; const [width, height] = [tagTypes[hwtype].width, tagTypes[hwtype].height] || [0, 0]; if (paintLoaded) { - startPainter(mac, width, height); + startPainter(mac, width, height, tagTypes[hwtype]); } else { loadScript('painter.js', function () { - startPainter(mac, width, height); + startPainter(mac, width, height, tagTypes[hwtype]); }); } } diff --git a/ESP32_AP-Flasher/wwwroot/painter.js b/ESP32_AP-Flasher/wwwroot/painter.js index e5bffdb2..eef42eba 100644 --- a/ESP32_AP-Flasher/wwwroot/painter.js +++ b/ESP32_AP-Flasher/wwwroot/painter.js @@ -1,4 +1,4 @@ -function startPainter(mac, width, height) { +function startPainter(mac, width, height, tagtype) { let isDrawing = false; let lastX = 0; let lastY = 0; @@ -46,29 +46,36 @@ function startPainter(mac, width, height) { txtButton.style.fontStyle = 'italic'; txtButton.addEventListener('click', addText); - const blackButton = document.createElement('button'); - blackButton.innerHTML = '﹏🖌'; - blackButton.style.color = 'black'; - blackButton.addEventListener('click', () => { - color = 'black'; - linewidth = 3; - cursor = 'url("data:image/svg+xml;utf8,") 2 2, auto'; - blackButton.classList.add('active'); - redButton.classList.remove('active'); - whiteButton.classList.remove('active'); - }); - blackButton.classList.add('active'); + console.log(tagtype.colortable); + const rgbToCSSColor = (rgbArray) => `rgb(${rgbArray[0]}, ${rgbArray[1]}, ${rgbArray[2]})`; - const redButton = document.createElement('button'); - redButton.innerHTML = '﹏🖌'; - redButton.style.color = 'red'; - redButton.addEventListener('click', () => { - color = 'red'; - linewidth = 3; - cursor = 'url("data:image/svg+xml;utf8,") 2 2, auto'; - blackButton.classList.remove('active'); - redButton.classList.add('active'); - whiteButton.classList.remove('active'); + let activeButton = null; + + tagtype.colortable.forEach((thiscolor, index) => { + if (thiscolor[0] === 255 && thiscolor[1] === 255 && thiscolor[2] === 255) return; + + const colorButton = document.createElement('button'); + colorButton.innerHTML = '﹏🖌'; + colorButton.style.color = rgbToCSSColor(thiscolor); + colorButton.classList.add('colorbutton'); + + colorButton.addEventListener('click', () => { + color = rgbToCSSColor(thiscolor); + linewidth = 3; + cursor = 'url("data:image/svg+xml;utf8,") 2 2, auto'; + + if (activeButton) activeButton.classList.remove('active'); + colorButton.classList.add('active'); + activeButton = colorButton; + }); + + if (!activeButton) { + colorButton.classList.add('active'); + activeButton = colorButton; + color = rgbToCSSColor(thiscolor); + } + + $("#buttonbar").appendChild(colorButton); }); const whiteButton = document.createElement('button'); @@ -78,9 +85,9 @@ function startPainter(mac, width, height) { color = 'white'; linewidth = 20; cursor = 'url("data:image/svg+xml;utf8,") 10 10, auto'; - blackButton.classList.remove('active'); - redButton.classList.remove('active'); + if (activeButton) activeButton.classList.remove('active'); whiteButton.classList.add('active'); + activeButton = whiteButton; }); const clearButton = document.createElement('button'); @@ -110,8 +117,6 @@ function startPainter(mac, width, height) { $('#configbox').close(); }); - $("#buttonbar").appendChild(blackButton); - $("#buttonbar").appendChild(redButton); $("#buttonbar").appendChild(whiteButton); $("#buttonbar").appendChild(txtButton); $("#buttonbar").appendChild(clearButton); @@ -259,12 +264,17 @@ function startPainter(mac, width, height) { isAddingText = true; //cursor = 'move'; - blackButton.innerHTML = 'aA' - redButton.innerHTML = 'aA' + //blackButton.innerHTML = 'aA' + //redButton.innerHTML = 'aA' + const colorButtons = document.querySelectorAll('.colorbutton'); + colorButtons.forEach(button => { + button.innerHTML = 'aA'; + }); if (color=='white') { - whiteButton.classList.remove('active'); - blackButton.classList.add('active'); - color='black'; + //whiteButton.classList.remove('active'); + //blackButton.classList.add('active'); + //color='black'; + document.querySelector('.colorbutton').click(); } } @@ -283,8 +293,12 @@ function startPainter(mac, width, height) { showCursor = false; if (apply) drawText(input.value, textX, textY); txtButton.classList.remove('active'); - blackButton.innerHTML = '﹏🖌' - redButton.innerHTML = '﹏🖌' + //blackButton.innerHTML = '﹏🖌' + //redButton.innerHTML = '﹏🖌' + const colorButtons = document.querySelectorAll('.colorbutton'); + colorButtons.forEach(button => { + button.innerHTML = '﹏🖌'; + }); } function drawText(text, x, y) {