Home | History | Annotate | Download | only in tab_contents
      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