Revision [188]

This is an old revision of ioGetNextEvent made by JohnMcIntosh on 2008-10-16 23:22:28.

 

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
Uses proper multi-threaded Queue class for the FIFO queue

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
IF there are no events it calls ioProcessEvents, otherwise return next event on queue. Queue is not locked

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.

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki