This is Preferences.m in view mode; [Download] [Up]
//** Craig Laurent #import <defaults/defaults.h> //** for NXDefaultsVector #import <string.h> #import "Preferences.h" #define DEFAULTSOWNER "ConverseLaurent" #define NUMDEFAULTS 9 #define DEFAULTALERTAUDIO "AlertAudio" #define DEFAULTALERTSOUND "AlertSound" #define DEFAULTALERTICON "AlertIcon" #define DEFAULTALERTWINDOW "AlertWindow" #define DEFAULTALERTAPPLICATION "AlertApplication" #define DEFAULTDISCLOSEID "DiscloseID" #define DEFAULTDISCLOSENAME "DiscloseName" #define DEFAULTDISCLOSEMACHINE "DiscloseMachine" #define DEFAULTADDRESSFILE "AddressFile" @implementation Preferences - init { const NXDefaultsVector defaults = { {DEFAULTALERTAUDIO, "YES"} ,{DEFAULTALERTSOUND, "Avon.snd"} ,{DEFAULTALERTICON, "YES"} ,{DEFAULTALERTWINDOW, "YES"} ,{DEFAULTALERTAPPLICATION, "NO"} ,{DEFAULTDISCLOSEID, "YES"} ,{DEFAULTDISCLOSENAME, "YES"} ,{DEFAULTDISCLOSEMACHINE, "YES"} ,{DEFAULTDISCLOSEMACHINE, "YES"} ,{DEFAULTADDRESSFILE, ""} ,{NULL} }; if (self = [super init]) { NXRegisterDefaults(DEFAULTSOWNER, defaults); soundFile = nil; [self loadPreferences]; return self; } return nil; } - (void)dealloc { if ([self soundFile]) [self setSoundFile:nil]; [super dealloc]; } //**************************************** //** instance methods - (BOOL)alertAudio { return alertAudio; } - (void)setAlertAudio:(BOOL)audio { alertAudio = audio; } - (BOOL)alertIcon { return alertIcon; } - (void)setAlertIcon:(BOOL)icon { alertIcon = icon; } - (BOOL)alertWindow { return alertWindow; } - (void)setAlertWindow:(BOOL)window { alertWindow = window; } - (BOOL)alertApplication { return alertApplication; } - (void)setAlertApplication:(BOOL)application { alertApplication = application; } - (BOOL)discloseID { return discloseID; } - (void)setDiscloseID:(BOOL)dID { discloseID = dID; } - (BOOL)discloseName { return discloseName; } - (void)setDiscloseName:(BOOL)dName { discloseName = dName; } - (BOOL)discloseMachine { return discloseMachine; } - (void)setDiscloseMachine:(BOOL)dMachine { discloseMachine = dMachine; } - (NSString*)soundFile { return soundFile; } - (void)setSoundFile:(NSString*)file { [soundFile autorelease]; soundFile = [file retain]; } - (NSString*)addressFile { return addressFile; } - (void)setAddressFile:(NSString*)file { [addressFile autorelease]; addressFile = [file retain]; } //**************************************** /* loadPreferences - load preference information */ - (void)loadPreferences { const char *tempDefault; //** load preference information from DEFAULTS. //** database takes precedence over NXRegisterDefaults if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTALERTAUDIO))) [self setAlertAudio:YES]; else [self setAlertAudio:NO]; tempDefault = NXGetDefaultValue(DEFAULTSOWNER, DEFAULTALERTSOUND); if (0 == strcmp(tempDefault, "")) [self setSoundFile:nil]; else [self setSoundFile:[NSString stringWithCString:tempDefault]]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTALERTICON))) [self setAlertIcon:YES]; else [self setAlertIcon:NO]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTALERTWINDOW))) [self setAlertWindow:YES]; else [self setAlertWindow:NO]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTALERTAPPLICATION))) [self setAlertApplication:YES]; else [self setAlertApplication:NO]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTDISCLOSEID))) [self setDiscloseID:YES]; else [self setDiscloseID:NO]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTDISCLOSENAME))) [self setDiscloseName:YES]; else [self setDiscloseName:NO]; if (0 == strcmp("YES", NXGetDefaultValue(DEFAULTSOWNER, DEFAULTDISCLOSEMACHINE))) [self setDiscloseMachine:YES]; else [self setDiscloseMachine:NO]; tempDefault = NXGetDefaultValue(DEFAULTSOWNER, DEFAULTADDRESSFILE); if (0 == strcmp(tempDefault, "")) [self setAddressFile:nil]; else [self setAddressFile:[NSString stringWithCString:tempDefault]]; } //********** /* savePreferences - save preference information */ - (void)savePreferences { NXDefaultsVector newDefaults = { {DEFAULTALERTAUDIO, "YES"} ,{DEFAULTALERTSOUND, "Avon.snd"} ,{DEFAULTALERTICON, "YES"} ,{DEFAULTALERTWINDOW, "YES"} ,{DEFAULTALERTAPPLICATION, "NO"} ,{DEFAULTDISCLOSEID, "YES"} ,{DEFAULTDISCLOSENAME, "YES"} ,{DEFAULTDISCLOSEMACHINE, "YES"} ,{DEFAULTADDRESSFILE, ""} ,{NULL} }; int defaultsWritten = 0; if ([self alertAudio]) newDefaults[0].value = "YES"; else newDefaults[0].value = "NO"; newDefaults[1].value = (char*)[[self soundFile] cString]; if ([self alertIcon]) newDefaults[2].value = "YES"; else newDefaults[2].value = "NO"; if ([self alertWindow]) newDefaults[3].value = "YES"; else newDefaults[3].value = "NO"; if ([self alertApplication]) newDefaults[4].value = "YES"; else newDefaults[4].value = "NO"; if ([self discloseID]) newDefaults[5].value = "YES"; else newDefaults[5].value = "NO"; if ([self discloseName]) newDefaults[6].value = "YES"; else newDefaults[6].value = "NO"; if ([self discloseMachine]) newDefaults[7].value = "YES"; else newDefaults[7].value = "NO"; newDefaults[8].value = (char*)[[self addressFile] cString]; //** write preference information to defaults. defaultsWritten = NXWriteDefaults(DEFAULTSOWNER, newDefaults); if (!(NUMDEFAULTS == defaultsWritten)) NXRunAlertPanel("Preferences Alert", "Unable to write all preferences %d / %d.", NULL, NULL, NULL, defaultsWritten, NUMDEFAULTS); } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.