This is PrefsController.m in view mode; [Download] [Up]
/* $Id: PrefsController.m,v 1.1 1996/10/12 14:30:34 vkyr Exp vkyr $ */ #import <appkit/appkit.h> #import "PrefsController.h" #import "SwitchView.h" @implementation PrefsController #define UNIT 0 #define WINDOW 1 #define OFF 0 #define ON 1 + initialize { // Make sure that self is a PrefsController class before setting // class initialization. This prevents subclasses from performing // reinitialization. if (self == [PrefsController class]) { const char *appName = [NXApp appName]; static NXDefaultsVector theDefaults = { {"Unit", "Cms"}, {"Measure", "Round"}, {"Window", "NO"}, {NULL, NULL} }; NXRegisterDefaults(appName, theDefaults); } return self; } - awakeFromNib { const char *appName = [NXApp appName]; const char *unitFlag, *measureFlag, *winFlag; unitFlag = NXGetDefaultValue(appName, "Unit"); measureFlag = NXGetDefaultValue(appName, "Measure"); winFlag = NXGetDefaultValue(appName, "Window"); // Make sure Flags are not NULL before comparing them. if (unitFlag) { if (strcasecmp(unitFlag, "Inches") == 0) [unitPopUpButton setTitle:"Inches"]; if (strcasecmp(unitFlag, "Cms") == 0) [unitPopUpButton setTitle:"Cms"]; if (strcasecmp(unitFlag, "Points") == 0) [unitPopUpButton setTitle:"Points"]; if (strcasecmp(measureFlag, "Picas") == 0) [unitPopUpButton setTitle:"Picas"]; } if (measureFlag) { if (strcasecmp(measureFlag, "Round") == 0) [measureRadioButton selectCellWithTag:0]; else [measureRadioButton selectCellWithTag:1]; } if (winFlag) { if (strcasecmp(unitFlag, "YES") == 0) [windowRadioButton selectCellWithTag:0]; else [windowRadioButton selectCellWithTag:1]; } return self; } - setInches:sender { const char *appName = [NXApp appName]; NXWriteDefault(appName, "Unit", "Inches"); return self; } - setCms:sender { const char *appName = [NXApp appName]; NXWriteDefault(appName, "Unit", "Cms"); return self; } - setPoints:sender { const char *appName = [NXApp appName]; NXWriteDefault(appName, "Unit", "Points"); return self; } - setPicas:sender { const char *appName = [NXApp appName]; NXWriteDefault(appName, "Unit", "Picas"); return self; } - setWindow:sender { const char *appName = [NXApp appName]; switch ([[windowRadioButton selectedCell] tag]) { case 0: NXWriteDefault(appName, "Window", "YES"); break; case 1: NXWriteDefault(appName, "Window", "NO"); break; } return self; } - setMeasurement:sender { const char *appName = [NXApp appName]; switch ([[measureRadioButton selectedCell] tag]) { case 0: NXWriteDefault(appName, "Measure", "Round"); break; case 1: NXWriteDefault(appName, "Measure", "Exact"); break; } return self; } - (const char *)whatUnit { const char *unitFlag; const char *appName = [NXApp appName]; // The value in the database may be newer than the value in the // registration table because of the Prefs panel; thus, update // the value in the table to match the value in the database. NXUpdateDefault(appName, "Unit"); // Get value from registration table now that it's been updated. unitFlag = NXGetDefaultValue(appName, "Unit"); return (unitFlag); } - (BOOL)shouldRoundUnit { const char *measureFlag; const char *appName = [NXApp appName]; // The value in the database may be newer than the value in the // registration table because of the Prefs panel; thus, update // the value in the table to match the value in the database. NXUpdateDefault(appName, "Measure"); // Get value from registration table now that it's been updated. measureFlag = NXGetDefaultValue(appName, "Measure"); // Make sure measureFlag is not NULL before comparing it. if (measureFlag) { if (strcasecmp(measureFlag, "Round") == 0) return YES; } return NO; } - (BOOL)shouldShowWin { const char *winFlag; const char *appName = [NXApp appName]; // The value in the database may be newer than the value in the // registration table because of the Prefs panel; thus, update // the value in the table to match the value in the database. NXUpdateDefault(appName, "Window"); // Get value from registration table now that it's been updated. winFlag = NXGetDefaultValue(appName, "Window"); // Make sure winFlag is not NULL before comparing it. if (winFlag) { if (strcasecmp(winFlag, "YES") == 0) return YES; } return NO; } - displayPrefsPanel:sender { if (!prefsPanel) { [NXApp loadNibSection:"Prefs.nib" owner:self withNames:NO]; [switchView switchToView:unitOptGroup]; } [prefsPanel makeKeyAndOrderFront:nil]; return self; } - showAccessoryView:sender { int index; id popUpList; // The popuplist is the button's target. popUpList = [popUpButton target]; // Get the title of the selected item and then get the index // of the title in the popuplist. index = [popUpList indexOfItem: [popUpList selectedItem]]; switch(index) { case UNIT: [switchView switchToView:unitOptGroup]; break; case WINDOW: [switchView switchToView:winOptGroup]; break; } return self; } @end;
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.