summaryrefslogtreecommitdiff
path: root/frontends/cocoa/BrowserWindowController.m
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/cocoa/BrowserWindowController.m')
-rw-r--r--frontends/cocoa/BrowserWindowController.m275
1 files changed, 139 insertions, 136 deletions
diff --git a/frontends/cocoa/BrowserWindowController.m b/frontends/cocoa/BrowserWindowController.m
index 1fa78b47b..ac3cf18e6 100644
--- a/frontends/cocoa/BrowserWindowController.m
+++ b/frontends/cocoa/BrowserWindowController.m
@@ -31,14 +31,12 @@
#import "cocoa/gui.h"
#import "cocoa/NetsurfApp.h"
-
@interface BrowserWindowController ()
-- (void) canCloseAlertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo;
+- (void)canCloseAlertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo;
@end
-
@implementation BrowserWindowController
@synthesize tabBar;
@@ -52,206 +50,211 @@
@synthesize activeBrowser;
@synthesize activeBrowserController;
-- (id) init
+- (id)init
{
- if (nil == (self = [super initWithWindowNibName: @"BrowserWindow"])) return nil;
-
- return self;
-}
+ if (nil == (self = [super initWithWindowNibName:@"BrowserWindow"]))
+ return nil;
+ return self;
+}
-- (void) awakeFromNib
+- (void)awakeFromNib
{
- [tabBar setShowAddTabButton: YES];
- [tabBar setTearOffStyle: PSMTabBarTearOffMiniwindow];
- [tabBar setCanCloseOnlyTab: YES];
- [tabBar setHideForSingleTab: YES];
-
- NSButton *b = [tabBar addTabButton];
- [b setTarget: self];
- [b setAction: @selector(newTab:)];
-
- [urlField setRefreshAction: @selector(reloadPage:)];
- [urlField bind: @"favicon" toObject: activeBrowserController withKeyPath: @"selection.favicon" options: nil];
-
- [self bind: @"canGoBack"
- toObject: activeBrowserController withKeyPath: @"selection.canGoBack"
- options: nil];
- [self bind: @"canGoForward"
- toObject: activeBrowserController withKeyPath: @"selection.canGoForward"
- options: nil];
-
- [navigationControl setMenu: historyBackMenu forSegment: 0];
- [navigationControl setMenu: historyForwardMenu forSegment: 1];
+ [tabBar setShowAddTabButton:YES];
+ [tabBar setTearOffStyle:PSMTabBarTearOffMiniwindow];
+ [tabBar setCanCloseOnlyTab:YES];
+ [tabBar setHideForSingleTab:YES];
+
+ NSButton *b = [tabBar addTabButton];
+ [b setTarget:self];
+ [b setAction:@selector(newTab:)];
+
+ [urlField setRefreshAction:@selector(reloadPage:)];
+ [urlField bind:@"favicon" toObject:activeBrowserController withKeyPath:@"selection.favicon" options:nil];
+
+ [self bind:@"canGoBack"
+ toObject:activeBrowserController
+ withKeyPath:@"selection.canGoBack"
+ options:nil];
+ [self bind:@"canGoForward"
+ toObject:activeBrowserController
+ withKeyPath:@"selection.canGoForward"
+ options:nil];
+
+ [navigationControl setMenu:historyBackMenu forSegment:0];
+ [navigationControl setMenu:historyForwardMenu forSegment:1];
}
-- (void) addTab: (BrowserViewController *)browser
+- (void)addTab:(BrowserViewController *)browser
{
- NSTabViewItem *item = [[NSTabViewItem alloc] initWithIdentifier: browser];
-
- [item setView: [browser view]];
- [item bind: @"label" toObject: browser withKeyPath: @"title" options: nil];
-
- [tabView addTabViewItem: item];
- [browser setWindowController: self];
-
- [tabView selectTabViewItem: item];
+ NSTabViewItem *item = [[NSTabViewItem alloc] initWithIdentifier:browser];
+
+ [item setView:[browser view]];
+ [item bind:@"label" toObject:browser withKeyPath:@"title" options:nil];
+
+ [tabView addTabViewItem:item];
+ [browser setWindowController:self];
+
+ [tabView selectTabViewItem:item];
}
-- (void) removeTab: (BrowserViewController *)browser
+- (void)removeTab:(BrowserViewController *)browser
{
- NSUInteger itemIndex = [tabView indexOfTabViewItemWithIdentifier: browser];
- if (itemIndex != NSNotFound) {
- NSTabViewItem *item = [tabView tabViewItemAtIndex: itemIndex];
- [tabView removeTabViewItem: item];
- [browser setWindowController: nil];
- }
+ NSUInteger itemIndex = [tabView indexOfTabViewItemWithIdentifier:browser];
+ if (itemIndex != NSNotFound) {
+ NSTabViewItem *item = [tabView tabViewItemAtIndex:itemIndex];
+ [tabView removeTabViewItem:item];
+ [browser setWindowController:nil];
+ }
}
-- (BOOL) windowShouldClose: (NSWindow *) window
+- (BOOL)windowShouldClose:(NSWindow *)window
{
- if ([tabView numberOfTabViewItems] <= 1) return YES;
- if ([[NSUserDefaults standardUserDefaults] boolForKey: kAlwaysCloseMultipleTabs]) return YES;
-
- NSAlert *ask = [NSAlert alertWithMessageText: NSLocalizedString( @"Do you really want to close this window?", nil )
- defaultButton: NSLocalizedString( @"Yes", @"'Yes' button" )
- alternateButton: NSLocalizedString( @"No" , @"'No' button" )
- otherButton:nil
- informativeTextWithFormat: NSLocalizedString( @"There are %d tabs open, do you want to close them all?", nil ),
- [tabView numberOfTabViewItems]];
- [ask setShowsSuppressionButton:YES];
-
- [ask beginSheetModalForWindow: window modalDelegate:self didEndSelector:@selector(canCloseAlertDidEnd:returnCode:contextInfo:)
- contextInfo: NULL];
-
- return NO;
+ if ([tabView numberOfTabViewItems] <= 1)
+ return YES;
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:kAlwaysCloseMultipleTabs])
+ return YES;
+
+ NSAlert *ask = [NSAlert alertWithMessageText:NSLocalizedString(@"Do you really want to close this window?", nil)
+ defaultButton:NSLocalizedString(@"Yes", @"'Yes' button")
+ alternateButton:NSLocalizedString(@"No", @"'No' button")
+ otherButton:nil
+ informativeTextWithFormat:NSLocalizedString(@"There are %d tabs open, do you want to close them all?", nil),
+ [tabView numberOfTabViewItems]];
+ [ask setShowsSuppressionButton:YES];
+
+ [ask beginSheetModalForWindow:window
+ modalDelegate:self
+ didEndSelector:@selector(canCloseAlertDidEnd:returnCode:contextInfo:)
+ contextInfo:NULL];
+
+ return NO;
}
-- (void) canCloseAlertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo
+- (void)canCloseAlertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo
{
- if (returnCode == NSModalResponseOK) {
- [[NSUserDefaults standardUserDefaults] setBool: [[alert suppressionButton] state] == NSOnState
- forKey: kAlwaysCloseMultipleTabs];
- [[self window] close];
- }
+ if (returnCode == NSModalResponseOK) {
+ [[NSUserDefaults standardUserDefaults] setBool:[[alert suppressionButton] state] == NSOnState
+ forKey:kAlwaysCloseMultipleTabs];
+ [[self window] close];
+ }
}
-- (void) windowWillClose: (NSNotification *)notification
+- (void)windowWillClose:(NSNotification *)notification
{
- for (NSTabViewItem *tab in [tabView tabViewItems]) {
- [tabView removeTabViewItem: tab];
- }
+ for (NSTabViewItem *tab in [tabView tabViewItems]) {
+ [tabView removeTabViewItem:tab];
+ }
}
-- (IBAction) newTab: (id) sender
+- (IBAction)newTab:(id)sender
{
- nsurl *url;
- nserror error;
-
- if (nsoption_charp(homepage_url) != NULL) {
- error = nsurl_create(nsoption_charp(homepage_url), &url);
- } else {
- error = nsurl_create(NETSURF_HOMEPAGE, &url);
- }
- if (error == NSERROR_OK) {
- error = browser_window_create(BW_CREATE_HISTORY |
- BW_CREATE_TAB,
- url,
- NULL,
- [activeBrowser browser],
- NULL);
- nsurl_unref(url);
- }
- if (error != NSERROR_OK) {
- cocoa_warning(messages_get_errorcode(error), 0);
- }
+ nsurl *url;
+ nserror error;
+
+ if (nsoption_charp(homepage_url) != NULL) {
+ error = nsurl_create(nsoption_charp(homepage_url), &url);
+ } else {
+ error = nsurl_create(NETSURF_HOMEPAGE, &url);
+ }
+ if (error == NSERROR_OK) {
+ error = browser_window_create(BW_CREATE_HISTORY | BW_CREATE_TAB,
+ url,
+ NULL,
+ [activeBrowser browser],
+ NULL);
+ nsurl_unref(url);
+ }
+ if (error != NSERROR_OK) {
+ cocoa_warning(messages_get_errorcode(error), 0);
+ }
}
-- (IBAction) closeCurrentTab: (id) sender
+- (IBAction)closeCurrentTab:(id)sender
{
- [self removeTab: activeBrowser];
+ [self removeTab:activeBrowser];
}
-- (void) setActiveBrowser: (BrowserViewController *)newBrowser
+- (void)setActiveBrowser:(BrowserViewController *)newBrowser
{
- activeBrowser = newBrowser;
- //[self setNextResponder: activeBrowser];
+ activeBrowser = newBrowser;
+ //[self setNextResponder: activeBrowser];
}
-- (void) setCanGoBack: (BOOL)can
+- (void)setCanGoBack:(BOOL)can
{
- [navigationControl setEnabled: can forSegment: 0];
+ [navigationControl setEnabled:can forSegment:0];
}
-- (BOOL) canGoBack
+- (BOOL)canGoBack
{
- return [navigationControl isEnabledForSegment: 0];
+ return [navigationControl isEnabledForSegment:0];
}
-- (void) setCanGoForward: (BOOL)can
+- (void)setCanGoForward:(BOOL)can
{
- [navigationControl setEnabled: can forSegment: 1];
+ [navigationControl setEnabled:can forSegment:1];
}
-- (BOOL) canGoForward
+- (BOOL)canGoForward
{
- return [navigationControl isEnabledForSegment: 1];
+ return [navigationControl isEnabledForSegment:1];
}
-- (void)windowDidBecomeMain: (NSNotification *)note
+- (void)windowDidBecomeMain:(NSNotification *)note
{
- [(NetSurfApp *)NSApp setFrontTab: [[tabView selectedTabViewItem] identifier]];
+ [(NetSurfApp *)NSApp setFrontTab:[[tabView selectedTabViewItem] identifier]];
}
- (void)menuNeedsUpdate:(NSMenu *)menu
{
- if (menu == historyBackMenu) {
- [activeBrowser buildBackMenu: menu];
- } else if (menu == historyForwardMenu) {
- [activeBrowser buildForwardMenu: menu];
- }
+ if (menu == historyBackMenu) {
+ [activeBrowser buildBackMenu:menu];
+ } else if (menu == historyForwardMenu) {
+ [activeBrowser buildForwardMenu:menu];
+ }
}
#pragma mark -
#pragma mark Tab bar delegate
-- (void) tabView: (NSTabView *)tabView didSelectTabViewItem: (NSTabViewItem *)tabViewItem
+- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
{
- [self setActiveBrowser: [tabViewItem identifier]];
- if ([[self window] isMainWindow]) {
- [(NetSurfApp *)NSApp setFrontTab: [tabViewItem identifier]];
- }
+ [self setActiveBrowser:[tabViewItem identifier]];
+ if ([[self window] isMainWindow]) {
+ [(NetSurfApp *)NSApp setFrontTab:[tabViewItem identifier]];
+ }
}
-- (BOOL)tabView:(NSTabView*)aTabView shouldDragTabViewItem:(NSTabViewItem *)tabViewItem fromTabBar:(PSMTabBarControl *)tabBarControl
+- (BOOL)tabView:(NSTabView *)aTabView shouldDragTabViewItem:(NSTabViewItem *)tabViewItem fromTabBar:(PSMTabBarControl *)tabBarControl
{
return [aTabView numberOfTabViewItems] > 1;
}
-- (BOOL)tabView:(NSTabView*)aTabView shouldDropTabViewItem:(NSTabViewItem *)tabViewItem inTabBar:(PSMTabBarControl *)tabBarControl
+- (BOOL)tabView:(NSTabView *)aTabView shouldDropTabViewItem:(NSTabViewItem *)tabViewItem inTabBar:(PSMTabBarControl *)tabBarControl
{
- [[tabViewItem identifier] setWindowController: self];
- return YES;
+ [[tabViewItem identifier] setWindowController:self];
+ return YES;
}
- (PSMTabBarControl *)tabView:(NSTabView *)aTabView newTabBarForDraggedTabViewItem:(NSTabViewItem *)tabViewItem atPoint:(NSPoint)point
{
- BrowserWindowController *newWindow = [[BrowserWindowController alloc] init];
- [[tabViewItem identifier] setWindowController: newWindow];
- [[newWindow window] setFrameOrigin: point];
- return newWindow->tabBar;
+ BrowserWindowController *newWindow = [[BrowserWindowController alloc] init];
+ [[tabViewItem identifier] setWindowController:newWindow];
+ [[newWindow window] setFrameOrigin:point];
+ return newWindow->tabBar;
}
-- (void) tabView: (NSTabView *)aTabView didCloseTabViewItem: (NSTabViewItem *)tabViewItem
+- (void)tabView:(NSTabView *)aTabView didCloseTabViewItem:(NSTabViewItem *)tabViewItem
{
- [tabViewItem unbind: @"label"];
-
- if (activeBrowser == [tabViewItem identifier]) {
- [self setActiveBrowser: nil];
- [(NetSurfApp *)NSApp setFrontTab: nil];
- }
-
- browser_window_destroy( [[tabViewItem identifier] browser] );
+ [tabViewItem unbind:@"label"];
+
+ if (activeBrowser == [tabViewItem identifier]) {
+ [self setActiveBrowser:nil];
+ [(NetSurfApp *)NSApp setFrontTab:nil];
+ }
+
+ browser_window_destroy([[tabViewItem identifier] browser]);
}
@end