AppController.m   [plain text]

#import "AppController.h"

@implementation AppController

+ (void)initialize {
    Initalize executes before the first message to the class is
    serviced therefore, we get our factory settings registered.
    Note that we do this here rather than in the Preferences as the
    Preferences instance is loaded lazily, so the Prefernces class
    may not be initialized before we need our first default
    (see applicationShouldOpenUntitledFile).
    NSString		*path			= [[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"];
    NSDictionary	*defaultValues	= [NSDictionary dictionaryWithContentsOfFile: path];
   [[NSUserDefaults standardUserDefaults] registerDefaults: defaultValues];

- (IBAction)showPreferences:(id)sender {
    [[self preferences] show:self];

- (Preferences *)preferences {
    // load preferences lazily
    if (preferences == nil) {
        Preferences *p = [[Preferences alloc] init];
        [self setPreferences:p];
        [p release];
    return preferences;
- (void)setPreferences:(Preferences *)newPreferences {
    [newPreferences retain];
    [preferences release];
    preferences = newPreferences;

- (void)dealloc {
    [self setPreferences:nil];
    [super dealloc];