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

Unified Diff: chrome/browser/cocoa/download_request_dialog_delegate_mac.mm

Issue 275011: Make the multiple download request dialog an infobar.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/cocoa/download_request_dialog_delegate_mac.mm
===================================================================
--- chrome/browser/cocoa/download_request_dialog_delegate_mac.mm (revision 28899)
+++ chrome/browser/cocoa/download_request_dialog_delegate_mac.mm (working copy)
@@ -1,104 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/cocoa/download_request_dialog_delegate_mac.h"
-
-#import <Cocoa/Cocoa.h>
-
-#include "app/l10n_util_mac.h"
-#include "app/message_box_flags.h"
-#include "base/sys_string_conversions.h"
-#include "chrome/browser/tab_contents/constrained_window.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
-#include "grit/generated_resources.h"
-
-@interface SheetCallback : NSObject {
- DownloadRequestDialogDelegateMac* target_; // weak
-}
-- (id)initWithTarget:(DownloadRequestDialogDelegateMac*)target;
-- (void) alertDidEnd:(NSAlert *)alert
- returnCode:(int)returnCode
- contextInfo:(void *)contextInfo;
-@end
-
-@implementation SheetCallback
-- (id)initWithTarget:(DownloadRequestDialogDelegateMac*)target {
- if ((self = [super init]) != nil) {
- target_ = target;
- }
- return self;
-}
-- (void)alertDidEnd:(NSAlert *)alert
- returnCode:(int)returnCode
- contextInfo:(void *)contextInfo {
- target_->SheetDidEnd(returnCode);
-}
-@end
-
-
-// static
-DownloadRequestDialogDelegate* DownloadRequestDialogDelegate::Create(
- TabContents* tab,
- DownloadRequestManager::TabDownloadState* host) {
- return new DownloadRequestDialogDelegateMac(tab, host);
-}
-
-DownloadRequestDialogDelegateMac::DownloadRequestDialogDelegateMac(
- TabContents* tab,
- DownloadRequestManager::TabDownloadState* host)
- : DownloadRequestDialogDelegate(host),
- ConstrainedWindowMacDelegateSystemSheet(
- [[[SheetCallback alloc] initWithTarget:this] autorelease],
- @selector(alertDidEnd:returnCode:contextInfo:)),
- responded_(false) {
-
- // Set up alert.
- NSAlert* alert = [[[NSAlert alloc] init] autorelease];
- [alert addButtonWithTitle:
- l10n_util::GetNSStringWithFixup(IDS_MULTI_DOWNLOAD_WARNING_ALLOW)];
- NSButton* denyButton = [alert addButtonWithTitle:
- l10n_util::GetNSStringWithFixup(IDS_MULTI_DOWNLOAD_WARNING_DENY)];
- [alert setMessageText:
- l10n_util::GetNSStringWithFixup(IDS_MULTI_DOWNLOAD_WARNING)];
- [alert setAlertStyle:NSInformationalAlertStyle];
-
- // Cocoa automatically gives ESC as a key equivalent to buttons with the text
- // "Cancel". Since we use a different text, we have to set this ourselves.
- NSString* escapeKey = @"\e";
- [denyButton setKeyEquivalent:escapeKey];
-
- set_sheet(alert);
-
- // Display alert in a per-tab sheet.
- window_ = tab->CreateConstrainedDialog(this);
-}
-
-void DownloadRequestDialogDelegateMac::CloseWindow() {
- window_->CloseConstrainedWindow();
-}
-
-void DownloadRequestDialogDelegateMac::DeleteDelegate() {
- if (is_sheet_open()) {
- // Close sheet if it's still open.
- [NSApp endSheet:[(NSAlert*)sheet() window]]; // calls SheetDidEnd().
- DCHECK(responded_);
- }
- if (!responded_) {
- // Happens if the sheet was never visible.
- responded_ = true;
- DoCancel();
- }
- DCHECK(!host_);
- delete this;
-}
-
-void DownloadRequestDialogDelegateMac::SheetDidEnd(int returnCode) {
- DCHECK(!responded_);
- if (returnCode == NSAlertFirstButtonReturn) {
- DoAccept();
- } else {
- DoCancel();
- }
- responded_ = true;
-}

Powered by Google App Engine
This is Rietveld 408576698