This is DataFilePane.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: DataFilePane.m,v 1.7 1993/05/30 09:10:07 davis Exp $"; #import <appkit/Application.h> #import <appkit/Button.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 "DataFilePane.h" #import "DataOptionsPanel.h" #import "FunctionObject.h" #import "Status.h" @implementation DataFilePane - init { [super init]; [NXApp loadNibSection: "DataFilePane.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) { cd->isOn = isDetailed; [status reportSettingsChange:self]; if ([self forceUpdateStatus:status doc:doc]) [[infoField superview] display]; } 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 XCOL: columnData->x = value; break; case YCOL: columnData->y = value; break; case YDELTACOL: columnData->yDelta = value; break; case YLOWCOL: columnData->yLow = value; break; case YHIGHCOL: columnData->yHigh = value; break; case BOXWIDTHCOL: columnData->boxWidth = value; break; } [status reportSettingsChange:self]; } if ([self forceUpdateStatus:status doc:doc]) [[infoField superview] display]; /* Display the box */ return self; } - setYDiff:sender { BOOL useDelta = ([sender selectedTag] == USE_DELTA); FunctionObject *f = [doc function]; struct coldat *columnData = [f columnData]; if (useDelta != columnData->useYDelta) { columnData->useYDelta = useDelta; columnData->useYLow = !useDelta; columnData->useYHigh = !useDelta; [status reportSettingsChange:self]; } if ([self forceUpdateStatus:status doc:doc]) [[infoField superview] display]; /* Display the 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; int style = [f style]; 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]; [xColField setEnabled:(enabled && c->useX)]; [xColField setIntValue:c->x]; [yColField setEnabled:(enabled && c->useY)]; [yColField setIntValue:c->y]; enabled = enabled && (c->number > 2); [boxWidthColField setEnabled:(enabled && c->useBoxWidth && ((style == FUNCTION_BOXES) || (style == FUNCTION_BOXERRORBARS)))]; [boxWidthColField setIntValue:c->boxWidth]; enabled = enabled && ((style == FUNCTION_ERRORBARS) || (style == FUNCTION_BOXERRORBARS)); [colRadioMatrix setEnabled:enabled]; [colRadioMatrix selectCellWithTag:c->useYDelta? USE_DELTA :!USE_DELTA]; [yDeltaColField setEnabled:(enabled && c->useYDelta)]; [yDeltaColField setIntValue:c->yDelta]; [yLowColField setEnabled:(enabled && c->useYLow)]; [yLowColField setIntValue:c->yLow]; [yHighColField setEnabled:(enabled && c->useYHigh)]; [yHighColField setIntValue:c->yHigh]; [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.