This is ViewMenu.c in view mode; [Download] [Up]
#if ( !defined(lint) && !defined(SABER))
static char PCN_rcsid[] = "$Header: /ufs/comp/mei/PROJ_PCN/onprofile/IFModel/Model/Gauge/RCS/ViewMenu.c,v 1.1 1992/04/17 18:16:34 mei Exp $";
#endif
/* AERO_MESG */
#include <Xsw/Xsw.h>
#include <X11/Xaw/SimpleMenu.h>
#include <X11/Xaw/SmeBSB.h>
#include <X11/Xaw/SmeLine.h>
#include <Xsw/Count.h>
#include <Xsw/Chart.h>
#include "Viewer.h"
typedef struct {
String title;
StringList data;
VTypeList type;
PixelList colors;
PatternList patterns;
Widget vw;
} ViewData, *ViewDataPtr;
/* ARGSUSED */
static void
select_view(w, client_data, call_data)
Widget w;
XtPointer client_data;
XtPointer call_data;
{
ViewDataPtr pointer = (ViewDataPtr)client_data;
Widget radio_view;
XtVaSetValues(pointer->vw, XtNtitle,pointer->title,
XtNdata, pointer->data,
XtNrootType, pointer->type, NULL);
XtVaSetValues(XswViewerChartWidget(pointer->vw),
XtNcolors, pointer->colors,
XtNpatterns, pointer->patterns, NULL);
XtVaGetValues(pointer->vw, XtNradioView, &radio_view, NULL);
if (radio_view != NULL)
XtCallCallbacks(radio_view, XtNcallback, NULL);
}
void
CreateViewMenu(w, name, currdata)
Widget w;
char * name;
StringList currdata;
{
static XtResource view_resources[] = {
{ "title", "Title", XtRString, sizeof(String),
XtOffset(ViewDataPtr, title), XtRString, "View" },
{ "data", "Data", XtRStringList, sizeof (StringList),
XtOffset(ViewDataPtr, data), XtRString, "Time" },
{ "type", "Type", XtRVTypeList, sizeof (VTypeList),
XtOffset(ViewDataPtr, type), XtRString, "ThreeD" },
{ "colors", "Colors", XtRPixelList, sizeof (PixelList),
XtOffset(ViewDataPtr, colors), XtRString, "black" },
{ "patterns", "Patterns", XtRPatternList, sizeof (PatternList),
XtOffset(ViewDataPtr, patterns), XtRString, "solid" },
};
ViewDataPtr * view;
Widget null_w, menu_w;
Arg wargs[3];
int n, i;
ViewData data;
char name1[30];
ViewDataPtr pointer;
CountData c_data;
menu_w = XtCreatePopupShell(name, simpleMenuWidgetClass,
XtParent(w), NULL, 0);
XtGetApplicationResources(menu_w, &c_data, cnt_resources,
XtNumber(cnt_resources), NULL, 0);
null_w = XtCreateManagedWidget(name,
smeLineObjectClass,
menu_w, NULL, 0);
view = (ViewDataPtr *)XtCalloc(c_data.count, sizeof(ViewDataPtr));
if (c_data.count <= 0) c_data.count = 1;
for(i = 1; i <= c_data.count; i++) {
sprintf((char *)name1, "view%d", i);
null_w = XtCreateManagedWidget(name1,
smeBSBObjectClass,
menu_w, wargs, 0);
XtGetApplicationResources(null_w, &data, view_resources,
XtNumber(view_resources), NULL, 0);
XtSetArg(wargs[0], XtNlabel, data.title);
pointer = (ViewDataPtr)XtMalloc(sizeof(ViewData));
view[i-1] = pointer;
XtSetValues(null_w, wargs, 1);
pointer->title = data.title;
pointer->data = data.data;
pointer->type = data.type;
pointer->colors = data.colors;
pointer->patterns = data.patterns;
pointer->vw = w;
XtAddCallback(null_w, XtNcallback, select_view, (XtPointer)pointer);
}
n = 0;
if (currdata != NULL) {
while (n < c_data.count) {
i = 0;
while (currdata[i] != NULL && view[n]->data[i] != NULL &&
(! strcmp(currdata[i],view[n]->data[i])))
i++;
if (currdata[i] != NULL || view[n]->data[i] != NULL)
n++;
else
break;
}
}
select_view((Widget)NULL, (XtPointer)view[n], (XtPointer)NULL);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.