blob: 5c4e8489811268813a4d6969d68f668d624c6b56 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2012 The Chromium Authors
[email protected]80772ed2011-08-09 21:11:382// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]b50892c5f2012-05-13 07:34:145#ifndef CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_
6#define CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_
[email protected]80772ed2011-08-09 21:11:387
Jan Wilken Dörriead587c32021-03-11 14:09:278#include <string>
9
Avi Drissman9269d4ed2023-01-07 01:38:0610#include "base/functional/callback_forward.h"
[email protected]80772ed2011-08-09 21:11:3811#include "ui/gfx/native_widget_types.h"
12
[email protected]d33220292012-07-04 01:41:2713namespace chrome {
[email protected]80772ed2011-08-09 21:11:3814
[email protected]5da155e2012-05-26 16:31:1615enum MessageBoxResult {
afakhry7c9abe72016-08-05 17:33:1916 // User chose NO or CANCEL. If there's a checkbox, then the checkbox was
17 // unchecked.
18 MESSAGE_BOX_RESULT_NO = 0,
19
20 // User chose YES or OK. If there's a checkbox, then the checkbox was checked.
21 MESSAGE_BOX_RESULT_YES = 1,
Elly Fong-Jones165afb92017-06-29 18:43:2822
23 // Message box was displayed asynchronously and is pending a real result,
24 // which will be delivered via callback.
25 MESSAGE_BOX_RESULT_DEFERRED = 2,
[email protected]5da155e2012-05-26 16:31:1626};
27
[email protected]d1f48ef52012-05-13 19:34:2128enum MessageBoxType {
Aran Gilmand217b5b2019-04-11 17:45:4329 MESSAGE_BOX_TYPE_WARNING, // Shows an OK button.
30 MESSAGE_BOX_TYPE_QUESTION, // Shows YES and NO buttons.
[email protected]d1f48ef52012-05-13 19:34:2131};
32
[email protected]5da155e2012-05-26 16:31:1633// Shows a dialog box with the given |title| and |message|. If |parent| is
34// non-NULL, the box will be made modal to the |parent|, except on Mac, where it
[email protected]24ced7dc02013-04-04 08:32:3935// is always app-modal.
[email protected]5da155e2012-05-26 16:31:1636//
Mihai Sardarescuca00b2422018-11-28 10:54:2237// If |can_close| is false, then this dialog will not show the close button and
38// the dialog will only be dismissed when the user presses the OK button.
39//
[email protected]5da155e2012-05-26 16:31:1640// NOTE: In general, you should avoid this since it's usually poor UI.
tfarina917cff5e2015-10-31 01:16:3841// We have a variety of other surfaces such as app menu notifications and
[email protected]5da155e2012-05-26 16:31:1642// infobars; consult the UI leads for a recommendation.
Mihai Sardarescud9faab6a2021-11-30 19:03:2743MessageBoxResult ShowWarningMessageBox(gfx::NativeWindow parent,
44 const std::u16string& title,
45 const std::u16string& message);
estadee16f96ed2016-03-07 22:57:0546
xiyuan24043672017-06-14 15:17:2947// As above, but shows the dialog box asynchronously with a checkbox.
48// |callback| will be invoked after the dialog is dismissed. It is invoked with
49// true if the checkbox is checked and false otherwise.
50void ShowWarningMessageBoxWithCheckbox(
51 gfx::NativeWindow parent,
Jan Wilken Dörrie3f97e292021-03-11 18:07:1452 const std::u16string& title,
53 const std::u16string& message,
54 const std::u16string& checkbox_text,
xiyuan24043672017-06-14 15:17:2955 base::OnceCallback<void(bool checked)> callback);
afakhry7c9abe72016-08-05 17:33:1956
estadee16f96ed2016-03-07 22:57:0557// As above, but two buttons are displayed and the return value indicates which
58// is chosen.
Collin Baker58ae65c2021-02-05 21:12:2959MessageBoxResult ShowQuestionMessageBoxSync(gfx::NativeWindow parent,
Jan Wilken Dörrie3f97e292021-03-11 18:07:1460 const std::u16string& title,
61 const std::u16string& message);
Collin Baker58ae65c2021-02-05 21:12:2962
63void ShowQuestionMessageBox(
64 gfx::NativeWindow parent,
Jan Wilken Dörrie3f97e292021-03-11 18:07:1465 const std::u16string& title,
66 const std::u16string& message,
Collin Baker58ae65c2021-02-05 21:12:2967 base::OnceCallback<void(MessageBoxResult)> callback);
[email protected]80772ed2011-08-09 21:11:3868
[email protected]f8ef7162013-11-22 01:56:4169// Shows a dialog box with the given |title| and |message|, and with two buttons
70// labeled with |yes_text| and |no_text|. If |parent| is non-NULL, the box will
71// be made modal to the |parent|. (Aura only.)
72//
73// NOTE: In general, you should avoid this since it's usually poor UI.
tfarina917cff5e2015-10-31 01:16:3874// We have a variety of other surfaces such as app menu notifications and
[email protected]f8ef7162013-11-22 01:56:4175// infobars; consult the UI leads for a recommendation.
76MessageBoxResult ShowMessageBoxWithButtonText(gfx::NativeWindow parent,
Jan Wilken Dörrie3f97e292021-03-11 18:07:1477 const std::u16string& title,
78 const std::u16string& message,
79 const std::u16string& yes_text,
80 const std::u16string& no_text);
[email protected]f8ef7162013-11-22 01:56:4181
[email protected]d33220292012-07-04 01:41:2782} // namespace chrome
[email protected]80772ed2011-08-09 21:11:3883
[email protected]b50892c5f2012-05-13 07:34:1484#endif // CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_