Following the Event chronicles :P

Since I know that some people are working on event Stuff(Stef, Fernando, Igor), I'd like to listen to what they(or anybody else :) ) think about this.
I've no code (yet) except for the one I've written to play with the vm and test the keyboard stuff :P. �And I know there is some package where Stef and Igor where refactoring the event stuff and I don't want to duplicate efforts either, jeje.

So, this is what from other models I think a complete keyboard event model should have:

Keyboard interaction raises 3 events (3 different kind of objects!):

When a key is pressed, it informs the pressed key with modifiers (it should not send a unicode value of a character).

Should understand the messages:

"boolean indicating which modifiers where pressed"
#alt
#cmd
#shift
#ctrl
#opt?

"a collection of modifier objects"
#modifiers

"the key pressed. �It is not a Character, it should be an instance of Key (read about Keys in the Glitches below)"
#key

"to know if the event wasHandled"
#handled:
#handled

When a key with a unicode representation is pressed, informs it.

should understand the messages:

"the unicode character representation of this event. �It is a Character, not an instance of Key"
#character

"to know if the event wasHandled"
#handled:
#handled

When a key is released, it informs the released key with modifiers (it should not send a unicode value of a character).

Should understand the messages:

"the main key pressed. �It is not a Character, it should be an instance of Key (read about Keys in the Glitches below)"
#key

"to know if the event wasHandled"
#handled:
#handled


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Glitches

1) Today every keyboard event handled on the image side is handled on keypress, which:
� - limits the ammount of shortcuts you can have (because there are keys that you can't handle)
� - to make it work, there are some hacks (at image and vm side) to allow keys with no char representation enter as keypresses (like arrow keys).
� - changing this is ALOT of work :P
��
2) Some key representation varies from platform to platform. �i.e.: A Shift-only press generates today a keydown event with:
� - a 254 keyCode value in unix
� - a �16 keyCode value in windows
��
So I think a "table" has to be built and documented for mappings for each key in a keyboard. �Examples of this can be found in enums/defs from other platforms:

Windows platform: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
.Net: http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.71).aspx
X11 (current used window system in unix vm): http://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h
Javascript: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
Gtk: http://www.koders.com/c/fidD9E5E78FD91FE6ABDD6D3F78DA5E4A0FADE79933.aspx

After that, both vm's and image should follow that table :). �And of course, these keys should be reified in the image side independently of their character pairs.

Guille