This is Preferences.m in view mode; [Download] [Up]
#import "Preferences.h" #import "Defaults.h" #import <appkit/appkit.h> #import "TokenString.h" #import "EnhancedMatrix.h" static NXDefaultsVector defaultsVector = { { "LogFile", "/usr/adm/ppp2.2.debug" }, { "LogDir","/usr/adm" }, { "PPPStop", "/etc/ppp/pppkill"}, { "DisplayLog","No" }, { "DisplayMeter","No" }, { "StartPPPOnLaunch","No" }, { "TotalTime", "0" }, { "SoundDir","/NextLibrary/Sounds" }, { "LastReset","0" }, { "NXHelpPanelSizes", "412, 87, 436, 676, 418, 120, 418, 438" }, {NULL,NULL} }; static const char *types[] = {"snd",NULL}; @implementation Preferences - init { [super init]; _defaults = [Defaults new]; _openPanel = [OpenPanel new]; [_openPanel allowMultipleFiles: NO]; [_defaults regDefaults: defaultsVector]; return self; } - makeKeyAndOrderFront: sender { if(!panel) [self loadNib]; [self revert: self]; [panel makeKeyAndOrderFront: self]; return self; } - revert: sender { [hosts loadFromString: [_defaults get: "Hosts"]]; [hosts selectCellWithTitle: [_defaults get: "DefaultHost"]]; [stopCmd setStringValue: [_defaults get: "PPPStop"]]; [logFile setStringValue: [_defaults get: "LogFile"]]; [upSnd setStringValue: [_defaults get: "UpSound"]]; [downSnd setStringValue: [_defaults get: "DownSound"]]; [displayLog setState: !strcmp("Yes",[_defaults get: "DisplayLog"])]; [displayMeter setState: !strcmp("Yes",[_defaults get: "DisplayMeter"])]; [startPPPOnLaunch setState: !strcmp("Yes",[_defaults get: "StartPPPOnLaunch"])]; return self; } - set: sender { [_defaults writeDB: "DefaultHost" as: [[hosts selectedCell] title]]; [_defaults writeDB: "PPPStop" as: [stopCmd stringValue]]; [_defaults writeDB: "LogFile" as: [logFile stringValue]]; [_defaults writeDB: "UpSound" as: [upSnd stringValue]]; [_defaults writeDB: "DownSound" as: [downSnd stringValue]]; [_defaults writeDB: "DisplayLog" as: ([displayLog state]? "Yes" : "No")]; [_defaults writeDB: "DisplayMeter" as: ([displayMeter state]? "Yes" : "No")]; [_defaults writeDB: "StartPPPOnLaunch" as: ([startPPPOnLaunch state]? "Yes" : "No")]; return self; } - findLog: sender { if([_openPanel runModalForDirectory: [_defaults get: "LogDir"] file: NULL] == NX_OKTAG) { [logFile setStringValue: [_openPanel filename]]; [_defaults writeDB: "LogDir" as: [_openPanel directory]]; } return self; } - findUpSnd: sender { if([_openPanel runModalForDirectory: [_defaults get: "SoundDir"] file: NULL types: types] == NX_OKTAG) { [upSnd setStringValue: [_openPanel filename]]; [_defaults writeDB: "SoundDir" as: [_openPanel directory]]; } return self; } - findDownSnd: sender { if([_openPanel runModalForDirectory: [_defaults get: "SoundDir"] file: NULL types: types] == NX_OKTAG) { [downSnd setStringValue: [_openPanel filename]]; [_defaults writeDB: "SoundDir" as: [_openPanel directory]]; } return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.