6 #include <X11/Intrinsic.h>
7 #include <X11/Xaw/Box.h>
8 #include <X11/Xaw/Command.h>
9 #include <X11/Xaw/Form.h>
10 #include <X11/Xaw/AsciiText.h>
11 #include <X11/Shell.h>
12 #include <X11/StringDefs.h>
13 #include <X11/cursorfont.h>
14 #include <X11/Xutil.h>
18 int quit(), help(), again(), go();
19 void advance_focus(), retreat_focus();
20 char fname[128], mname[128], lname[128], iname[128], uname[128], pname[128];
23 XtActionsRec field_actions[] = {
24 {"AdvanceFocus", advance_focus},
25 {"RetreatFocus", retreat_focus},
33 { fname }, { mname }, { lname }, { iname }, { uname }
47 setenv("XAPPLRESDIR", "/mit/moiradev/src/clients/xregister/");
48 TopWidget = XtInitialize("Register", "Register", NULL, 0,
49 (unsigned int *)&argc, argv);
51 XtGetApplicationResources(TopWidget, NULL, NULL, 0, NULL);
52 box = XtCreateManagedWidget("box", formWidgetClass, TopWidget, args, 0);
53 XtCreateManagedWidget("title", labelWidgetClass, box, args, 0);
54 XtCreateManagedWidget("logo", labelWidgetClass, box, args, 0);
55 XtCreateManagedWidget("info", asciiTextWidgetClass, box, args, 0);
56 XtCreateManagedWidget("fnamel", labelWidgetClass, box, args, 0);
57 XtCreateManagedWidget("mnamel", labelWidgetClass, box, args, 0);
58 XtCreateManagedWidget("lnamel", labelWidgetClass, box, args, 0);
59 XtCreateManagedWidget("idl", labelWidgetClass, box, args, 0);
60 XtCreateManagedWidget("loginl", labelWidgetClass, box, args, 0);
62 XtAddActions(field_actions, 2);
64 XtSetArg(args[0], XtNstring, fname);
65 fields[0].w = XtCreateManagedWidget("fnameb", asciiTextWidgetClass,
68 XtSetArg(args[0], XtNstring, mname);
69 fields[1].w = XtCreateManagedWidget("mnameb", asciiTextWidgetClass,
72 XtSetArg(args[0], XtNstring, lname);
73 fields[2].w = XtCreateManagedWidget("lnameb", asciiTextWidgetClass,
76 XtSetArg(args[0], XtNstring, iname);
77 fields[3].w = XtCreateManagedWidget("idb", asciiTextWidgetClass,
80 XtSetArg(args[0], XtNstring, uname);
81 fields[4].w = XtCreateManagedWidget("loginb", asciiTextWidgetClass,
84 w = XtCreateManagedWidget("go", commandWidgetClass, box, args, 0);
85 XtAddCallback(w, XtNcallback, go, NULL);
86 w = XtCreateManagedWidget("again", commandWidgetClass, box, args, 0);
87 XtAddCallback(w, XtNcallback, again, NULL);
88 w = XtCreateManagedWidget("quit", commandWidgetClass, box, args, 0);
89 XtAddCallback(w, XtNcallback, quit, NULL);
91 XtRealizeWidget(TopWidget);
101 remove_popup(ignored, w, ignored1)
106 XtPopdown((Widget) w);
117 static int inited = 0;
120 XtTranslateCoords(TopWidget, (Position) 0, (Position) 120, &x, &y);
122 XtSetArg(args[num_args], XtNx, x); num_args++;
123 XtSetArg(args[num_args], XtNy, y); num_args++;
124 top = XtCreatePopupShell("helpshell", transientShellWidgetClass,
125 TopWidget, args, num_args);
127 box = XtCreateManagedWidget("box", boxWidgetClass, top, NULL, 0);
128 last = XtCreateManagedWidget("helptext", asciiTextWidgetClass,
130 last = XtCreateManagedWidget("helpcmd", commandWidgetClass,
132 XtAddCallback(last, XtNcallback, remove_popup, top);
134 XtPopup(top, XtGrabNone);
139 fname[0] = mname[0] = lname[0] = iname[0] = uname[0] = pname[0] = 0;
149 XtSetArg(args[0], XtNborderWidth, 0);
150 XtSetArg(args[1], XtNdisplayCaret, False);
151 for (i = 0; i < NFIELDS; i++) {
152 XtSetValues(fields[i].w, args, 2);
154 XtSetArg(args[0], XtNborderWidth, 2);
155 XtSetArg(args[1], XtNdisplayCaret, True);
156 XtSetValues(fields[f].w, args, 2);
161 if (active_field++ >= NFIELDS)
163 activate_field(active_field);
169 if (active_field-- < 0)
170 active_field = NFIELDS;
171 activate_field(active_field);