This is PrefsController.m in view mode; [Download] [Up]
#import <appkit/appkit.h>
#import "PrefsController.h"
#import "SwitchView.h"
@implementation PrefsController
#define TRUNCATE 0
#define PROMPT 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 =
{
{"Truncate", "NO"},
{"Prompt", "NO"},
{NULL, NULL}
};
NXRegisterDefaults(appName, theDefaults);
}
return self;
}
- awakeFromNib
{
const char *appName = [NXApp appName];
const char *truncateFlag;
truncateFlag =
NXGetDefaultValue(appName, "Truncate");
// make sure truncateFlag is not NULL before
// comparing it
if (truncateFlag)
{
if (strcasecmp(truncateFlag, "YES") == 0)
[truncateSwitch setState:ON];
else
[truncateSwitch setState:OFF];
}
return self;
}
- setTruncate:sender
{
const char *appName = [NXApp appName];
int state = [truncateSwitch state];
if (state == OFF)
NXWriteDefault(appName, "Truncate", "NO");
else
NXWriteDefault(appName, "Truncate", "YES");
return self;
}
- (BOOL)shouldTruncate
{
const char *truncateFlag;
const char *appName = [NXApp appName];
// value in database may be newer than value
// in registration table because of Prefs
// panel; thus, update value in table to
// match value in database
NXUpdateDefault(appName, "Truncate");
// get value from registration table
// now that it's been updated
truncateFlag =
NXGetDefaultValue(appName, "Truncate");
// make sure truncateFlag is not NULL before
// comparing it
if (truncateFlag)
{
if (strcasecmp(truncateFlag, "YES") == 0)
return YES;
}
return NO;
}
- displayPrefsPanel:sender
{
if (!prefsPanel)
{
[NXApp loadNibSection:"Prefs.nib"
owner:self withNames:NO];
[switchView switchToView:truncateSwitch];
}
[prefsPanel makeKeyAndOrderFront:nil];
return self;
}
- showAccessoryView:sender
{
int index;
id popUpList;
// the popuplist is the button's target
popUpList = [popUpButton target];
// get title of selected item and
// then get index of title in
// popuplist
index = [popUpList indexOfItem:
[popUpList selectedItem]];
switch(index)
{
case TRUNCATE:
[switchView switchToView:truncateSwitch];
break;
case PROMPT:
[switchView switchToView:promptSwitch];
break;
}
return self;
}
@end;
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.