X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fxio.c;h=a84ee44192a077809e8da3bb7be703b3a89fa84b;hb=a4e2f7b1e48278ae7642c8fda987a67fe8674420;hp=63faceada62e4320fc425ff2f14af61b19a22360;hpb=cb7badd92a2920ca863cc45af6b58e89ea9e5a9f;p=super-star-trek.git diff --git a/src/xio.c b/src/xio.c index 63facea..a84ee44 100644 --- a/src/xio.c +++ b/src/xio.c @@ -7,9 +7,26 @@ #include XtAppContext app_context; -Widget toplevel, form, buttons, quit, destruct, text; +Widget toplevel, form, text; +Widget buttons, phasers, photons, destruct, quit; -void quit_proc (Widget w, XtPointer client_data, XtPointer call_data) +String fallback[] = { + /* button labels */ + "*phasers.label: Phasers", + "*photons.label: Torps", + "*destruct.label: Destruct", + "*quit.label: Quit", + /* text window resources */ + "*text.resizable: true", + "*text.resize: ResizeBoth", + /* layout constraints */ + "*photons.fromHoriz: phasers", + "*destruct.fromHoriz: photons", + "*quit.fromHoriz: destruct", + NULL, +}; + +static void quit_proc (Widget w, XtPointer client_data, XtPointer call_data) { XtDestroyApplicationContext (app_context); exit (0); @@ -17,22 +34,30 @@ void quit_proc (Widget w, XtPointer client_data, XtPointer call_data) int main (int argc, char **argv) { - toplevel = XtVaOpenApplication (&app_context, "XThird", NULL, 0, &argc, - argv, NULL, applicationShellWidgetClass, + toplevel = XtVaOpenApplication (&app_context, "sst2k", NULL, 0, &argc, + argv, fallback, + applicationShellWidgetClass, XtNallowShellResize, True, NULL); - form = XtVaCreateManagedWidget ("form", formWidgetClass, toplevel, NULL); - buttons = XtVaCreateManagedWidget ("form", formWidgetClass, form, NULL); - quit = XtVaCreateManagedWidget("quit", + form = XtVaCreateManagedWidget ("form", formWidgetClass, toplevel, NULL); + /* The button panel */ + buttons = XtVaCreateManagedWidget ("form", formWidgetClass, form, NULL); + phasers = XtVaCreateManagedWidget("phasers", commandWidgetClass, buttons, - XtNlabel, "Quit", NULL); + NULL); + photons = XtVaCreateManagedWidget("photons", + commandWidgetClass, buttons, + NULL); destruct = XtVaCreateManagedWidget("destruct", commandWidgetClass, buttons, - XtNfromHoriz, quit, - XtNlabel, "Destruct", NULL); - text = XtVaCreateManagedWidget ("text", asciiTextWidgetClass, form, - XtNfromVert, buttons, XtNresize, - XawtextResizeBoth, XtNresizable, True, NULL); + NULL); + quit = XtVaCreateManagedWidget("quit", + commandWidgetClass, buttons, + NULL); XtAddCallback (quit, XtNcallback, quit_proc, NULL); + /* the command window */ + text = XtVaCreateManagedWidget ("text", asciiTextWidgetClass, form, + XtNfromVert, buttons, + NULL); /* sample text so the widget will be identifiable */ XtVaSetValues (text, XtNtype, XawAsciiString, @@ -40,5 +65,7 @@ int main (int argc, char **argv) XtVaSetValues (text, XtNeditType, XawtextRead, XtNdisplayCaret, False, NULL); XtRealizeWidget (toplevel); XtAppMainLoop (app_context); + /* loop may be interrupted */ + XtDestroyApplicationContext (app_context); exit(0); }