#include <X11/Xaw/AsciiText.h>
XtAppContext app_context;
-Widget toplevel, form, quit, text;
+Widget toplevel, form, buttons, quit, destruct, text;
-void quit_proc (Widget w, XtPointer client_data, XtPointer call_data)
+String fallback[] = {
+ "*destruct.fromHoriz: quit",
+ NULL,
+};
+
+static void quit_proc (Widget w, XtPointer client_data, XtPointer call_data)
{
XtDestroyApplicationContext (app_context);
exit (0);
int main (int argc, char **argv)
{
toplevel = XtVaOpenApplication (&app_context, "XThird", NULL, 0, &argc,
- argv, NULL, applicationShellWidgetClass,
+ argv, fallback,
+ applicationShellWidgetClass,
XtNallowShellResize, True, NULL);
- form = XtVaCreateManagedWidget ("form", formWidgetClass, toplevel, NULL);
- quit = XtVaCreateManagedWidget ("quit", commandWidgetClass, form, XtNlabel,
- "Quit", NULL);
- text = XtVaCreateManagedWidget ("text", asciiTextWidgetClass, form,
- XtNfromVert, quit, XtNresize,
- XawtextResizeBoth, XtNresizable, True, NULL);
+ form = XtVaCreateManagedWidget ("form", formWidgetClass, toplevel, NULL);
+ /* The button panel */
+ buttons = XtVaCreateManagedWidget ("form", formWidgetClass, form, NULL);
+ quit = XtVaCreateManagedWidget("quit",
+ commandWidgetClass, buttons,
+ XtNlabel, "Quit", NULL);
XtAddCallback (quit, XtNcallback, quit_proc, NULL);
- if (argc <= 1)
- XtVaSetValues (text, XtNtype, XawAsciiString,
- XtNstring, "Fool! You should"
- " supply a file name!", NULL);
- else
- XtVaSetValues (text, XtNtype, XawAsciiFile, XtNstring, argv [1], NULL);
+ destruct = XtVaCreateManagedWidget("destruct",
+ commandWidgetClass, buttons,
+ XtNlabel, "Destruct", NULL);
+ /* the command window */
+ text = XtVaCreateManagedWidget ("text", asciiTextWidgetClass, form,
+ XtNfromVert, buttons,
+ XtNresize, XawtextResizeBoth,
+ XtNresizable, True, NULL);
+
+ /* sample text so the widget will be identifiable */
+ XtVaSetValues (text, XtNtype, XawAsciiString,
+ XtNstring, "Command window", NULL);
XtVaSetValues (text, XtNeditType, XawtextRead, XtNdisplayCaret, False, NULL);
XtRealizeWidget (toplevel);
XtAppMainLoop (app_context);
+ /* loop may be interrupted */
+ XtDestroyApplicationContext (app_context);
exit(0);
}