]> Dogcows Code - chaz/thecheat/blobdiff - AppController.m
The Cheat 1.1
[chaz/thecheat] / AppController.m
index 56e269674558577fac441df7f1d8f588641a5c0f..aacc0a79d63f0f046753a0019469f0fe49d09624 100644 (file)
@@ -21,6 +21,8 @@
 
 #import "ServerHolder.h"
 
+#import <Chaz/CMUpdateCheck.h>
+
 
 @implementation AppController
 
 
        [defaults setObject:[NSNumber numberWithBool:TCGlobalPlaySounds] forKey:TCPlaySoundsPref];
        [defaults setObject:[NSNumber numberWithBool:TCGlobalWindowsOnTop] forKey:TCWindowsOnTopPref];
+       [defaults setObject:[NSNumber numberWithBool:TCGlobalUpdateCheck] forKey:TCUpdateCheckPref];
        [defaults setObject:[NSNumber numberWithBool:TCGlobalAllowRemote] forKey:TCAllowRemotePref];
        [defaults setObject:[NSNumber numberWithInt:TCGlobalListenPort] forKey:TCListenPortPref];
        [defaults setObject:[NSString stringWithFormat:@"%@'s Computer", NSFullUserName()] forKey:TCBroadcastNamePref];
+       [defaults setObject:[NSNumber numberWithInt:TCGlobalHitsDisplayed] forKey:TCHitsDisplayedPref];
 
        [[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
 
-       TCGlobalPlaySounds = [[NSUserDefaults standardUserDefaults] integerForKey:TCPlaySoundsPref];
-       TCGlobalWindowsOnTop = [[NSUserDefaults standardUserDefaults] integerForKey:TCWindowsOnTopPref];
-       TCGlobalListenPort = [[NSUserDefaults standardUserDefaults] integerForKey:TCListenPortPref];
+       TCGlobalPlaySounds = [[NSUserDefaults standardUserDefaults] boolForKey:TCPlaySoundsPref];
+       TCGlobalWindowsOnTop = [[NSUserDefaults standardUserDefaults] boolForKey:TCWindowsOnTopPref];
+       TCGlobalUpdateCheck = [[NSUserDefaults standardUserDefaults] boolForKey:TCUpdateCheckPref];
        TCGlobalAllowRemote = [[NSUserDefaults standardUserDefaults] boolForKey:TCAllowRemotePref];
+       TCGlobalListenPort = [[NSUserDefaults standardUserDefaults] integerForKey:TCListenPortPref];
+       TCGlobalHitsDisplayed = [[NSUserDefaults standardUserDefaults] integerForKey:TCHitsDisplayedPref];
 }
 
 - (id)init
@@ -54,8 +60,9 @@
        {
                servers = [[NSMutableArray alloc] init];
 
+               // start the server with saved settings
                [self listenOnPort:TCGlobalListenPort remote:TCGlobalAllowRemote];
-               [self broadcastWithName:TCGlobalBroadcastName];
+               if ( TCGlobalAllowRemote ) [self broadcastWithName:TCGlobalBroadcastName];
                
                // set up the network browser
                browser = [[NSNetServiceBrowser alloc] init];
 }
 
 
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
+{
+       if ( TCGlobalUpdateCheck )
+       {
+               [CMUpdateCheck checkWithURL:@"http://www.brokenzipper.com/software.plist" verbose:NO];
+       }
+}
+
+
 - (void)listenOnPort:(int)port remote:(BOOL)remote
 {
        if ( connection )
 
 - (void)broadcastWithName:(NSString *)name
 {
-       if ( TCGlobalAllowRemote )
-       {
-               [self stopBroadcast];
+       [self stopBroadcast];
                
-               service = [[NSNetService alloc] initWithDomain:@"local." type:@"_cheat._tcp." name:name port:TCGlobalListenPort];
-               [service setDelegate:self];
-               [service publish];
-       }
+       service = [[NSNetService alloc] initWithDomain:@"local." type:@"_cheat._tcp." name:name port:TCGlobalListenPort];
+       [service setDelegate:self];
+       [service publish];
 }
 
 - (void)stopBroadcast
 - (IBAction)launchHelpFile:(id)sender
 {
        //[[NSWorkspace sharedWorkspace] openFile:[[NSBundle mainBundle] pathForResource:@"Read Me" ofType:@"html"] withApplication:@"Safari"];
-       [[NSWorkspace sharedWorkspace] openURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Read Me" ofType:@"pdf"]]];
+       [[NSWorkspace sharedWorkspace] openURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Read Me" ofType:@"rtf"]]];
+}
+
+- (IBAction)launchEmailMenu:(id)sender
+{
+       LaunchEmail();
 }
 
 - (IBAction)launchWebsiteMenu:(id)sender
 }
 
 
+- (IBAction)checkForUpdate:(id)sender
+{
+       [CMUpdateCheck checkWithURL:@"http://www.brokenzipper.com/software.plist"];
+}
+
+
 - (NSArray *)serverList
 {
        return serverList;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 
+- (void)preferenceSetWindowsOnTop:(BOOL)windowsOnTop
+{
+       if ( TCGlobalWindowsOnTop != windowsOnTop )
+       {
+               [[NSNotificationCenter defaultCenter] postNotificationName:@"TCWindowsOnTopChanged" object:nil];
+       }
+}
+
+- (void)preferenceSetAllowRemote:(BOOL)allow listenPort:(int)port broadcastName:(NSString *)name
+{
+       if ( TCGlobalAllowRemote != allow || TCGlobalListenPort != port )
+       {
+               [self listenOnPort:port remote:allow];
+       }
+       if ( allow )
+       {
+               if ( !TCGlobalAllowRemote || ![TCGlobalBroadcastName isEqualToString:name] )
+               {
+                       [self broadcastWithName:name];
+               }
+       }
+       else
+       {
+               [self stopBroadcast];
+       }
+       [netTrafficController serverSetAllowRemote:allow listenPort:port broadcastName:name];
+       //[netTrafficController allowRemoteChanged:allow];
+       //[netTrafficController listenPortChanged:port];
+       //[netTrafficController broadcastNameChanged:name];
+}
+
+/*
 - (void)preferenceAllowRemoteChanged:(BOOL)allow
 {
        [self listenOnPort:TCGlobalListenPort remote:allow];
 
        [netTrafficController broadcastNameChanged:name];
 }
+*/
 
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        
        if ( [[errorDict objectForKey:@"NSNetServicesErrorCode"] intValue] == NSNetServicesCollisionError )
        {
-               [self broadcastWithName:[NSString stringWithFormat:@"%@ %i", TCGlobalBroadcastName, TCGlobalAlternateBroadcastNameCount++]];
+               [self broadcastWithName:[NSString stringWithFormat:@"%@ %i", [sender name], TCGlobalAlternateBroadcastNameCount++]];
        }
        else
        {
This page took 0.020689 seconds and 4 git commands to generate.