Does Cocoa VM send Function keys to the image? :D� How difficult is it to add?
YES! the keyboard events handling is a mess that should be rethought
and simplified.
I've recently played with Cocoa, and created a windowed app, that
captures events and sends them to a pharo image via sockets. so i
learned how is done in COCOA. In Cocoa, there are 3 key events:
NSKeyDown: The user generated a character or characters by pressing a key.
NSKeyUp: The user released a key. This event is always preceded by a
NSKeyDown event.
NSFlagsChanged: The user pressed or released a modifier key, or turned
Caps Lock on or off.
"When the type of an event is NSKeyDown, the next step is typically to
get the characters generated by the key-down using the characters
method."
I think the COCOA VM, should simply forward this events to the image.
Esteban, would this be possible?
The three are enough, to preserve all the current behavior �of Morphic.
In short, the VM should omit keyChar keyboard events, and start
announcing non-characters pressed or released events.
Fernando
On Tue, Jan 24, 2012 at 10:50 PM, St�phane Ducasse
<stephane.ducasse@inria.fr> wrote:
> I should learn more on the topic :).
> But on the principle yes I want to avoid all the hardcode stuff everywhere.
> Guillermo in feb we should have a coffee meeting with a group building new UI using Python (of course)
> and I could ask them how they manage keystrokes. Or we can also interact with them by mail.
> May be they do not have the answer.
>
>> Hi!
>>
>> While playing (again) to add Function keys support, reading documentation of how keyboard handling works on our vm and other platforms:
>>
>> .Net: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx
>> Javascript: http://www.quirksmode.org/js/keys.html
>>
>> And a quick explanation of Igor of how our vm works: http://lists.squeakfoundation.org/pipermail/vm-dev/2011-November/009661.html
>>
>>
>> What puzzles me is some of the following:
>>
>> - Keypress event should only be raised to send keystrokes having a character representation.
>> - but some keystrokes with no character representation are taken as keypresses! (arrowup, arrowdown, esc...) (and so, used to handle events instead of doing it on keydown)
>> - the strokes above should be only raised in keydowns IMHO.
>> - more on, we have in Character class representations for those non characters :P which is funny because they are not characters.
>>
>> And everything works, and fits in a kind of strange way :).
>>
>> Now, rearranging this to follow those conventions means:
>> - reify Keys (vs Characters). �So we can model modifier keys, function keys, arrow keys, independent from Characters.
>> - Keys (non-characters) should only be raised as single events on keydown.
>> - and the worse part is to fix all the hardcoded shortcuts messed everywhere in the image.
>>
>> Any thoughts on this?
>>
>> Thanks!
>> Guille
>
>