26.2 Creating the Application
The original editor.c program needs several changes before it can work with the UIL user interface we have defined.
Like any application that uses UIL, the widget creation is now handled by Mrm. The callbacks also need a few minor
changes that are related to the use of Mrm. We have added a new callback that lets the application obtain the widget
IDs of Mrm−created widgets. The new version of the application is shown in the source code Compared to the
original version, the editor_uil.c program is about 50 lines shorter. Most of the shrinkage comes from main(), in
which the Motif widget creation calls are replaced by Mrm calls.
/* editor_uil.c −− create a full−blown Motif editor application complete
* with a menubar, facilities to read and write files, text search
* and replace, clipboard support and so forth.
*/
#include <Mrm/MrmAppl.h>
#include <Xm/Text.h>
#include <Xm/MessageB.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
MrmHierarchy hierarchy;
Cardinal status;
MrmType class_code;
static char buf[256];
static String uid_files[] = { "editor", "menubar", "dialogs" };
XtAppContext app_context;
Widget toplevel, text_edit, search_text, replace_text, text_output;
static MrmRegisterArg widgets_list[] = {
{ "w_text_edit", (XtPointer) &text_edit },
{ "w_search_text", (XtPointer) &search_text },
{ "w_replace_text", (XtPointer) &replace_text },
{ "w_text_output", (XtPointer) &text_output },
};
void register_widget(), file_cb(), edit_cb(), ...