From 2c1dba660624ecc04ba6e5f2116694d517b34677 Mon Sep 17 00:00:00 2001 From: "rohitrao@chromium.org" Date: Fri, 8 Oct 2010 18:22:11 +0000 Subject: [Mac] Add the PreviewableContentsController's view into the view hierarchy. BUG=56835 TEST=No visible changes. Review URL: http://codereview.chromium.org/3618019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61988 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/cocoa/browser_window_controller.h | 2 ++ chrome/browser/cocoa/browser_window_controller.mm | 21 ++++++++++++++------- .../cocoa/browser_window_controller_private.mm | 13 +++++++------ 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'chrome/browser/cocoa') diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h index f0b3363..2a580de 100644 --- a/chrome/browser/cocoa/browser_window_controller.h +++ b/chrome/browser/cocoa/browser_window_controller.h @@ -38,6 +38,7 @@ class ConstrainedWindowMac; @class IncognitoImageView; @class InfoBarContainerController; class LocationBarViewMac; +@class PreviewableContentsController; @class SidebarController; class StatusBubbleMac; class TabContents; @@ -68,6 +69,7 @@ class TabContents; scoped_nsobject bookmarkBarController_; scoped_nsobject devToolsController_; scoped_nsobject sidebarController_; + scoped_nsobject previewableContentsController_; scoped_nsobject fullscreenController_; // Strong. StatusBubble is a special case of a strong reference that diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index ff95a04..9300d7d 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -33,6 +33,7 @@ #import "chrome/browser/cocoa/fullscreen_window.h" #import "chrome/browser/cocoa/infobar_container_controller.h" #import "chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.h" +#import "chrome/browser/cocoa/previewable_contents_controller.h" #import "chrome/browser/cocoa/nswindow_additions.h" #import "chrome/browser/cocoa/sad_tab_controller.h" #import "chrome/browser/cocoa/sidebar_controller.h" @@ -242,12 +243,21 @@ [[self tabContentArea] addSubview:[devToolsController_ view]]; // Create a sub-controller for the docked sidebar and add its view to the - // hierarchy. This must happen before the tabstrip controller is - // instantiated. + // hierarchy. This must happen before the previewable contents controller + // is instantiated. sidebarController_.reset([[SidebarController alloc] init]); [[sidebarController_ view] setFrame:[[devToolsController_ view] bounds]]; [[devToolsController_ view] addSubview:[sidebarController_ view]]; + // Create the previewable contents controller. This provides the switch + // view that TabStripController needs. + previewableContentsController_.reset( + [[PreviewableContentsController alloc] init]); + [[previewableContentsController_ view] + setFrame:[[sidebarController_ view] bounds]]; + [[sidebarController_ view] + addSubview:[previewableContentsController_ view]]; + // Create a controller for the tab strip, giving it the model object for // this window's Browser and the tab strip view. The controller will handle // registering for the appropriate tab notifications from the back-end and @@ -1015,11 +1025,8 @@ // StatusBubble delegate method: tell the status bubble the frame it should // position itself in. - (NSRect)statusBubbleBaseFrame { - NSView* baseView = [sidebarController_ view]; - NSArray* contentsSubviews = [baseView subviews]; - if ([contentsSubviews count] > 0) - baseView = [contentsSubviews objectAtIndex:0]; - return [[baseView superview] convertRect:[baseView frame] toView:nil]; + NSView* view = [previewableContentsController_ view]; + return [view convertRect:[view bounds] toView:nil]; } - (GTMWindowSheetController*)sheetController { diff --git a/chrome/browser/cocoa/browser_window_controller_private.mm b/chrome/browser/cocoa/browser_window_controller_private.mm index cc3e726..819dbed 100644 --- a/chrome/browser/cocoa/browser_window_controller_private.mm +++ b/chrome/browser/cocoa/browser_window_controller_private.mm @@ -14,6 +14,7 @@ #import "chrome/browser/cocoa/floating_bar_backing_view.h" #import "chrome/browser/cocoa/framed_browser_window.h" #import "chrome/browser/cocoa/fullscreen_controller.h" +#import "chrome/browser/cocoa/previewable_contents_controller.h" #import "chrome/browser/cocoa/side_tab_strip_controller.h" #import "chrome/browser/cocoa/tab_strip_controller.h" #import "chrome/browser/cocoa/tab_strip_view.h" @@ -50,13 +51,13 @@ const CGFloat kLocBarBottomInset = 1; if ([self useVerticalTabs]) factory = [SideTabStripController class]; - DCHECK([sidebarController_ view]); - DCHECK([[sidebarController_ view] window]); + DCHECK([previewableContentsController_ activeContainer]); + DCHECK([[previewableContentsController_ activeContainer] window]); tabStripController_.reset([[factory alloc] - initWithView:[self tabStripView] - switchView:[sidebarController_ view] - browser:browser_.get() - delegate:self]); + initWithView:[self tabStripView] + switchView:[previewableContentsController_ activeContainer] + browser:browser_.get() + delegate:self]); } - (void)saveWindowPositionIfNeeded { -- cgit v1.1