summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/browser_window_controller.mm
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-28 19:03:39 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-28 19:03:39 +0000
commit2feb19b125ef3fd6bebef1b5eefd08e92523d897 (patch)
tree13d5f0ce125e06b367fc1170fdc3556655b1ba6e /chrome/browser/cocoa/browser_window_controller.mm
parentc6b5b4f6a3f379e01299292f36b626d491912366 (diff)
downloadchromium_src-2feb19b125ef3fd6bebef1b5eefd08e92523d897.zip
chromium_src-2feb19b125ef3fd6bebef1b5eefd08e92523d897.tar.gz
chromium_src-2feb19b125ef3fd6bebef1b5eefd08e92523d897.tar.bz2
Support for tabs reaching a threshold before tearing off (magnetism), showing position of where the tab will go in the destination tab strip. Use new close box icon. Don't draw the tab title over the close box. Patch from alcor@google.com
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14758 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/browser_window_controller.mm')
-rw-r--r--chrome/browser/cocoa/browser_window_controller.mm36
1 files changed, 31 insertions, 5 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm
index 048b641..c9d325f 100644
--- a/chrome/browser/cocoa/browser_window_controller.mm
+++ b/chrome/browser/cocoa/browser_window_controller.mm
@@ -275,6 +275,18 @@ willPositionSheet:(NSWindow *)sheet
return [tabStripController_ selectedTabGrowBoxRect];
}
+- (void)dropTabView:(NSView *)view atIndex:(NSUInteger)index {
+ [tabStripController_ dropTabView:view atIndex:index];
+}
+
+- (NSView *)selectedTabView {
+ return [tabStripController_ selectedTabView];
+}
+
+- (TabStripController *)tabStripController {
+ return tabStripController_;
+}
+
- (void)setIsLoading:(BOOL)isLoading {
[toolbarController_ setIsLoading:isLoading];
}
@@ -296,8 +308,8 @@ willPositionSheet:(NSWindow *)sheet
[toolbarController_ focusLocationBar];
}
-- (void)arrangeTabs {
- NOTIMPLEMENTED();
+- (void)layoutTabs {
+ [tabStripController_ layoutTabs];
}
- (TabWindowController*)detachTabToNewWindow:(TabView*)tabView {
@@ -317,6 +329,8 @@ willPositionSheet:(NSWindow *)sheet
gfx::Rect browserRect(windowRect.origin.x, windowRect.origin.y,
windowRect.size.width, windowRect.size.height);
+ NSRect tabRect = [tabView frame];
+
// Detach it from the source window, which just updates the model without
// deleting the tab contents. This needs to come before creating the new
// Browser because it clears the TabContents' delegate, which gets hooked
@@ -336,15 +350,27 @@ willPositionSheet:(NSWindow *)sheet
[newBrowser->window()->GetNativeHandle() delegate];
DCHECK(controller && [controller isKindOfClass:[TabWindowController class]]);
+ // Force the added tab to the right size (remove stretching)
+ tabRect.size.height = [TabStripController defaultTabHeight];
+ NSView *newTabView = [controller selectedTabView];
+ [newTabView setFrame:tabRect];
+
return controller;
}
-- (void)insertPlaceholderForTab:(TabView*)tab atLocation:(NSInteger)xLocation {
- NOTIMPLEMENTED();
+
+- (void)insertPlaceholderForTab:(TabView*)tab
+ frame:(NSRect)frame
+ yStretchiness:(CGFloat)yStretchiness {
+ [tabStripController_ insertPlaceholderForTab:tab
+ frame:frame
+ yStretchiness:yStretchiness];
}
- (void)removePlaceholder {
- NOTIMPLEMENTED();
+ [tabStripController_ insertPlaceholderForTab:nil
+ frame:NSZeroRect
+ yStretchiness:0];
}
- (BOOL)isBookmarkBarVisible {