This is DataFileThreeDPane.m in view mode; [Download] [Up]
/* * Copyright (C) 1993 Robert Davis * * This program is free software; you can redistribute it and/or * modify it under the terms of Version 2, or any later version, of * the GNU General Public License as published by the Free Software * Foundation. */ static char RCSId[]="$Id: DataFileThreeDPane.m,v 1.3 1993/05/30 09:10:10 davis Exp $"; #import <appkit/Application.h> #import <appkit/FormCell.h> #import <appkit/Matrix.h> #import <appkit/Panel.h> #import <appkit/TextFieldCell.h> #import <appkit/View.h> #import <objc/NXStringTable.h> #import "DataFileThreeDPane.h" #import "DataOptionsPanel.h" #import "FunctionObject.h" #import "Status.h" @implementation DataFileThreeDPane - init { [super init]; [NXApp loadNibSection: "DataFileThreeDPane.nib" owner: self withNames: NO fromZone: [self zone]]; return self; } - setDetailed:sender { struct coldat *cd = [[doc function] columnData]; BOOL isDetailed = [sender state]; if (isDetailed != cd->isOn) { BOOL report = [status report]; cd->isOn = isDetailed; [status setReport:NO]; [self setZOnly:zOnlyRadioMatrix]; [status setReport:report]; [status reportSettingsChange:self]; } return self; } - setColumnsData:sender { FunctionObject *f = [doc function]; struct coldat *columnData = [f columnData]; int value = [[sender selectedCell] intValue]; if ((value <= columnData->number) && (value > 0)){ switch ([sender selectedTag]) { case THREED_XCOL: columnData->x = value; break; case THREED_YCOL: columnData->y = value; break; case THREED_ZCOL: case THREED_ZCOLONLY: columnData->z = value; break; } [status reportSettingsChange:self]; } if ([self forceUpdateStatus:status doc:doc]) [[infoField superview] display]; /* Display box */ return self; } - setZOnly:sender; { BOOL useZOnly = ([sender selectedTag] == Z_ONLY); FunctionObject *f = [doc function]; struct coldat *columnData = [f columnData]; if (!useZOnly != columnData->useX) { columnData->useX = !useZOnly; columnData->useY = !useZOnly; columnData->useZ = YES; /* * Parametric mode should be on if using Z Only mode. Off * otherwise. */ if ([status parametric] == useZOnly) [status setParametric:!useZOnly]; else [status reportSettingsChange:self]; } if ([self forceUpdateStatus:status doc:doc]) [[infoField superview] display]; /* Display box */ return self; } - (BOOL)updateStatus:aStatus doc:aDoc { FunctionObject *f; [super updateStatus:aStatus doc:aDoc]; f = [doc function]; if (f) { struct coldat *c = [f columnData]; char info[1023]; BOOL enabled = c->isOn; Window *viewWindow; [(viewWindow = [view window]) disableDisplay]; [detailedButton setState:enabled]; if (c->number == 1) strcpy (info, [stringSet valueForStringKey:"columnsInfoSingular"]); else sprintf (info, [stringSet valueForStringKey:"columnsInfoPlural"], c->number); [infoField setStringValue: info]; [infoField setEnabled: enabled]; [infoLine2 setEnabled: enabled]; [zOnlyRadioMatrix setEnabled:enabled]; [zOnlyRadioMatrix selectCellWithTag:c->useX ? !Z_ONLY : Z_ONLY]; [xColField setEnabled:(enabled && c->useX)]; [xColField setIntValue:c->x]; [yColField setEnabled:(enabled && c->useY)]; [yColField setIntValue:c->y]; [zColField setEnabled:(enabled && c->useZ && c->useX)]; [zColField setIntValue:c->z]; [zOnlyColField setEnabled:(enabled && c->useZ && !c->useX)]; [zOnlyColField setIntValue:c->z]; [viewWindow reenableDisplay]; } return YES; } // Shuts up the compiler about unused RCSId - (const char *) rcsid { return RCSId; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.