diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-28 19:03:39 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-28 19:03:39 +0000 |
commit | 2feb19b125ef3fd6bebef1b5eefd08e92523d897 (patch) | |
tree | 13d5f0ce125e06b367fc1170fdc3556655b1ba6e /chrome/browser/cocoa/browser_window_controller.mm | |
parent | c6b5b4f6a3f379e01299292f36b626d491912366 (diff) | |
download | chromium_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.mm | 36 |
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 { |