diff options
author | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 18:22:11 +0000 |
---|---|---|
committer | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 18:22:11 +0000 |
commit | 2c1dba660624ecc04ba6e5f2116694d517b34677 (patch) | |
tree | 066024b1461ee9049c8cee947bcbccc15d172269 /chrome/browser/cocoa | |
parent | 209d1942f5b06d203e660c4b69417b13e8f64e96 (diff) | |
download | chromium_src-2c1dba660624ecc04ba6e5f2116694d517b34677.zip chromium_src-2c1dba660624ecc04ba6e5f2116694d517b34677.tar.gz chromium_src-2c1dba660624ecc04ba6e5f2116694d517b34677.tar.bz2 |
[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
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.mm | 21 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller_private.mm | 13 |
3 files changed, 23 insertions, 13 deletions
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> bookmarkBarController_; scoped_nsobject<DevToolsController> devToolsController_; scoped_nsobject<SidebarController> sidebarController_; + scoped_nsobject<PreviewableContentsController> previewableContentsController_; scoped_nsobject<FullscreenController> 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 { |