Cappuccino is implemented differently than Cocoa, presumably mostly for good reasons (although perhaps there are also some things done for expediency in the initial version).
One example is that -runModal for CPAlert is non-blocking and you have to pick up the user response from a delegate asynchronously to launching the alert dialog.
While not a great hardship, structuring the code in 'continuation style', where half of the logic sets up the modal and launches it, and another half picks up with logic having to do with the response, I was wondering if it was possible to recover a blocking interface, which would return the response code like NSAlert's -runModal.
One way you could do this in Cocoa is to create a runLoop that will block a call, while events still proceed in the 'inner loop', until you determine that conditions have been met to return on the original call (in which case you terminate the nested runLoop and the stack pops back with the original code flow.
I've checked out the foundation sources in Cappuccino and it seems that it has a rather 'truncated' runLoop model, so this strategy is probably not possible.
Is there any other way I can block and continue processing events in a way that would enable me to put a synchronous wrapper around -runModal?