Hi, yes, it should be possible, but I need to see and think a bit on the best way to implement it... maybe a week end task?
best, Esteban El 24/01/2012, a las 7:54p.m., Fernando Olivero escribió: > 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.duca...@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 >> >> >