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 * Shows the preferences window. Lazily loads the PreferencesController.
65 - (IBAction
)showPreferences
:(id)sender
68 prefs
= [[PreferencesController alloc
] init
];
70 [[prefs window
] makeKeyAndOrderFront
:self];
74 * Opens the URL to the help page
76 - (IBAction
)openHelpPage
:(id)sender
78 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/help.php"]];
81 #pragma mark Version Checking
84 * Checks and sees if the current version is the most up-to-date one
86 - (void)versionCheck
:(id)sender
88 NSAutoreleasePool
*pool
= [[NSAutoreleasePool alloc
] init
];
90 NSMutableString
*version
= [NSMutableString stringWithString
:[[[NSBundle mainBundle
] infoDictionary
] valueForKey
:@
"CFBundleShortVersionString"]];
91 [version replaceOccurrencesOfString
:@
" " withString
:@
"-" options
:NSLiteralSearch range
:NSMakeRange(0, [version length
])];
93 NSURL
*url
= [NSURL URLWithString
:[NSString stringWithFormat
:@
"http://www.bluestatic.org/versioncheck.php?prod=macgdbp&ver=%@", version
]];
94 NSURLRequest
*request
= [NSURLRequest requestWithURL
:url cachePolicy
:NSURLRequestReloadIgnoringCacheData timeoutInterval
:10];
95 NSURLResponse
*response
;
96 NSData
*result
= [NSURLConnection sendSynchronousRequest
:request returningResponse
:&response error
:nil];
104 NSXMLDocument
*xml
= [[NSXMLDocument alloc
] initWithData
:result options
:0 error
:nil];
105 NSXMLNode
*comp
= [[xml rootElement
] childAtIndex
:0];
106 if ([[comp name
] isEqualToString
:@
"update"])
108 [updateString setStringValue
:[NSString stringWithFormat
:[updateString stringValue
], [comp stringValue
]]];
109 [updateWindow makeKeyAndOrderFront
:self];
110 [updateWindow center
];
120 * Opens the URL to the download page
122 - (IBAction
)openUpdateInformation
:(id)sender
124 [[NSWorkspace sharedWorkspace
] openURL
:[NSURL URLWithString
:@
"http://www.bluestatic.org/software/macgdbp/"]];