This is PrefController.m in view mode; [Download] [Up]
#import <appkit/appkit.h> #import "PrefController.h" #import "IcaoDefinitions.h" #import "IcaoObjects.h" @implementation PrefController - awakeFromNib { [self readDefaults]; [self setPrefToView:[generalView contentView]]; return self; } - setPref:sender { id newView = nil; switch ([[sender selectedCell] tag]) { case 0: newView = [generalView contentView]; break; case 1: newView = [startupView contentView]; break; case 2: newView = [mapFileView contentView]; break; case 3: newView = [toolsView contentView]; break; case 4: newView = [colorsView contentView]; break; } [self setPrefToView:newView]; return self; } - setDefaultMapfile:sender { OpenPanel *selectPanel; char *types[]={"iwp","worldpart",NULL}; char *fileName = NULL, *fileDir = NULL; selectPanel = [OpenPanel new]; [selectPanel setTitle:NXLS("Select worldpart for startup")]; [selectPanel setPrompt:NXLS("File:")]; [selectPanel chooseDirectories:NO]; // length is always 4 chars and up if there is a file if (strlen([startupFile stringValue]) > 4) fileDir = strdup((char *)[startupFile stringValue]); if (fileDir) fileName = strdup(strrchr(fileDir, '/')+1); if ([selectPanel runModalForDirectory:fileDir file:fileName types:types] == NX_OKTAG) { if (access([selectPanel filename],R_OK)) { NXRunAlertPanel(NXLS("Alert"), NXLS("Couldn't open %s, please check permissons."), NXLS("OK"),NULL,NULL,[selectPanel filename]); return NULL; } else { [startupFile setStringValue:[selectPanel filename]]; [self takeDefaultWorldpartStringFrom:startupFile]; } } else return NULL; return self; } - setPrefToView:theView { NXRect boxRect, viewRect; [multiView getFrame:&boxRect]; [theView getFrame:&viewRect]; [multiView setContentView:theView]; [multiView display]; return self; } /* * Setting and getting defaults */ - readDefaults { const char *ptr; int val; ptr = NXGetDefaultValue(APPNAME, IPD_ONSTARTUP); if (ptr) { val = atoi(ptr); [onStartup selectCellWithTag:val]; }; ptr = NXGetDefaultValue(APPNAME, IPD_STARTUPFILE); if (ptr) [startupFile setStringValue:ptr];; ptr = NXGetDefaultValue(APPNAME, IPD_AUTOLAUNCH); if (ptr) { val = atoi(ptr); [hideOnAutoLaunch setState:val]; }; ptr = NXGetDefaultValue(APPNAME, IPD_PROJECTIONTYPE); if (ptr) { val = atoi(ptr); [projectionTypeDefault selectCellWithTag:val]; }; ptr = NXGetDefaultValue(APPNAME, IPD_ONLOADING); if (ptr) { val = atoi(ptr); [onLoading selectCellWithTag:val]; }; ptr = NXGetDefaultValue(APPNAME, IPD_OPTIMIZEMONO); if (ptr) { val = atoi(ptr); [optimizeMono setState:val]; }; ptr = NXGetDefaultValue(APPNAME, IPD_RUBBERUNIT); if (ptr) { val = atoi(ptr); [[[rubberUnit target] itemList] selectCellWithTag:val]; [rubberUnit setTitle:[[[[rubberUnit target] itemList] selectedCell] title]]; } ptr = NXGetDefaultValue(APPNAME, IPD_AUTOUNIT); if (ptr) { val = atoi(ptr); [[[autoUnit target] itemList] selectCellWithTag:val]; [autoUnit setTitle:[[[[autoUnit target] itemList] selectedCell] title]]; } ptr = NXGetDefaultValue(APPNAME, IPD_RUNWAYUNIT); if (ptr) { val = atoi(ptr); [[[runwayUnit target] itemList] selectCellWithTag:val]; [runwayUnit setTitle:[[[[runwayUnit target] itemList] selectedCell] title]]; } ptr = NXGetDefaultValue(APPNAME, IPD_ELEVATIONUNIT); if (ptr) { val = atoi(ptr); [[[elevationUnit target] itemList] selectCellWithTag:val]; [elevationUnit setTitle:[[[[elevationUnit target] itemList] selectedCell] title]]; } ptr = NXGetDefaultValue(APPNAME, IPD_RANGEUNIT); if (ptr) { val = atoi(ptr); [[[rangeUnit target] itemList] selectCellWithTag:val]; [rangeUnit setTitle:[[[[rangeUnit target] itemList] selectedCell] title]]; } return self; } - takeOnStartupValueFrom:sender { int val; char strg[80]; val = [[sender selectedCell] tag]; sprintf(strg, "%i", val); NXWriteDefault(APPNAME, IPD_ONSTARTUP, strg); return self; } - takeDefaultWorldpartStringFrom:sender { NXWriteDefault(APPNAME, IPD_STARTUPFILE, [sender stringValue]); return self; } - takeHideOnAutoLaunchValueFrom:sender { int val; char strg[80]; val = [sender state]; sprintf(strg, "%i", val); NXWriteDefault(APPNAME, IPD_AUTOLAUNCH, strg); return self; } - takeProjectionDefaultValueFrom:sender { int val; char strg[80]; val = [[sender selectedCell] tag]; sprintf(strg, "%i", val); NXWriteDefault(APPNAME, IPD_PROJECTIONTYPE, strg); return self; } - takeOnLoadingValueFrom:sender { int val; char strg[80]; val = [[sender selectedCell] tag]; sprintf(strg, "%i", val); NXWriteDefault(APPNAME, IPD_ONLOADING, strg); return self; } - takeOptimizeMonoValueFrom:sender { int val; char strg[80]; val = [sender state]; sprintf(strg, "%i", val); NXWriteDefault(APPNAME, IPD_OPTIMIZEMONO, strg); return self; } - takeRubberUnitFrom:sender { char strg[10]; sprintf(strg, "%i", [[sender selectedCell] tag]); NXWriteDefault(APPNAME, IPD_RUBBERUNIT, strg); return self; } - takeAutoUnitFrom:sender { char strg[10]; sprintf(strg, "%i", [[sender selectedCell] tag]); NXWriteDefault(APPNAME, IPD_AUTOUNIT, strg); return self; } - takeRunwayUnitValueFrom:sender { char strg[10]; sprintf(strg, "%i", [[sender selectedCell] tag]); NXWriteDefault(APPNAME, IPD_RUNWAYUNIT, strg); return self; } - takeElevationUnitValueFrom:sender { char strg[10]; sprintf(strg, "%i", [[sender selectedCell] tag]); NXWriteDefault(APPNAME, IPD_ELEVATIONUNIT, strg); return self; } - takeRangeUnitValueFrom:sender { char strg[10]; sprintf(strg, "%i", [[sender selectedCell] tag]); NXWriteDefault(APPNAME, IPD_RANGEUNIT, strg); return self; } @end @implementation PrefController(NXNibNotification) @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.