digger@cae780.csi.com (Doug Selph) (03/22/91)
Hi World!
I am developing a motif-application using 1.1. I am trying
to handle properly the event queue with multiple application contexts.
My main loop looks something like this:
*****************
main_loop(calc_context, page_context, sysmsg_context)
XtAppContext calc_context, page_context, sysmsg_context;
{
XtInputMask mask;
Display *scalcDisplay(), *spageDisplay(), *sysmsgDisplay();
while(1)
{
if ((mask = XtAppPending(calc_context)) != 0)
{
XtAppProcessEvent(calc_context, mask);
XFlush(scalcDisplay());
}
if ((mask = XtAppPending(page_context)) != 0)
{
XtAppProcessEvent(page_context, mask);
XFlush(spageDisplay());
}
if ((mask = XtAppPending(sysmsg_context)) != 0)
{
XtAppProcessEvent(sysmsg_context, mask);
XFlush(sysmsgDisplay());
}
}
}
********************
My problem has to do with WorkProc's. I have a work
procedure that I want to do when nothing else is pending in
the 'page_context'. But work procedures are only called when
nothing is pending and if I call AppProcessEvent() at that time
then the rest of my contexts are left out.
So what I am looking for I guess, is a way to say,
if (XtPending() == 0) /* nothing pending anywhere */
XtDoWorkProcs(); /* do work procs until event happens */
I would do this at the end my loop.
Any ideas on how I can get what I want?
Please reply to digger@csi.com or ...uunet!cae780!digger
Thanks ahead of time for any replies.
---digger