| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/simple_message_box.h" | 5 #include "chrome/browser/ui/simple_message_box.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include "base/strings/sys_string_conversions.h" | 9 #include "base/strings/sys_string_conversions.h" |
| 10 #include "chrome/browser/ui/simple_message_box_internal.h" |
| 10 #include "chrome/grit/generated_resources.h" | 11 #include "chrome/grit/generated_resources.h" |
| 11 #include "components/startup_metric_utils/startup_metric_utils.h" | 12 #include "components/startup_metric_utils/startup_metric_utils.h" |
| 12 #include "ui/base/l10n/l10n_util_mac.h" | 13 #include "ui/base/l10n/l10n_util_mac.h" |
| 13 | 14 |
| 14 namespace chrome { | 15 namespace chrome { |
| 15 | 16 |
| 16 MessageBoxResult ShowMessageBox(gfx::NativeWindow parent, | 17 MessageBoxResult ShowMessageBox(gfx::NativeWindow parent, |
| 17 const base::string16& title, | 18 const base::string16& title, |
| 18 const base::string16& message, | 19 const base::string16& message, |
| 19 MessageBoxType type) { | 20 MessageBoxType type) { |
| 20 if (type == MESSAGE_BOX_TYPE_OK_CANCEL) | 21 if (type == MESSAGE_BOX_TYPE_OK_CANCEL) |
| 21 NOTIMPLEMENTED(); | 22 NOTIMPLEMENTED(); |
| 22 | 23 |
| 23 startup_metric_utils::SetNonBrowserUIDisplayed(); | 24 startup_metric_utils::SetNonBrowserUIDisplayed(); |
| 25 if (internal::g_should_skip_message_box_for_test) |
| 26 return MESSAGE_BOX_RESULT_YES; |
| 24 | 27 |
| 25 // Ignore the title; it's the window title on other platforms and ignorable. | 28 // Ignore the title; it's the window title on other platforms and ignorable. |
| 26 NSAlert* alert = [[[NSAlert alloc] init] autorelease]; | 29 NSAlert* alert = [[[NSAlert alloc] init] autorelease]; |
| 27 [alert setMessageText:base::SysUTF16ToNSString(message)]; | 30 [alert setMessageText:base::SysUTF16ToNSString(message)]; |
| 28 NSAlertStyle style = (type == MESSAGE_BOX_TYPE_INFORMATION) ? | 31 NSAlertStyle style = (type == MESSAGE_BOX_TYPE_INFORMATION) ? |
| 29 NSInformationalAlertStyle : NSWarningAlertStyle; | 32 NSInformationalAlertStyle : NSWarningAlertStyle; |
| 30 [alert setAlertStyle:style]; | 33 [alert setAlertStyle:style]; |
| 31 if (type == MESSAGE_BOX_TYPE_QUESTION) { | 34 if (type == MESSAGE_BOX_TYPE_QUESTION) { |
| 32 [alert addButtonWithTitle: | 35 [alert addButtonWithTitle: |
| 33 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL)]; | 36 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL)]; |
| 34 [alert addButtonWithTitle: | 37 [alert addButtonWithTitle: |
| 35 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL)]; | 38 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL)]; |
| 36 } else { | 39 } else { |
| 37 [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)]; | 40 [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)]; |
| 38 } | 41 } |
| 39 NSInteger result = [alert runModal]; | 42 NSInteger result = [alert runModal]; |
| 40 return (result == NSAlertSecondButtonReturn) ? | 43 return (result == NSAlertSecondButtonReturn) ? |
| 41 MESSAGE_BOX_RESULT_NO : MESSAGE_BOX_RESULT_YES; | 44 MESSAGE_BOX_RESULT_NO : MESSAGE_BOX_RESULT_YES; |
| 42 } | 45 } |
| 43 | 46 |
| 44 } // namespace chrome | 47 } // namespace chrome |
| OLD | NEW |