This is DefaultManager.m in view mode; [Download] [Up]
// DefaultManager.m
// Part of Risk by Mike Ferris
// adding new defaults requires adding define statements,
// changing the default vector, changing setAction,
// changing revertAction, and adding any new functionality to the panel
#import "DefaultManager.h"
#import "LanguageApp.h"
#import "LineView.h"
#import <appkit/NXColorWell.h>
#import <appkit/TextField.h>
#import <appkit/Button.h>
#import <appkit/Slider.h>
#import <appkit/color.h>
#import <defaults/defaults.h>
#import <stdlib.h>
#import <strings.h>
#import <stdio.h>
#define APPNAME "RiskByMikeFerris"
// add default aliases here
#define BORDERWIDTH "countryBorderWidth"
#define BORDERCOLORS "countryBorderColors"
#define PLAYERNAMES "playerNames"
#define PLAYERCOLORS "playerColors"
#define SETUPOPTIONS "setupOptions"
#define STATUSCARDSETSOPTION "statusCardSetsOption"
#define STATUS_SHOWSETS "Show"
#define STATUS_HIDESETS "Hide"
@implementation DefaultManager
// add defaults here
static NXDefaultsVector RiskDefaults = {
// the country border
{BORDERWIDTH, "2.0"},
// two sets of red, green, blue first for regular color, then selected
{BORDERCOLORS, "0.0, 0.0, 0.0, 1.0, 1.0, 1.0"},
// six comma separated strings
{PLAYERNAMES, "Dopey, Sneezy, Grumpy, Doc, Bashful, Sleepy"},
// six sets of red green blue one for each of the players
{PLAYERCOLORS, "0.9, 0.9, 0.9,"
"0.8, 0.8, 0.8,"
"0.66, 0.66, 0.66,"
"0.33, 0.33, 0.33,"
"0.15, 0.15, 0.15,"
"0.0, 0.0, 0.0,"},
// the following numbers represent Initial Country Distribution,
// Initial Army Placement, Card Set Redemption, and the Fortify Rule
{SETUPOPTIONS, "0, 1, 0, 2"},
{STATUSCARDSETSOPTION, STATUS_SHOWSETS},
{NULL}
};
- init
{
[super init];
[NXApp loadNibSection:"DefaultManager.nib" owner:self withNames:NO];
NXRegisterDefaults(APPNAME, RiskDefaults);
[self revertAction:self];
return self;
}
- showPrefPanel:sender
{
[prefPanel makeKeyAndOrderFront:self];
return self;
}
- revertAction:sender
{
const char *tempStr;
float x[18];
NXColor tempColor;
int trash;
// the border width
tempStr = NXGetDefaultValue(APPNAME, BORDERWIDTH);
trash = sscanf(tempStr, "%f", &(x[0]));
[borderWidthSlider setFloatValue:x[0]];
[borderWidthTextField setFloatValue:x[0]];
[borderWidthLineView setLineWidth:x[0]];
tempStr = NXGetDefaultValue(APPNAME, BORDERCOLORS);
trash = sscanf(tempStr, "%f, %f, %f, %f, %f, %f",
&(x[0]), &(x[1]), &(x[2]),
&(x[3]), &(x[4]), &(x[5]));
tempColor = NXConvertRGBToColor(x[0], x[1], x[2]);
[borderRegularWell setColor:tempColor];
tempColor = NXConvertRGBToColor(x[3], x[4], x[5]);
[borderSelectedWell setColor:tempColor];
tempStr = NXGetDefaultValue(APPNAME, STATUSCARDSETSOPTION);
if (strcmp(tempStr, STATUS_SHOWSETS)==0) {
[statusShowSetsCheckbox setState:1];
} else {
[statusShowSetsCheckbox setState:0];
}
[theMapView display];
return self;
}
- setAction:sender
{
float r, g, b;
const char *tempStr;
char str[203]="", buf[100];
NXColor tempColor;
tempStr = [borderWidthTextField stringValue];
NXWriteDefault(APPNAME, BORDERWIDTH, tempStr);
tempColor = [borderRegularWell color];
NXConvertColorToRGB(tempColor, &r, &g, &b);
sprintf(buf, "%f, %f, %f", r, g, b);
strcat(str, buf);
strcat(str, ", ");
tempColor = [borderSelectedWell color];
NXConvertColorToRGB(tempColor, &r, &g, &b);
sprintf(buf, "%f, %f, %f", r, g, b);
strcat(str, buf);
NXWriteDefault(APPNAME, BORDERCOLORS, str);
if ([statusShowSetsCheckbox state]==0) {
NXWriteDefault(APPNAME, STATUSCARDSETSOPTION, STATUS_HIDESETS);
} else {
NXWriteDefault(APPNAME, STATUSCARDSETSOPTION, STATUS_SHOWSETS);
}
return self;
}
- borderWidthAction:sender
{
float newlw = [sender floatValue];
if (sender == borderWidthSlider) {
[borderWidthTextField setFloatValue:newlw];
[borderWidthLineView setLineWidth:newlw];
} else {
[borderWidthSlider setFloatValue:newlw];
[borderWidthLineView setLineWidth:newlw];
}
[theMapView display];
return self;
}
- borderColorAction:sender
{
[theMapView display];
return self;
}
- statusCardSetsAction:sender
{
[theControlPanel display];
return self;
}
- (float)borderWidth
{
return [borderWidthSlider floatValue];
}
- (NXColor)borderRegularColor
{
return [borderRegularWell color];
}
- (NXColor)borderSelectedColor
{
return [borderSelectedWell color];
}
- (BOOL)statusShowSets
{
return (([statusShowSetsCheckbox state]==0)?NO:YES);
}
// for Game Setup preferences
- (const char *)playerColors
{
return NXGetDefaultValue(APPNAME, PLAYERCOLORS);
}
- (const char *)playerNames
{
return NXGetDefaultValue(APPNAME, PLAYERNAMES);
}
- (const char *)setupOptions
{
return NXGetDefaultValue(APPNAME, SETUPOPTIONS);
}
- setPlayerColors:(char *)colorStr
{
NXWriteDefault(APPNAME, PLAYERCOLORS, colorStr);
return self;
}
- setPlayerNames:(char *)nameStr
{
NXWriteDefault(APPNAME, PLAYERNAMES, nameStr);
return self;
}
- setSetupOptions:(char *)optionStr
{
NXWriteDefault(APPNAME, SETUPOPTIONS, optionStr);
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.