XtManageChild (hello_main);
The widget management process in an Mrm application is different from the one used in a C code interface, where
you must use the widget creation convenience routines that create and manage the widgets, or explicitly call
XtManageChild() on each widget. However, Mrm makes one exception−−it does not manage shell widgets in
order to prevent menus and dialogs from popping up unexpectedly.
After managing the top−level widget, all that's left to do is realize the widgets and hand off control to Xt's event
processing loop. The following two calls make these steps happen:
XtRealizeWidget (toplevel);
XtAppMainLoop (app_context);
Again, these calls are part of any Xt application, whether or not you use UIL and Mrm to create the interface. The call
to XtRealizeWidget() creates windows for the widgets, initiates geometry management, and maps the windows.
The call to XtAppMainLoop() causes the application to begin processing events from the X server.
23.6 Summary
The basic purpose of UIL and Mrm is to provide a way to describe and create a Motif user interface. UIL is a static
user interface description language that allows you to define widget hierarchies and specify the resource and callback
settings of those widgets. Mrm is a run−time library that provides the application interface for creating the widgets
described in a UIL module. We considered some of the advantages and disadvantages of programming with UIL and
Mrm. Understanding these tradeoffs can help you decide when ...