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

Side by Side Diff: chrome/browser/cocoa/constrained_window_mac.mm

Issue 459008: Mac: the return of the tab-modal-sheets patch. (Closed)
Patch Set: Merged ToT. Must ... commit ... soon. Created 11 years 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/cocoa/constrained_window_mac.h" 5 #include "chrome/browser/cocoa/constrained_window_mac.h"
6 6
7 #import "chrome/browser/cocoa/browser_window_controller.h" 7 #import "chrome/browser/cocoa/browser_window_controller.h"
8 #include "chrome/browser/tab_contents/tab_contents.h" 8 #include "chrome/browser/tab_contents/tab_contents.h"
9 #include "chrome/browser/tab_contents/tab_contents_view.h" 9 #include "chrome/browser/tab_contents/tab_contents_view.h"
10 #import "third_party/GTM/AppKit/GTMWindowSheetController.h" 10 #import "third_party/GTM/AppKit/GTMWindowSheetController.h"
11 11
12 ConstrainedWindowMacDelegate::~ConstrainedWindowMacDelegate() {} 12 ConstrainedWindowMacDelegate::~ConstrainedWindowMacDelegate() {}
13 13
14 void ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(
15 GTMWindowSheetController* sheetController,
16 NSView* view,
17 SEL frameSelector,
18 SEL positionSelector) {
19 DCHECK([params_ isKindOfClass:[NSArray class]]);
20 [sheetController beginSystemSheet:systemSheet_
21 modalForView:view
22 frameSelector:frameSelector
23 positionSelector:positionSelector
24 withParameters:params_];
25 }
26
14 void ConstrainedWindowMacDelegateSystemSheet::RunSheet( 27 void ConstrainedWindowMacDelegateSystemSheet::RunSheet(
15 GTMWindowSheetController* sheetController, 28 GTMWindowSheetController* sheetController,
16 NSView* view) { 29 NSView* view,
30 SEL frameSelector,
31 SEL positionSelector) {
17 NSArray* params = [NSArray arrayWithObjects: 32 NSArray* params = [NSArray arrayWithObjects:
18 [NSNull null], // window, must be [NSNull null] 33 [NSNull null], // window, must be [NSNull null]
19 delegate_.get(), 34 delegate_.get(),
20 [NSValue valueWithPointer:didEndSelector_], 35 [NSValue valueWithPointer:didEndSelector_],
21 [NSValue valueWithPointer:NULL], // context info for didEndSelector_. 36 [NSValue valueWithPointer:NULL], // context info for didEndSelector_.
22 nil]; 37 nil];
23 [sheetController beginSystemSheet:systemSheet_ 38 set_params(params);
24 modalForView:view 39 ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(sheetController,
25 withParameters:params]; 40 view,
41 frameSelector,
42 positionSelector);
26 } 43 }
27 44
28 void ConstrainedWindowMacDelegateCustomSheet::RunSheet( 45 void ConstrainedWindowMacDelegateCustomSheet::RunSheet(
29 GTMWindowSheetController* sheetController, 46 GTMWindowSheetController* sheetController,
30 NSView* view) { 47 NSView* view,
48 SEL frameSelector,
49 SEL positionSelector) {
31 [sheetController beginSheet:customSheet_.get() 50 [sheetController beginSheet:customSheet_.get()
32 modalForView:view 51 modalForView:view
52 frameSelector:frameSelector
53 positionSelector:positionSelector
33 modalDelegate:delegate_.get() 54 modalDelegate:delegate_.get()
34 didEndSelector:didEndSelector_ 55 didEndSelector:didEndSelector_
35 contextInfo:NULL]; 56 contextInfo:NULL];
36 } 57 }
37 58
38 // static 59 // static
39 ConstrainedWindow* ConstrainedWindow::CreateConstrainedDialog( 60 ConstrainedWindow* ConstrainedWindow::CreateConstrainedDialog(
40 TabContents* parent, 61 TabContents* parent,
41 ConstrainedWindowMacDelegate* delegate) { 62 ConstrainedWindowMacDelegate* delegate) {
42 return new ConstrainedWindowMac(parent, delegate); 63 return new ConstrainedWindowMac(parent, delegate);
(...skipping 17 matching lines...) Expand all
60 Realize(static_cast<BrowserWindowController*>(controller)); 81 Realize(static_cast<BrowserWindowController*>(controller));
61 } 82 }
62 } 83 }
63 84
64 ConstrainedWindowMac::~ConstrainedWindowMac() {} 85 ConstrainedWindowMac::~ConstrainedWindowMac() {}
65 86
66 void ConstrainedWindowMac::CloseConstrainedWindow() { 87 void ConstrainedWindowMac::CloseConstrainedWindow() {
67 // Note: controller_ can be `nil` here if the sheet was never realized. That's 88 // Note: controller_ can be `nil` here if the sheet was never realized. That's
68 // ok. 89 // ok.
69 [controller_ removeConstrainedWindow:this]; 90 [controller_ removeConstrainedWindow:this];
70 delegate_->DeleteDelegate(); 91
71 owner_->WillClose(this); 92 DCHECK(delegate_);
93 if (delegate_)
94 delegate_->DeleteDelegate();
95
96 DCHECK(owner_);
97 if (owner_)
98 owner_->WillClose(this);
72 99
73 delete this; 100 delete this;
74 } 101 }
75 102
103 bool ConstrainedWindowMac::ParentWillDo(ConstrainedWindow::Event event) {
104 // Just get our delegate to handle it. If it doesn't do anything, call our
105 // super's handler.
106 DCHECK(delegate_);
107 if (delegate_) {
108 if (delegate_->ParentWillDo(event))
109 return true;
110 }
111 return ConstrainedWindow::ParentWillDo(event);
112 }
113
76 void ConstrainedWindowMac::Realize(BrowserWindowController* controller) { 114 void ConstrainedWindowMac::Realize(BrowserWindowController* controller) {
77 if (controller_ != nil) { 115 if (controller_ != nil) {
78 DCHECK(controller_ == controller); 116 DCHECK(controller_ == controller);
79 return; 117 return;
80 } 118 }
81 DCHECK(controller != nil); 119 DCHECK(controller != nil);
82 120
83 // Remember the controller we're adding ourselves to, so that we can later 121 // Remember the controller we're adding ourselves to, so that we can later
84 // remove us from it. 122 // remove us from it.
85 if ([controller attachConstrainedWindow:this]) 123 if ([controller attachConstrainedWindow:this])
86 controller_ = controller; 124 controller_ = controller;
87 } 125 }
88 126
89 void ConstrainedWindowMac::SetVisible() { 127 void ConstrainedWindowMac::SetVisible() {
90 // Only notify the delegate that the sheet is open after the sheet appeared 128 // Only notify the delegate that the sheet is open after the sheet appeared
91 // on screen (as opposed to when the sheet was added to the current tab's 129 // on screen (as opposed to when the sheet was added to the current tab's
92 // sheet queue). 130 // sheet queue).
93 delegate_->set_sheet_open(true); 131 delegate_->set_sheet_open(true);
94 } 132 }
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/constrained_window_mac.h ('k') | chrome/browser/cocoa/shell_dialogs_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698