Estoy trabajando en un proyecto que se basa en ShortcutMapper de Waldo Bronchart
En resumen, ShortcutMapper mapea los atajos de teclado de la aplicación en un teclado virtual. En sus archivos, hace referencia a archivos .html para diferentes diseños de teclado. Esto significa que es bastante fácil modificarlos y ver accesos directos para diferentes diseños de idioma. Sin embargo, tengo un problema cuando se presionan los modificadores (shift/control/option).
En el proyecto, cada tecla tiene asignado un valor de clave de datos que se usa para mostrar los accesos directos asignados, pero para mi diseño necesito configurar algunas teclas para que tengan múltiples valores. Necesito esto para poder usar teclas como "!", """ y "#" que se colocan en la misma tecla que 1, 2 y 3 (modificado con shift)
Mis accesos directos se guardan como "Shift + EXCLAMACIÓN", "Shift + DOUBLE_QUOTE" y "Shift + HASH", pero por ahora mi código en las teclas numéricas solo hace referencia a data-key="ONE", data-key="TWO", y clave-datos="TRES". Por lo tanto, nunca se muestran a mí.
¿Hay alguna manera de agregar múltiples valores a un elemento o cambiar la clave de datos según los modificadores presionados?
El código para el diseño de mi fila de números actualmente se ve así:
<div class="row"> <button data-key="DOLLAR">$</button> <button data-key="ONE">1</button> <button data-key="TWO">2</button> <button data-key="THREE">3</button> <button data-key="FOUR">4</button> <button data-key="FIVE">5</button> <button data-key="SIX">6</button> <button data-key="SEVEN">7</button> <button data-key="EIGHT">8</button> <button data-key="NINE">9</button> <button data-key="ZERO">0</button> <button data-key="PLUS">+</button> <button data-key="ACCENT_ACUTE">´</button> </div>Se pueden encontrar ejemplos completos de diseños en el repositorio aquí: https://github.com/waldobronchart/ShortcutMapper/tree/master/content/keyboards
Intenté implementar algo de JavaScript, pero sin éxito (es cierto que no sé mucho sobre JavaScript), por lo que no estoy seguro de cómo manejar el problema. Busqué en Google mi camino hacia las personas que hacen referencia al método KeyboardEvent.getModifierState(), pero no he encontrado una manera de hacerlo funcionar. El peor de los casos sería agregar una fila adicional de claves .html con las claves modificadas, pero parece una solución muy mala.