Path: utzoo!attcan!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!bloom-beacon!ATHENA.MIT.EDU!swick From: swick@ATHENA.MIT.EDU (Ralph R. Swick) Newsgroups: comp.windows.x Subject: Re: A Call for Callforwards... Message-ID: <8906291555.AA02112@LYRE.MIT.EDU> Date: 29 Jun 89 15:55:56 GMT References: <8906260010.AA16100@bu-cs.BU.EDU> Sender: daemon@bloom-beacon.MIT.EDU Organization: DEC/MIT Project Athena Lines: 17 > A Callforward is simply an application-supplied function which the > widget calls (if it exists) and expects a return value from. > ... > The definition is almost identical to that of a Callback but the > return type is changed from void to some generic type (eg. caddr_t). I certainly agree with you that widgets could be calling into application code to retrieve information, not just to provide it, and that this would make certain APIs less clumsy. But we don't need to add a new (procedure) datatype to support this in Xt; the call_data argument in XtCallbackProc is defined by the widget to be whatever it needs, including a pointer to a return value from the callback. The syntax you propose for callforwards has a syntactic advantage for single-valued procedures but doesn't actually extend the bag o' tricks.