X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fxio.c;h=9e59c19945c595c9af846ff61a972695a7c98ef3;hp=6d604909d1fe150a5444b97c0c950f01d405040d;hb=9aef5f5aae5fde0ed2b462945750c7aee59b3c1e;hpb=e3730bb826efe601fe51626aab064d395733d4c3 diff --git a/src/xio.c b/src/xio.c index 6d60490..9e59c19 100644 --- a/src/xio.c +++ b/src/xio.c @@ -1,4 +1,26 @@ +/* + * Problems with this code: + * 1. The text window behaves like it's only a few lines high, + * scrolling in response to Return when the insertion point + * is nowhere near the last line. + * 2. The attempt to insert text with XawTextReplace() core dumps. + * 3. I haven't found a way to write a callback that triggers on Return + * and yields the line before the return. The explanation at + * http://www.linuxjunkies.org/programming/GUI/xwindow/x11/text.html + * hints that this may be difficult. + * + * The functional goal is this: + * 1. Button pushes should be able to insert commands at the buffer's + * current insertion point. + * 2. When a user finishes a command with Return, a callback should + * receive the line of input typed. + * + * All the input passed to the game in back of this will be lines full + * of commands generated either by typing into the text buffer directly + * or by button presses that generate text unto the buffer. + */ #include +#include #include #include #include @@ -6,7 +28,9 @@ #include #include #include -#include "sst.h" +//#include "sst.h" +#define OPTION_PLANETS 1 +#define OPTION_PROBE 2 static XtAppContext app_context; static Widget toplevel, text, form; @@ -156,7 +180,7 @@ static void instantiate_main(int argc, char **argv) misclabel = XtVaCreateManagedWidget("misclabel", labelWidgetClass, misc, NULL); - for (cp = commands; cp < commands + sizeof(commands)/sizeof(commands[0]); cp++) { + for (cp = commands; cp < commands + ARRAY_SIZE(commands); cp++) { cp->widget = XtVaCreateManagedWidget(cp->name, commandWidgetClass, *cp->parent,