X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fxio.c;h=a84ee44192a077809e8da3bb7be703b3a89fa84b;hp=ea13d0554cc1f044dee0267736149648972a10c6;hb=a4e2f7b1e48278ae7642c8fda987a67fe8674420;hpb=38a3852bd4f39e5798588d94b958dabc3e56cc7a diff --git a/src/xio.c b/src/xio.c index ea13d05..a84ee44 100644 --- a/src/xio.c +++ b/src/xio.c @@ -7,9 +7,26 @@ #include XtAppContext app_context; -Widget toplevel, form, quit, 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,24 +34,38 @@ 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); - 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); + phasers = XtVaCreateManagedWidget("phasers", + commandWidgetClass, buttons, + NULL); + photons = XtVaCreateManagedWidget("photons", + commandWidgetClass, buttons, + NULL); + destruct = XtVaCreateManagedWidget("destruct", + commandWidgetClass, buttons, + NULL); + quit = XtVaCreateManagedWidget("quit", + commandWidgetClass, buttons, + 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); + /* the command window */ + text = XtVaCreateManagedWidget ("text", asciiTextWidgetClass, form, + XtNfromVert, buttons, + 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); }