- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / simple_message_box_mac.mm
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/simple_message_box.h"
6
7 #import <Cocoa/Cocoa.h>
8
9 #include "base/strings/sys_string_conversions.h"
10 #include "components/startup_metric_utils/startup_metric_utils.h"
11 #include "grit/generated_resources.h"
12 #include "ui/base/l10n/l10n_util_mac.h"
13
14 namespace chrome {
15
16 MessageBoxResult ShowMessageBox(gfx::NativeWindow parent,
17                                 const string16& title,
18                                 const string16& message,
19                                 MessageBoxType type) {
20   if (type == MESSAGE_BOX_TYPE_OK_CANCEL)
21     NOTIMPLEMENTED();
22
23   startup_metric_utils::SetNonBrowserUIDisplayed();
24
25   // Ignore the title; it's the window title on other platforms and ignorable.
26   NSAlert* alert = [[[NSAlert alloc] init] autorelease];
27   [alert setMessageText:base::SysUTF16ToNSString(message)];
28   NSUInteger style = (type == MESSAGE_BOX_TYPE_INFORMATION) ?
29       NSInformationalAlertStyle : NSWarningAlertStyle;
30   [alert setAlertStyle:style];
31   if (type == MESSAGE_BOX_TYPE_QUESTION) {
32     [alert addButtonWithTitle:
33         l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL)];
34     [alert addButtonWithTitle:
35         l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL)];
36   } else {
37     [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)];
38   }
39   NSInteger result = [alert runModal];
40   return (result == NSAlertSecondButtonReturn) ?
41       MESSAGE_BOX_RESULT_NO : MESSAGE_BOX_RESULT_YES;
42 }
43
44 }  // namespace chrome