Eventhandler for national characters
For my script FMfindRepl I want that the user can handle occasionally long drop-down lists similar to the quick catalgoues: typing a character sequence to select the appropriate item.
It turns out that the keyName in the event handler does not give useful results for national characters (non-ASCII letters) such as the German umlauts or French accented character - which I can get on my Swiss-German keyboard with ease.
This script
var asItemsDe = ["Absatztyp →", "Automatischer Trennstrich", "Bedingter Text…",
"Bedingungsformat * →", "Benutzer Zeichenkette : *", "Farbe * →", "Fußnote",
"Irreguläres Absatzformat", "Irreguläres Objektstilformat", "Irreguläres Tabellenformat", "Irreguläres Zeichenformat", "Leere Textzeile *", "Marke – Text :", "Marke – Typ →",
"Marke (alle)", "Objektstiltag →", "Querverweis – Format →", "Querverweis (alle)",
"Querverweis (unaufgelöst)", "Rubi", "Tabelle (alle)", "Tabellentyp →",
"Text (formatiert) aus Zw.ablage", "Text :", "Texteinschub (alle)",
"Texteinschub (unaufgelöst)", "Überfließende Zelle *", "Überfließender Text *",
"Variable – Name →", "Variable (alle)", "Verankerter Rahmen", "Zeichenformat...",
"Zeichentyp →"];
var w = new Window ("dialog", "Drop-down select");
w.ddown = w.add ("dropdownlist", undefined, asItemsDe);
w.ddown.minimumSize.width = 200;
w.ddown.selection = 0;
w.ddown.active = true;
w.ddown.addEventListener ("keydown", Accellerator);
w.ddown.evParm = asItemsDe;
w.show ();
function Accellerator (oEvt) {
var k = oEvt.keyName.toLowerCase();
var aList = oEvt.currentTarget.evParm;
$.writeln(k); // <<<<<<<<<<<<<
var i = 0;
while (i < aList.length-1 && asItemsDe[i].charAt(0).toLowerCase() != k) {
++i;
}
if (aList[i].charAt(0).toLowerCase() == k) {
oEvt.currentTarget.selection = i;
}
}
reports for ü → semicolon; ö → apostrophe; ä → backslash; etc.
(after typing such a character for the first time, it is not logged immediately. You may need to type it twice to see it in the log).
Hence this property of the event object is not correct for non-english characters...
What can I do?

