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:
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