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 #include "components/startup_metric_utils/startup_metric_utils.h" | |
8 #include "ui/base/win/message_box_win.h" | 7 #include "ui/base/win/message_box_win.h" |
9 #include "ui/gfx/win/hwnd_util.h" | |
10 | 8 |
11 namespace chrome { | 9 namespace chrome { |
12 | 10 |
13 MessageBoxResult NativeShowMessageBox(HWND parent, | 11 MessageBoxResult NativeShowMessageBox(HWND parent, |
14 const base::string16& title, | 12 const base::string16& title, |
15 const base::string16& message, | 13 const base::string16& message, |
16 MessageBoxType type) { | 14 MessageBoxType type) { |
17 UINT flags = MB_SETFOREGROUND; | 15 UINT flags = MB_SETFOREGROUND; |
18 if (type == MESSAGE_BOX_TYPE_QUESTION) { | 16 if (type == MESSAGE_BOX_TYPE_QUESTION) { |
19 flags |= MB_YESNO; | 17 flags |= MB_YESNO; |
20 } else if (type == MESSAGE_BOX_TYPE_OK_CANCEL) { | 18 } else if (type == MESSAGE_BOX_TYPE_OK_CANCEL) { |
21 flags |= MB_OKCANCEL; | 19 flags |= MB_OKCANCEL; |
22 } else { | 20 } else { |
23 flags |= MB_OK; | 21 flags |= MB_OK; |
24 } | 22 } |
25 flags |= ((type == MESSAGE_BOX_TYPE_INFORMATION) ? | 23 flags |= ((type == MESSAGE_BOX_TYPE_INFORMATION) ? |
26 MB_ICONINFORMATION : MB_ICONWARNING); | 24 MB_ICONINFORMATION : MB_ICONWARNING); |
27 int result = ui::MessageBox(parent, message, title, flags); | 25 int result = ui::MessageBox(parent, message, title, flags); |
28 return (result == IDYES || result == IDOK) ? | 26 return (result == IDYES || result == IDOK) ? |
29 MESSAGE_BOX_RESULT_YES : MESSAGE_BOX_RESULT_NO; | 27 MESSAGE_BOX_RESULT_YES : MESSAGE_BOX_RESULT_NO; |
30 } | 28 } |
31 | 29 |
32 #if !defined(USE_AURA) | |
33 MessageBoxResult ShowMessageBox(gfx::NativeWindow parent, | |
34 const base::string16& title, | |
35 const base::string16& message, | |
36 MessageBoxType type) { | |
37 startup_metric_utils::SetNonBrowserUIDisplayed(); | |
38 | |
39 if (!parent) | |
40 parent = gfx::GetWindowToParentTo(true); | |
41 | |
42 return NativeShowMessageBox(parent, title, message, type); | |
43 } | |
44 #endif | |
45 | |
46 } // namespace chrome | 30 } // namespace chrome |
OLD | NEW |