3 * Copyright (c) 2007 - 2008, Blue Static <http://www.bluestatic.org>
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
10 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 #import "AppDelegate.h"
19 @implementation AppDelegate
21 @synthesize debugger
, breakpoint
;
28 if (self = [super init
])
35 * Initialize method that is called before all other messages. This will set the default
40 NSDictionary
*dict
= [[NSDictionary alloc
] initWithObjectsAndKeys
:[NSNumber numberWithInt
:9000], @
"Port", @
"macgdbp", @
"IDEKey", nil];
42 [[NSUserDefaults standardUserDefaults
] registerDefaults
:dict
];
48 * When the application has finished loading, show the connection dialog
50 - (void)applicationDidFinishLaunching
:(NSNotification
*)notif
52 [NSThread detachNewThreadSelector
:@selector(versionCheck
:) toTarget
:self withObject
:self];
56 * Shows the debugger window
58 - (IBAction
)showDebuggerWindow
:(id)sender
60 [[debugger window
] makeKeyAndOrderFront
:self];
64 * Shows the breakpoints window
66 - (IBAction
)showBreakpointWindow
:(id)sender
68 [[breakpoint window
] makeKeyAndOrderFront
:self];
72 * Shows the preferences window. Lazily loads the PreferencesController.
74 - (IBAction
)showPreferences
:(id)sender
77 prefs
= [[PreferencesController alloc
] init
];
79 [[prefs window
] makeKeyAndOrderFront
:self];
83 * Opens the URL to the help page
85 - (IBAction
)openHelpPage
:(id)sender
87 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/help.php"]];
90 #pragma mark Version Checking
93 * Checks and sees if the current version is the most up-to-date one
95 - (void)versionCheck
:(id)sender
97 NSAutoreleasePool
*pool
= [[NSAutoreleasePool alloc
] init
];
99 NSMutableString
*version
= [NSMutableString stringWithString
:[[[NSBundle mainBundle
] infoDictionary
] valueForKey
:@
"CFBundleShortVersionString"]];
100 [version replaceOccurrencesOfString
:@
" " withString
:@
"-" options
:NSLiteralSearch range
:NSMakeRange(0, [version length
])];
102 NSURL
*url
= [NSURL URLWithString
:[NSString stringWithFormat
:@
"http://www.bluestatic.org/versioncheck.php?prod=macgdbp&ver=%@", version
]];
103 NSURLRequest
*request
= [NSURLRequest requestWithURL
:url cachePolicy
:NSURLRequestReloadIgnoringCacheData timeoutInterval
:10];
104 NSURLResponse
*response
;
105 NSData
*result
= [NSURLConnection sendSynchronousRequest
:request returningResponse
:&response error
:nil];
113 NSXMLDocument
*xml
= [[NSXMLDocument alloc
] initWithData
:result options
:0 error
:nil];
114 NSXMLNode
*comp
= [[xml rootElement
] childAtIndex
:0];
115 if ([[comp name
] isEqualToString
:@
"update"])
117 [updateString setStringValue
:[NSString stringWithFormat
:[updateString stringValue
], [comp stringValue
]]];
118 [updateWindow makeKeyAndOrderFront
:self];
119 [updateWindow center
];
129 * Opens the URL to the download page
131 - (IBAction
)openUpdateInformation
:(id)sender
133 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/"]];