Ok... this is the point i am now...
in file sqWin32Window.c there is...
/* The following is a mapping to Mac Roman
glyphs.
It is not entirely correct since a number of glyphs are different but should be good enough for Squeak. More significantly, we can now map in both directions. */ static unsigned char keymap[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, 173,176,226,196,227,201,160,224,246,228,178,220,206,179,182,183, 184,212,213,210,211,165,208,209,247,170,185,221,207,186,189,217, 202,193,162,163,219,180,195,164,172,169,187,199,194,197,168,248, 161,177,198,215,171,181,166,225,252,218,188,200,222,223,240,192, 203,231,229,204,128,129,174,130,233,131,230,232,237,234,235,236, 245,132,241,238,239,205,133,249,175,244,242,243,134,250,251,167, 136,135,137,139,138,140,190,141,143,142,144,145,147,146,148,149, 253,150,152,151,153,155,154,214,191,157,156,158,159,254,255,216 }; which is then used by
int recordKeyboardEvent(MSG *msg) {
...
ctrl = GetKeyState(VK_CONTROL) &
0x8000;
/* now the key code */ virtCode = mapVirtualKey(msg->wParam); keyCode = keymap[msg->wParam]; // HERE /* press code must differentiate */ switch(msg->message) { case WM_KEYDOWN: ...
}
The thing is that
msg->wParam
looks like it sends 8-bit CP1253 charcodes in the
range [0...255].
(Did i mention that i am trying to make it work in
a Windows system?...well i am...)
What can i do to retrieve Unicode
charcodes?
Christos
|
On May 17, 2007, at 10:39 , Chris Petsos wrote: > The thing is that > msg->wParam > looks like it sends 8-bit CP1253 charcodes in the range [0...255]. > (Did i mention that i am trying to make it work in a Windows > system?...well i am...) > > What can i do to retrieve Unicode charcodes? Dig through Microsoft's documentation or ask some Windows programmers - this is not actually a Squeak problem. Once you figure that out it should be fairly simple to add to the Squeak VM (though it might break stuff, but for your own development it should be fine). Still - why do you bother with the Windows VM when you want to develop for OLPC? Install Linux, either as dual-boot or in an emulator (Qemu is free and works nicely), and concentrate on the actual problems rather than fictive ones. That way you can also experience and test the Sugar integration we are working on. - Bert - |
On Thu, 2007-05-17 at 12:51 +0200, Bert Freudenberg wrote: > On May 17, 2007, at 10:39 , Chris Petsos wrote: > > > The thing is that > > msg->wParam > > looks like it sends 8-bit CP1253 charcodes in the range [0...255]. > > (Did i mention that i am trying to make it work in a Windows > > system?...well i am...) > > > > What can i do to retrieve Unicode charcodes? > > Dig through Microsoft's documentation or ask some Windows programmers > - this is not actually a Squeak problem. Once you figure that out it > should be fairly simple to add to the Squeak VM (though it might > break stuff, but for your own development it should be fine). OK, i'll do that... > Still - why do you bother with the Windows VM when you want to > develop for OLPC? Install Linux, either as dual-boot or in an > emulator (Qemu is free and works nicely), and concentrate on the > actual problems rather than fictive ones. That way you can also > experience and test the Sugar integration we are working on. The localisation of the Unix VM is assigned to someone else... As i told you before, the Windows VM needs to support Unicode too cause educational material for eToys is going to be written by people (teachers) that do not have Unix boxes nor they want to be familiar with Unix so they will be using their Windows platforms to write Etoys. If we fix around things in Windows in a non-Unicode way, and make the Unix VM Unicode we will have compatibility problems in font using, character encoding and other things. That is why Windows VM needs to be hacked in order to suppport Unicode... Whatsoever...thanks for everything! Christos |
In reply to this post by Chris Petsos
Chris Petsos wrote: > The thing is that > msg->wParam > looks like it sends 8-bit CP1253 charcodes in the range [0...255]. > (Did i mention that i am trying to make it work in a Windows > system?...well i am...) > > What can i do to retrieve Unicode charcodes? Handle WM_UNICHAR (http://msdn2.microsoft.com/en-us/library/ms646288.aspx). Cheers, - Andreas |
Just to remind folks, having it work like the mac vm would be a good thing. utf32Code is the field that is used to contain the unicode value in the sqKeyboardEvent structure. This value is 0, unless the event type is EventKeyChar then utf32Code is the unicode value. Also in the mac vm we generate synthetic cursor up/down/left/right keystrokes for scroll wheel mice. So at that point we pass the ascii value of the cursor movement value as the EventKeyChar based utf32Code. There was if you all recall discussion about >> Subject: sq.h changes, grabbed reserved field in sqKeyboardEvent >> Date: March 29, 2006 1:59:49 PM PST (CA) >> >> key down >> charCode: a magic number mapping to a key on the keyboard, >> different between mac/windows >> pressCode the utf-32 value of the key pressed >> additionalData the macroman value of the key pressed >> >> key char >> charCode the macroman value of the key pressed >> pressCode the utf-32 value of the key pressed >> additionalData a magic number mapping to a key on the keyboard, >> different between mac/windows >> >> >> key up >> charCode: a magic number mapping to a key on the keyboard, >> different between mac/windows >> pressCode the utf-32 value of the key pressed >> additionalData the macroman value of the key pressed So if we are going to provide unicode values in the windows vm, do we want to revisit the issues with key up/down/char again? I believe Bert was the one struggling with Sophie at the time and trying to resolve keys pressed versus what ends up in Tweak? On May 17, 2007, at 8:28 AM, Andreas Raab wrote: > Chris Petsos wrote: >> The thing is that >> msg->wParam >> looks like it sends 8-bit CP1253 charcodes in the range [0...255]. >> (Did i mention that i am trying to make it work in a Windows >> system?...well i am...) >> What can i do to retrieve Unicode charcodes? > > Handle WM_UNICHAR (http://msdn2.microsoft.com/en-us/library/ > ms646288.aspx). > > Cheers, > - Andreas -- ======================================================================== === John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
Hi John - Sorry but I have no time to revisit these issues right now. The original thread is still somewhere on the web if anyone is interested and I welcome patches. Cheers, - Andreas John M McIntosh wrote: > > Just to remind folks, having it work like the mac vm would be a good thing. > > utf32Code is the field that is used to contain the unicode value in the > sqKeyboardEvent structure. > > This value is 0, unless the event type is EventKeyChar then utf32Code is > the unicode value. > > Also in the mac vm we generate synthetic cursor up/down/left/right > keystrokes for scroll wheel mice. > So at that point we pass the ascii value of the cursor movement value as > the EventKeyChar based utf32Code. > > > There was if you all recall discussion about > >>> Subject: sq.h changes, grabbed reserved field in sqKeyboardEvent >>> Date: March 29, 2006 1:59:49 PM PST (CA) >>> >>> key down >>> charCode: a magic number mapping to a key on the keyboard, >>> different between mac/windows >>> pressCode the utf-32 value of the key pressed >>> additionalData the macroman value of the key pressed >>> >>> key char >>> charCode the macroman value of the key pressed >>> pressCode the utf-32 value of the key pressed >>> additionalData a magic number mapping to a key on the keyboard, >>> different between mac/windows >>> >>> >>> key up >>> charCode: a magic number mapping to a key on the keyboard, >>> different between mac/windows >>> pressCode the utf-32 value of the key pressed >>> additionalData the macroman value of the key pressed > > > So if we are going to provide unicode values in the windows vm, do we > want to revisit the issues with > key up/down/char again? I believe Bert was the one struggling with > Sophie at the time and trying to > resolve keys pressed versus what ends up in Tweak? > > On May 17, 2007, at 8:28 AM, Andreas Raab wrote: > >> Chris Petsos wrote: >>> The thing is that >>> msg->wParam >>> looks like it sends 8-bit CP1253 charcodes in the range [0...255]. >>> (Did i mention that i am trying to make it work in a Windows >>> system?...well i am...) >>> What can i do to retrieve Unicode charcodes? >> >> Handle WM_UNICHAR >> (http://msdn2.microsoft.com/en-us/library/ms646288.aspx). >> >> Cheers, >> - Andreas > > -- > =========================================================================== > John M. McIntosh <[hidden email]> > Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com > =========================================================================== > > |
Free forum by Nabble | Edit this page |