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
])
36 * When the application has finished loading, show the connection dialog
38 - (void)applicationDidFinishLaunching
:(NSNotification
*)notif
40 // TODO: use preference values
41 debugger
= [[DebuggerWindowController alloc
] initWithPort
:9000 session
:@
"macgdbp"];
42 breakpoint
= [[BreakpointWindowController alloc
] init
];
43 [NSThread detachNewThreadSelector
:@selector(versionCheck
:) toTarget
:self withObject
:self];
47 * Shows the debugger window
49 - (IBAction
)showDebuggerWindow
:(id)sender
51 [[debugger window
] makeKeyAndOrderFront
:self];
55 * Shows the breakpoints window
57 - (IBAction
)showBreakpointWindow
:(id)sender
59 [[breakpoint window
] makeKeyAndOrderFront
:self];
63 * Opens the URL to the help page
65 - (IBAction
)openHelpPage
:(id)sender
67 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/help.php"]];
70 #pragma mark Version Checking
73 * Checks and sees if the current version is the most up-to-date one
75 - (void)versionCheck
:(id)sender
77 NSAutoreleasePool
*pool
= [[NSAutoreleasePool alloc
] init
];
79 NSMutableString
*version
= [NSMutableString stringWithString
:[[[NSBundle mainBundle
] infoDictionary
] valueForKey
:@
"CFBundleShortVersionString"]];
80 [version replaceOccurrencesOfString
:@
" " withString
:@
"-" options
:NSLiteralSearch range
:NSMakeRange(0, [version length
])];
82 NSURL
*url
= [NSURL URLWithString
:[NSString stringWithFormat
:@
"http://www.bluestatic.org/versioncheck.php?prod=macgdbp&ver=%@", version
]];
83 NSURLRequest
*request
= [NSURLRequest requestWithURL
:url cachePolicy
:NSURLRequestReloadIgnoringCacheData timeoutInterval
:10];
84 NSURLResponse
*response
;
85 NSData
*result
= [NSURLConnection sendSynchronousRequest
:request returningResponse
:&response error
:nil];
93 NSXMLDocument
*xml
= [[NSXMLDocument alloc
] initWithData
:result options
:0 error
:nil];
94 NSXMLNode
*comp
= [[xml rootElement
] childAtIndex
:0];
95 if ([[comp name
] isEqualToString
:@
"update"])
97 [updateString setStringValue
:[NSString stringWithFormat
:[updateString stringValue
], [comp stringValue
]]];
98 [updateWindow makeKeyAndOrderFront
:self];
99 [updateWindow center
];
109 * Opens the URL to the download page
111 - (IBAction
)openUpdateInformation
:(id)sender
113 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/"]];