[croquet] Windows keyDown events - numeric pad mapping to alphabet.

John M McIntosh johnmci at smalltalkconsulting.com
Wed Dec 22 01:58:45 UTC 2004


On Dec 21, 2004, at 12:39 PM, Andreas Raab wrote:

> On Mac:
>
> I have no idea.
>

Currently  KeyUp, keyDown generates the unicode value, historically  
this was the macintosh virtual keycode but we decided a number of years  
back to migrate that to unicode.

For OS-9 we map the unicode from the MacRoman value via a static table  
lookup, hopefully it's correct. People are welcome to crosscheck.

For OS-X we use the unicode given to us by the operating system which  
comes from the keyboard driver (well it's more complicated than that)  
as a result of pressing a key, or from language services as a result of  
picking from a keyboard palette or entering phonetics to signify what  
phrase you want entered.  As mentioned on my powerbook tapping the  
numlock key and "J" gives 1 which is what I expect the keyboard driver  
logic to supply.

KeyChar:
For OS-9 we use the value supplied to us by waitnextevent/getnextevent  
logic (MacRoman). Again from the keyboard driver or language services.
A quick check shows yes  num-lock "J" gives 1.

For OS-X we make a OS call and translate the unicode to  
kCFStringEncodingMacRoman, this might result in 0, a non-mapping. In  
that case we
toss back the unicode, versus ascii 0.


PS  for the os-9 version
static int MacRomanToUnicode[256] =
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
  25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,
  47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,
  69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
  91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,
  110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,
  127,196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,
  234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,
   
176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,
   
8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,17 
2,
   
8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8 
221,
   
8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218 
,8222,
   
8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,3 
05,710,
  732,175,728,729,730,184,733,731,711};

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list