Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / tab_contents / sad_tab_controller.mm
blob1fb3213cbbc9fbc63ffd96c53ba081f5a66845cb
1 // Copyright (c) 2011 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.
5 #include "chrome/browser/ui/cocoa/tab_contents/sad_tab_controller.h"
7 #include "base/mac/bundle_locations.h"
8 #import "chrome/browser/ui/cocoa/tab_contents/sad_tab_view_cocoa.h"
9 #include "content/public/browser/web_contents.h"
11 namespace chrome {
13 SadTab* SadTab::Create(content::WebContents* web_contents, SadTabKind kind) {
14   return new SadTabCocoa(web_contents);
17 SadTabCocoa::SadTabCocoa(content::WebContents* web_contents)
18     : web_contents_(web_contents) {
21 SadTabCocoa::~SadTabCocoa() {
24 void SadTabCocoa::Show() {
25   sad_tab_controller_.reset(
26       [[SadTabController alloc] initWithWebContents:web_contents_]);
29 void SadTabCocoa::Close() {
30   [[sad_tab_controller_ view] removeFromSuperview];
33 }  // namespace chrome
35 @implementation SadTabController
37 - (id)initWithWebContents:(content::WebContents*)webContents {
38   if ((self = [super init])) {
39     DCHECK(webContents);
40     webContents_ = webContents;
42     if (webContents_) {  // NULL in unit_tests.
43       NSView* ns_view = webContents_->GetNativeView();
44       [[self view] setAutoresizingMask:
45           (NSViewWidthSizable | NSViewHeightSizable)];
46       [ns_view addSubview:[self view]];
47       [[self view] setFrame:[ns_view bounds]];
48     }
49   }
51   return self;
54 - (void)dealloc {
55   [[sadTabView_ reloadButton] setTarget:nil];
56   [super dealloc];
59 - (void)loadView {
60   sadTabView_.reset([[SadTabView alloc] init]);
61   [[sadTabView_ reloadButton] setTarget:self];
62   [[sadTabView_ reloadButton] setAction:@selector(reloadPage:)];
63   [self setView:sadTabView_];
66 - (content::WebContents*)webContents {
67   return webContents_;
70 - (IBAction)reloadPage:(id)sender {
71   webContents_->GetController().Reload(true);
74 @end