diff options
Diffstat (limited to 'cocoa/NetSurfAppDelegate.m')
-rw-r--r-- | cocoa/NetSurfAppDelegate.m | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/cocoa/NetSurfAppDelegate.m b/cocoa/NetSurfAppDelegate.m new file mode 100644 index 000000000..8bac3f2ab --- /dev/null +++ b/cocoa/NetSurfAppDelegate.m @@ -0,0 +1,78 @@ +/* + * Copyright 2011 Sven Weidauer <sven.weidauer@gmail.com> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#import "NetSurfAppDelegate.h" + +#import "desktop/browser.h" + +@interface NetSurfAppDelegate () + +- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent; + +@end + + +@implementation NetSurfAppDelegate + +@synthesize historyWindow; + +- (void) newDocument: (id) sender; +{ + browser_window_create( "http://netsurf-browser.org/", NULL, NULL, true, false ); +} + +- (void) openDocument: (id) sender; +{ + NSOpenPanel *openPanel = [NSOpenPanel openPanel]; + [openPanel setAllowsMultipleSelection: YES]; + if ([openPanel runModalForTypes: nil] == NSOKButton) { + for (NSURL *url in [openPanel URLs]) { + browser_window_create( [[url absoluteString] UTF8String], NULL, NULL, true, false ); + } + } +} + +- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent +{ + NSString *urlAsString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; + browser_window_create( [urlAsString UTF8String], NULL, NULL, true, false ); +} + +- (void) awakeFromNib; +{ + [historyWindow setExcludedFromWindowsMenu: YES]; +} + +// Application delegate methods + +- (BOOL) applicationOpenUntitledFile: (NSApplication *)sender; +{ + [self newDocument: self]; + return YES; +} + +-(void)applicationWillFinishLaunching:(NSNotification *)aNotification +{ + NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager]; + [appleEventManager setEventHandler:self + andSelector:@selector(handleGetURLEvent:withReplyEvent:) + forEventClass:kInternetEventClass andEventID:kAEGetURL]; +} + + +@end |