1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #import "chrome/browser/ui/cocoa/tab_contents/previewable_contents_controller.h" 6 7 #include "base/logging.h" 8 #include "base/mac/mac_util.h" 9 #include "content/browser/tab_contents/tab_contents.h" 10 11 @implementation PreviewableContentsController 12 13 @synthesize activeContainer = activeContainer_; 14 15 - (id)init { 16 if ((self = [super initWithNibName:@"PreviewableContents" 17 bundle:base::mac::MainAppBundle()])) { 18 } 19 return self; 20 } 21 22 - (void)showPreview:(TabContents*)preview { 23 DCHECK(preview); 24 25 // Remove any old preview contents before showing the new one. 26 if (previewContents_) 27 [previewContents_->GetNativeView() removeFromSuperview]; 28 29 previewContents_ = preview; 30 NSView* previewView = previewContents_->GetNativeView(); 31 [previewView setFrame:[[self view] bounds]]; 32 33 // Hide the active container and add the preview contents. 34 [activeContainer_ setHidden:YES]; 35 [[self view] addSubview:previewView]; 36 } 37 38 - (void)hidePreview { 39 DCHECK(previewContents_); 40 41 // Remove the preview contents and reshow the active container. 42 [previewContents_->GetNativeView() removeFromSuperview]; 43 [activeContainer_ setHidden:NO]; 44 45 previewContents_ = nil; 46 } 47 48 - (BOOL)isShowingPreview { 49 return previewContents_ != nil; 50 } 51 52 @end 53