| Index: chrome/browser/ui/cocoa/simple_message_box_mac.mm
|
| diff --git a/chrome/browser/ui/cocoa/simple_message_box_mac.mm b/chrome/browser/ui/cocoa/simple_message_box_mac.mm
|
| index 84865c07b3b9354ee82858a20637f898bdbf69cf..1c0a692ac8ab3e11eeaa381e5c28e93f4c41bb3e 100644
|
| --- a/chrome/browser/ui/cocoa/simple_message_box_mac.mm
|
| +++ b/chrome/browser/ui/cocoa/simple_message_box_mac.mm
|
| @@ -6,6 +6,7 @@
|
|
|
| #import <Cocoa/Cocoa.h>
|
|
|
| +#include "base/mac/scoped_nsobject.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "chrome/browser/ui/simple_message_box_internal.h"
|
| #include "chrome/grit/generated_resources.h"
|
| @@ -20,6 +21,7 @@ namespace {
|
| MessageBoxResult ShowMessageBox(gfx::NativeWindow parent,
|
| const base::string16& title,
|
| const base::string16& message,
|
| + const base::string16& checkbox_text,
|
| MessageBoxType type) {
|
| startup_metric_utils::SetNonBrowserUIDisplayed();
|
| if (internal::g_should_skip_message_box_for_test)
|
| @@ -37,9 +39,24 @@ MessageBoxResult ShowMessageBox(gfx::NativeWindow parent,
|
| } else {
|
| [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)];
|
| }
|
| +
|
| + base::scoped_nsobject<NSButton> checkbox;
|
| + if (!checkbox_text.empty()) {
|
| + checkbox.reset([[NSButton alloc] initWithFrame:NSZeroRect]);
|
| + [checkbox setButtonType:NSSwitchButton];
|
| + [checkbox setTitle:base::SysUTF16ToNSString(checkbox_text)];
|
| + [checkbox sizeToFit];
|
| + [alert setAccessoryView:checkbox];
|
| + }
|
| +
|
| NSInteger result = [alert runModal];
|
| - return (result == NSAlertSecondButtonReturn) ?
|
| - MESSAGE_BOX_RESULT_NO : MESSAGE_BOX_RESULT_YES;
|
| + if (result == NSAlertSecondButtonReturn)
|
| + return MESSAGE_BOX_RESULT_NO;
|
| +
|
| + if (!checkbox || ([checkbox state] == NSOnState))
|
| + return MESSAGE_BOX_RESULT_YES;
|
| +
|
| + return MESSAGE_BOX_RESULT_NO;
|
| }
|
|
|
| } // namespace
|
| @@ -47,13 +64,24 @@ MessageBoxResult ShowMessageBox(gfx::NativeWindow parent,
|
| void ShowWarningMessageBox(gfx::NativeWindow parent,
|
| const base::string16& title,
|
| const base::string16& message) {
|
| - ShowMessageBox(parent, title, message, MESSAGE_BOX_TYPE_WARNING);
|
| + ShowMessageBox(parent, title, message, base::string16(),
|
| + MESSAGE_BOX_TYPE_WARNING);
|
| +}
|
| +
|
| +bool ShowWarningMessageBoxWithCheckbox(gfx::NativeWindow parent,
|
| + const base::string16& title,
|
| + const base::string16& message,
|
| + const base::string16& checkbox_text) {
|
| + ShowMessageBox(parent, title, message, checkbox_text,
|
| + MESSAGE_BOX_TYPE_WARNING);
|
| + return false;
|
| }
|
|
|
| MessageBoxResult ShowQuestionMessageBox(gfx::NativeWindow parent,
|
| const base::string16& title,
|
| const base::string16& message) {
|
| - return ShowMessageBox(parent, title, message, MESSAGE_BOX_TYPE_QUESTION);
|
| + return ShowMessageBox(parent, title, message, base::string16(),
|
| + MESSAGE_BOX_TYPE_QUESTION);
|
| }
|
|
|
| } // namespace chrome
|
|
|