Revision [187]
This is an old revision of ioGetNextEvent made by JohnMcIntosh on 2008-10-16 23:19:40.
sqInt ioGetNextEvent( sqInputEvent *evt)
Parms:
Evt is a pointer to an array of words that we populate with event data.
return: NONE, fake return of zero
Can set success() to fail, not fail the primitive
From: Interpreter
Why:
To get FIFO UI event data from the UI
Responsibility:
Most VMs have a FIFO queue that contains subclasses of sqInputEvent to record mouse, keyboard, drag/drop, menu and window events.
Most VMs call ioProcessEvents if the queue is empty
MacIntosh
os-9/OSXCarbon
ioProcessEvents is always called.
Cocoa:
TBD
iPhone
Adds a new event type that indicates we have a pending complex data object to return. This data object is to support the
multi-touch UI. The smalltalk event queue processing logic has to make a different call to fetch the data from another queue.
This requires a change to the currently shipping VMMaker to allow us to pass up a smalltalk object, versus just integers.
Unix
Windows
IF there are no events it calls ioProcessEvents, otherwise return next event on queue. Queue is not locked
BUGS
Most VMs don't consider locking the FIFO queue, are they all thread safe?
Some VMs return true/false, but the return value is ignored.