OLD | NEW |
| (Empty) |
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. | |
4 | |
5 #include "chrome/browser/ui/cocoa/tab_contents/sad_tab_controller.h" | |
6 | |
7 #include "base/mac/bundle_locations.h" | |
8 #include "base/mac/mac_util.h" | |
9 #import "chrome/browser/ui/cocoa/tab_contents/sad_tab_view.h" | |
10 #include "content/public/browser/web_contents.h" | |
11 | |
12 namespace chrome { | |
13 | |
14 SadTab* SadTab::Create(content::WebContents* web_contents, SadTabKind kind) { | |
15 return new SadTabCocoa(web_contents); | |
16 } | |
17 | |
18 SadTabCocoa::SadTabCocoa(content::WebContents* web_contents) | |
19 : web_contents_(web_contents) { | |
20 } | |
21 | |
22 SadTabCocoa::~SadTabCocoa() { | |
23 } | |
24 | |
25 void SadTabCocoa::Show() { | |
26 sad_tab_controller_.reset( | |
27 [[SadTabController alloc] initWithWebContents:web_contents_]); | |
28 } | |
29 | |
30 void SadTabCocoa::Close() { | |
31 [[sad_tab_controller_ view] removeFromSuperview]; | |
32 } | |
33 | |
34 } // namespace chrome | |
35 | |
36 @implementation SadTabController | |
37 | |
38 - (id)initWithWebContents:(content::WebContents*)webContents { | |
39 if ((self = [super initWithNibName:@"SadTab" | |
40 bundle:base::mac::FrameworkBundle()])) { | |
41 webContents_ = webContents; | |
42 | |
43 if (webContents_) { // NULL in unit_tests. | |
44 NSView* ns_view = webContents_->GetNativeView(); | |
45 [[self view] setAutoresizingMask: | |
46 (NSViewWidthSizable | NSViewHeightSizable)]; | |
47 [ns_view addSubview:[self view]]; | |
48 [[self view] setFrame:[ns_view bounds]]; | |
49 } | |
50 } | |
51 | |
52 return self; | |
53 } | |
54 | |
55 - (void)awakeFromNib { | |
56 // If webContents_ is nil, ask view to remove link. | |
57 if (!webContents_) { | |
58 SadTabView* sad_view = static_cast<SadTabView*>([self view]); | |
59 [sad_view removeHelpText]; | |
60 } | |
61 } | |
62 | |
63 - (content::WebContents*)webContents { | |
64 return webContents_; | |
65 } | |
66 | |
67 - (void)openLearnMoreAboutCrashLink:(id)sender { | |
68 // Send the action up through the responder chain. | |
69 [NSApp sendAction:@selector(openLearnMoreAboutCrashLink:) to:nil from:self]; | |
70 } | |
71 | |
72 @end | |
OLD | NEW |