[Vm-dev] SqueakVM help for OLPC
Chris Petsos
chrispetsos at sch.gr
Thu May 24 12:55:08 UTC 2007
On Mon, 2007-05-21 at 23:32 -0700, Andreas Raab wrote:
> Have you tried handling WM_UNICHAR instead of tricking the VM into
> Unicode mode? If you do what you did above some other messages come
> in
> with Unicode args too and while this may be desirable at some point
> I'm
> not sure if we want this right away. For the time being I'd feel
> safer
> if we would handle WM_UNICHAR explicitly. Also, WM_UNICHAR uses
> (according to the docs) UTF-32 instead of UTF-16 as in your code.
> This
> might come in handy at some point.
OK...i've been trying to use the WM_UNICHAR solution but i haven't
managed to achieve it yet...
Does the window have to be registered to receive Unicode with
+SetWindowLongW(stWindow,GWL_WNDPROC,GetWindowLong(stWindow,GWL_WNDPROC));
+SetWindowLongW(consoleWindow,GWL_WNDPROC,GetWindowLong(consoleWindow,GWL_WNDPROC));
again in this case? ... i suppose not.
What i did is to add the following to the relevant switch statement
switch(msg->message) {
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
if(virtCode) keyCode = virtCode;
.................................
case WM_UNICHAR: // HERE
printf("Oops! Unicode char!\n");
break;
case WM_CHAR:
case WM_SYSCHAR:
/* Note: VK_RETURN is recorded as virtual key ONLY */
if(keyCode == 13) return 1;
pressCode = EventKeyChar;
break;
Also, i defined WM_UNICHAR with
#ifndef WM_UNICHAR
#define WM_UNICHAR 0x109
#endif
I also defined those as a workaround while googling
#define UNICODE
#define _UNICODE
But,
printf("Oops! Unicode char!\n");
is never invoked...
Has anyone implemented this solution??? Some guidelines would be most
welcome...
Sorry if this is a simple C-related thing... i'm not a very good C
programmer...but i want to become one! :-)
Thanks in advance...
Christos.
More information about the Vm-dev
mailing list