Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: chrome/browser/tab_contents/web_contents_view_mac.mm

Issue 20334: Sad Tab view for the Mac. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/tab_contents/web_contents_view_mac.h" 5 #include "chrome/browser/tab_contents/web_contents_view_mac.h"
6 6
7 #include "chrome/browser/browser.h" // TODO(beng): this dependency is awful. 7 #include "chrome/browser/browser.h" // TODO(beng): this dependency is awful.
8 #include "chrome/browser/cocoa/sad_tab_view.h"
8 #include "chrome/browser/renderer_host/render_widget_host.h" 9 #include "chrome/browser/renderer_host/render_widget_host.h"
9 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h" 10 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h"
10 #include "chrome/browser/tab_contents/web_contents.h" 11 #include "chrome/browser/tab_contents/web_contents.h"
11 12
12 #include "chrome/common/temp_scaffolding_stubs.h" 13 #include "chrome/common/temp_scaffolding_stubs.h"
13 14
14 // static 15 // static
15 WebContentsView* WebContentsView::Create(WebContents* web_contents) { 16 WebContentsView* WebContentsView::Create(WebContents* web_contents) {
16 return new WebContentsViewMac(web_contents); 17 return new WebContentsViewMac(web_contents);
17 } 18 }
18 19
19 WebContentsViewMac::WebContentsViewMac(WebContents* web_contents) 20 WebContentsViewMac::WebContentsViewMac(WebContents* web_contents)
20 : web_contents_(web_contents) { 21 : web_contents_(web_contents) {
22 registrar_.Add(this, NotificationType::WEB_CONTENTS_CONNECTED,
23 Source<WebContents>(web_contents));
24 registrar_.Add(this, NotificationType::WEB_CONTENTS_DISCONNECTED,
25 Source<WebContents>(web_contents));
21 } 26 }
22 27
23 WebContentsViewMac::~WebContentsViewMac() { 28 WebContentsViewMac::~WebContentsViewMac() {
24 } 29 }
25 30
26 WebContents* WebContentsViewMac::GetWebContents() { 31 WebContents* WebContentsViewMac::GetWebContents() {
27 return web_contents_; 32 return web_contents_;
28 } 33 }
29 34
30 void WebContentsViewMac::CreateView() { 35 void WebContentsViewMac::CreateView() {
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 if (!widget_host->process()->channel()) { 230 if (!widget_host->process()->channel()) {
226 // The view has gone away or the renderer crashed. Nothing to do. 231 // The view has gone away or the renderer crashed. Nothing to do.
227 return; 232 return;
228 } 233 }
229 234
230 // Reparenting magic goes here. TODO(avi): fix 235 // Reparenting magic goes here. TODO(avi): fix
231 236
232 widget_host->Init(); 237 widget_host->Init();
233 } 238 }
234 239
240 void WebContentsViewMac::Observe(NotificationType type,
241 const NotificationSource& source,
242 const NotificationDetails& details) {
243 switch (type.value) {
244 case NotificationType::WEB_CONTENTS_CONNECTED: {
245 if (sad_tab_.get()) {
246 [sad_tab_.get() removeFromSuperview];
247 sad_tab_.reset();
248 }
249 break;
250 }
251 case NotificationType::WEB_CONTENTS_DISCONNECTED: {
252 SadTabView* view = [[SadTabView alloc] initWithFrame:NSZeroRect];
253 CFRetain(view);
254 [view release];
255 sad_tab_.reset(view);
256
257 // Set as the dominant child.
258 [cocoa_view_.get() addSubview:view];
259 [view setFrame:[cocoa_view_.get() bounds]];
260 [view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
261 break;
262 }
263 default:
264 NOTREACHED() << "Got a notification we didn't register for.";
265 }
266 }
267
235 @implementation WebContentsViewCocoa 268 @implementation WebContentsViewCocoa
236 269
237 // Tons of stuff goes here, where we grab events going on in Cocoaland and send 270 // Tons of stuff goes here, where we grab events going on in Cocoaland and send
238 // them into the C++ system. TODO(avi): all that jazz 271 // them into the C++ system. TODO(avi): all that jazz
239 272
240 @end 273 @end
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/web_contents_view_mac.h ('k') | chrome/chrome.xcodeproj/project.pbxproj » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698