This is MakeIt.c in view mode; [Download] [Up]
#if ( !defined(lint) && !defined(SABER)) static char PCN_rcsid[] = "$Header: /tmp_mnt/ufs/pcn/carl/PCN/IF/Xsw/RCS/MakeIt.c,v 1.4 91/09/13 17:02:31 carl Exp $"; #endif /****************************************************************************** * * * Copyright (C) The Aerospace Corporation 1991 * * * * This software was developed by The Aerospace Corporation as a * * research endeavor for the United States Air Force * * Space Systems Division. The current version of the Gauge * * computer program is available for release to you for * * educational and research purposes only. It is not * * to be used for commercial purposes. * * * * In addition, the following conditions shall apply. * * * * 1) The computer software and documentation were designed to * * satisfy internal Aerospace requirements only. * * The software is provided ``as is,'' and The Aerospace Corporation * * makes no warranty, expressed or implied, as to it accuracy, * * functioning, or fitness for a particular purpose. * * * * 2) The Aerospace Corporation and its personnel are not * * responsible for providing technical support or general assistance * * with respect to the software. * * * * 3) Neither The Aerospace Corporation nor its personnel shall be * * liable for claims, losses, or damages arising out of or connected * * with the use of this software. * * Your sole and exclusive remedy shall be to request a replacement * * copy of the program. * * * ******************************************************************************/ #include "Xsw.h" #include "Count.h" #include <X11/Xaw/Box.h> #include <X11/Xaw/Toggle.h> #include <X11/Xaw/Command.h> #include <X11/Xaw/SimpleMenu.h> #include <X11/Xaw/SmeBSB.h> #include <X11/Xaw/SmeLine.h> void XswMakeMenu(parent, name) Widget parent; char * name; { Widget menu_w; int i; CountData data; char item[20]; menu_w = XtCreatePopupShell(name, simpleMenuWidgetClass, parent, NULL, 0); XtGetApplicationResources(menu_w, &data, cnt_resources, XtNumber(cnt_resources), NULL, 0); (void)XtCreateManagedWidget(name, smeLineObjectClass, menu_w, NULL, 0); for(i = 1; i <= data.count; i++) { sprintf(item, "item%d", i); (void)XtCreateManagedWidget(item, smeBSBObjectClass, menu_w, NULL, 0); } } void XswMakeCommandButtons(box_w) Widget box_w; { int i; char name[20]; CountData data; XtGetApplicationResources(box_w, &data, cnt_resources, XtNumber(cnt_resources), NULL, 0); for(i = 1; i <= data.count; i++) { (void)sprintf(name, "button%d", i); (void)XtCreateManagedWidget(name, commandWidgetClass, box_w, NULL, 0); } } /* Make a set of radio buttons. box_w - parent widget in which to place the buttons. buttons - a set of existing radio buttons from which to initialize the button state */ void XswMakeRadioButtons(box_w, buttons) Widget box_w; Widget buttons; { int i; char name[20]; CountData data; Widget toggle; XtGetApplicationResources(box_w, &data, cnt_resources, XtNumber(cnt_resources), NULL, 0); for(i = 1; i <= data.count; i++) { sprintf(name, "radio%d", i); toggle = (buttons == (Widget) NULL) ? NULL : XtNameToWidget(buttons,name); XswMakeRadioSet(box_w, name, toggle); } } void XswMakeRadioSet(parent, name, toggle) Widget parent; char * name; Widget toggle; { static char toggle_trans[] = "<Btn1Down>,<Btn1Up>: set()notify()"; Widget set_w, t1_w, t2_w; Arg wargs[3]; XtTranslations trans_table; char n1[20]; CountData data; int argc; int i, pos; int truetoggle; Boolean state = False; Widget first_w = NULL; trans_table = XtParseTranslationTable(toggle_trans); set_w = XtCreateManagedWidget(name, boxWidgetClass, parent, NULL, 0); XtGetApplicationResources(set_w, &data, cnt_resources, XtNumber(cnt_resources), NULL, 0); if (data.count <= 0) data.count = 2; t2_w = NULL; sprintf(n1, "%sA", name); pos = strlen(n1) - 1; truetoggle = -1; if (toggle != (Widget) NULL) truetoggle = (int)XawToggleGetCurrent(XtNameToWidget(toggle,n1)); for(i=0; i < data.count; i++) { argc = 0; XtSetArg(wargs[argc], XtNradioData, (i+1)); argc++; if (truetoggle > 0) { XtSetArg(wargs[argc], XtNstate, False); argc++; } t1_w = XtCreateManagedWidget(n1, toggleWidgetClass, set_w, wargs, argc); if (first_w == NULL) first_w = t1_w; XtOverrideTranslations(t1_w, trans_table); if (t2_w != NULL) { XawToggleChangeRadioGroup(t1_w, t2_w); XawToggleChangeRadioGroup(t2_w, t1_w); } t2_w = t1_w; /* Initialize state from existing radio button */ if (!state) { XtSetArg(wargs[0], XtNstate, &state); XtGetValues(t1_w, wargs, 1); if (state) XtCallCallbacks(t1_w, XtNcallback, (XtPointer)(i+1)); } n1[pos]++; } if (!state) { truetoggle = (truetoggle < 0) ? 1 : truetoggle; XawToggleSetCurrent(first_w,(XtPointer) truetoggle); } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.