XtAppMainLoop() 														   XtAppMainLoop()

Name
  XtAppMainLoop - continuously process events.

Synopsis
  void XtAppMainLoop(app_context)
	 XtAppContext app_context;

Inputs
  app_context
	    Specifies the application context that identifies the application.

Returns
  XtAppMainLoop() enters an infinite loop and never returns.

Description
  XtAppMainLoop()  enters  an  infinite  loop  which  calls  XtAppNextEvent() to wait for an events on all displays in app_context and XtDis-
  patchEvent() to dispatch that event to the appropriate code.

Usage
  Most applications will call XtAppNextEvent() as the last line of their main() procedure.  Some applications may provide their own  versions
  of  this  loop, however.  A custom event loop might test an application-dependent global flag or other termination condition before looping
  back and calling XtAppNextEvent().  If the number of top-level widgets drops to zero, the application may be able to exit safely, for exam-
  ple.

  Applications that use multiple application contexts or that use internal event loops will have to build their own event loop.

Background
  XtAppNextEvent()  looks  for	X  events in the input queue, and also handles timer events (see XtAppAddTimeOut()) and events from alternate
  input sources (see XtAppAddInput()).	If none of these events are pending and a work	procedure  (see  XtAppAddWorkProc())  is  registered,
  XtAppNextEvent()  invokes  that  work procedure to do background processing, otherwise it blocks waiting for an event.  Note that XtAppNex-
  tEvent() dispatches timer and input events directly, but returns any X events that occur.   Within  XtAppMainLoop(),	these  X  events  are
  always passed to XtDispatchEvent().

  XtDispatchEvent()  dispatches an event to the appropriate event handlers (see XtAddEventHandler()).  Note that the translation manager reg-
  isters an event handler, and that events that are dispatched to the translation manager will be further  dispatched  through	the  transla-
  tions-to-actions mechanism.

Example
  XtAppMainLoop() is implemented as follows:

     void XtAppMainLoop(app)
	     XtAppContext app;
     {
	 XEvent event;

	 for (;;) {
	     XtAppNextEvent(app, &event);
	     XtDispatchEvent(&event);
	 }
     }

See Also
  XtAddEventHandler(1), XtAppAddInput(1), XtAppAddTimeOut(1), XtAppAddWorkProc(1), XtAppNextEvent(1), XtAppProcessEvent(1), XtDis-
  patchEvent(1).

Xt - Event Handling														   XtAppMainLoop()