summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa
diff options
context:
space:
mode:
authorrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 18:22:11 +0000
committerrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 18:22:11 +0000
commit2c1dba660624ecc04ba6e5f2116694d517b34677 (patch)
tree066024b1461ee9049c8cee947bcbccc15d172269 /chrome/browser/cocoa
parent209d1942f5b06d203e660c4b69417b13e8f64e96 (diff)
downloadchromium_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.h2
-rw-r--r--chrome/browser/cocoa/browser_window_controller.mm21
-rw-r--r--chrome/browser/cocoa/browser_window_controller_private.mm13
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 {