This is Preferences.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: Preferences.m,v 1.7 1993/05/18 03:55:36 davis Exp $"; #import <appkit/Application.h> #import <appkit/Button.h> #import <appkit/Listener.h> #import <appkit/Matrix.h> #import <appkit/Panel.h> #import <defaults/defaults.h> #import "Gnuplot.h" #import "Preferences.h" #define OWNER "Gnuplot" /* Owner of defaults */ static NXDefaultsVector GnuplotDefaults = { {"ConstantUpdate", "1"}, /* Update after every change */ {"NewDocument", "1"}, /* Create a new doc at launch */ {"DefaultInspector", "2"}, /* Default Pane is Data */ {"ReadInitFile", "1"}, /* Currently unused */ {"HalvePlot", "1"}, /* Make plots half-size */ {NULL} }; @implementation Preferences - init { [super init]; NXRegisterDefaults(OWNER, GnuplotDefaults); /* Set instance variables to their defaults. */ constantUpdate = *NXGetDefaultValue(OWNER, "ConstantUpdate") - '0'; [Gnuplot setConstantUpdate:constantUpdate]; newDocument = (*NXGetDefaultValue(OWNER, "NewDocument") != '0'); defaultInspector = *NXGetDefaultValue(OWNER, "DefaultInspector") - '0'; halvePlot = (*NXGetDefaultValue(OWNER, "HalvePlot") != '0'); [Gnuplot setHalvePlot:halvePlot]; return self; } - free { [window free]; return [super free]; } - awakeFromNib { [window setFrameUsingName:"PreferencesPanel"]; [window setFrameAutosaveName:"PreferencesPanel"]; [constantUpdateMatrix selectCellWithTag:constantUpdate]; [newDocumentButton setState:newDocument]; [defaultInspectorMatrix selectCellWithTag:defaultInspector]; [halvePlotMatrix selectCellWithTag:halvePlot? 1:0]; return self; } - showPanel:sender { if (!window) { [NXApp loadNibSection: "Preferences.nib" owner: self withNames: NO fromZone: [self zone]]; } [window makeKeyAndOrderFront:self]; return self; } - doSetConstantUpdate:sender { char aString[2]; constantUpdate = [constantUpdateMatrix selectedTag]; aString[0] = '0' + constantUpdate; aString[1] = '\0'; NXWriteDefault (OWNER, "ConstantUpdate", aString); [Gnuplot setConstantUpdate:constantUpdate]; return self; } - (int)constantUpdate { return constantUpdate; } - doSetNewDocument:sender { const char *aString; if (newDocument = [newDocumentButton state]) aString = "1"; else aString = "0"; NXWriteDefault (OWNER, "NewDocument", aString); return self; } - (BOOL) newDocument { return newDocument; } - doSetDefaultInspector:sender { char aString[2]; defaultInspector = [defaultInspectorMatrix selectedTag]; aString[0] = '0' + defaultInspector; aString[1] = '\0'; NXWriteDefault (OWNER, "DefaultInspector", aString); return self; } - (int)defaultInspector { return defaultInspector; } - doSetHalvePlot:sender { const char *aString; if (halvePlot = [halvePlotMatrix selectedTag]) aString = "1"; else aString = "0"; NXWriteDefault (OWNER, "HalvePlot", aString); [Gnuplot setHalvePlot:halvePlot]; return self; } - (BOOL)halvePlot { return halvePlot; } // 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.