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) {