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

Unified 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/constrained_window_mac.mm
diff --git a/chrome/browser/cocoa/constrained_window_mac.mm b/chrome/browser/cocoa/constrained_window_mac.mm
index ad090a81d32ccacef57ea32d7be972de74b6bd8a..b03ceef87bf4a486e3a6bb71280168567dd307e6 100644
--- a/chrome/browser/cocoa/constrained_window_mac.mm
+++ b/chrome/browser/cocoa/constrained_window_mac.mm
@@ -11,25 +11,46 @@
ConstrainedWindowMacDelegate::~ConstrainedWindowMacDelegate() {}
+void ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(
+ GTMWindowSheetController* sheetController,
+ NSView* view,
+ SEL frameSelector,
+ SEL positionSelector) {
+ DCHECK([params_ isKindOfClass:[NSArray class]]);
+ [sheetController beginSystemSheet:systemSheet_
+ modalForView:view
+ frameSelector:frameSelector
+ positionSelector:positionSelector
+ withParameters:params_];
+}
+
void ConstrainedWindowMacDelegateSystemSheet::RunSheet(
GTMWindowSheetController* sheetController,
- NSView* view) {
+ NSView* view,
+ SEL frameSelector,
+ SEL positionSelector) {
NSArray* params = [NSArray arrayWithObjects:
[NSNull null], // window, must be [NSNull null]
delegate_.get(),
[NSValue valueWithPointer:didEndSelector_],
[NSValue valueWithPointer:NULL], // context info for didEndSelector_.
nil];
- [sheetController beginSystemSheet:systemSheet_
- modalForView:view
- withParameters:params];
+ set_params(params);
+ ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(sheetController,
+ view,
+ frameSelector,
+ positionSelector);
}
void ConstrainedWindowMacDelegateCustomSheet::RunSheet(
GTMWindowSheetController* sheetController,
- NSView* view) {
+ NSView* view,
+ SEL frameSelector,
+ SEL positionSelector) {
[sheetController beginSheet:customSheet_.get()
modalForView:view
+ frameSelector:frameSelector
+ positionSelector:positionSelector
modalDelegate:delegate_.get()
didEndSelector:didEndSelector_
contextInfo:NULL];
@@ -67,12 +88,29 @@ void ConstrainedWindowMac::CloseConstrainedWindow() {
// Note: controller_ can be `nil` here if the sheet was never realized. That's
// ok.
[controller_ removeConstrainedWindow:this];
- delegate_->DeleteDelegate();
- owner_->WillClose(this);
+
+ DCHECK(delegate_);
+ if (delegate_)
+ delegate_->DeleteDelegate();
+
+ DCHECK(owner_);
+ if (owner_)
+ owner_->WillClose(this);
delete this;
}
+bool ConstrainedWindowMac::ParentWillDo(ConstrainedWindow::Event event) {
+ // Just get our delegate to handle it. If it doesn't do anything, call our
+ // super's handler.
+ DCHECK(delegate_);
+ if (delegate_) {
+ if (delegate_->ParentWillDo(event))
+ return true;
+ }
+ return ConstrainedWindow::ParentWillDo(event);
+}
+
void ConstrainedWindowMac::Realize(BrowserWindowController* controller) {
if (controller_ != nil) {
DCHECK(controller_ == controller);
« 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