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#ifndef CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_
6#define CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_
7
8#include "base/strings/string16.h"
9#include "ui/gfx/native_widget_types.h"
10
11namespace chrome {
12
13enum MessageBoxResult {
14  MESSAGE_BOX_RESULT_NO = 0,  // User chose NO or CANCEL.
15  MESSAGE_BOX_RESULT_YES = 1, // User chose YES or OK.
16};
17
18enum MessageBoxType {
19  MESSAGE_BOX_TYPE_INFORMATION,  // Shows an OK button.
20  MESSAGE_BOX_TYPE_WARNING,      // Shows an OK button.
21  MESSAGE_BOX_TYPE_QUESTION,     // Shows YES and NO buttons.
22  MESSAGE_BOX_TYPE_OK_CANCEL,    // Shows OK and CANCEL buttons (Aura only).
23};
24
25// Shows a dialog box with the given |title| and |message|. If |parent| is
26// non-NULL, the box will be made modal to the |parent|, except on Mac, where it
27// is always app-modal.
28//
29// NOTE: In general, you should avoid this since it's usually poor UI.
30// We have a variety of other surfaces such as wrench menu notifications and
31// infobars; consult the UI leads for a recommendation.
32MessageBoxResult ShowMessageBox(gfx::NativeWindow parent,
33                                const base::string16& title,
34                                const base::string16& message,
35                                MessageBoxType type);
36
37// Shows a dialog box with the given |title| and |message|, and with two buttons
38// labeled with |yes_text| and |no_text|. If |parent| is non-NULL, the box will
39// be made modal to the |parent|.  (Aura only.)
40//
41// NOTE: In general, you should avoid this since it's usually poor UI.
42// We have a variety of other surfaces such as wrench menu notifications and
43// infobars; consult the UI leads for a recommendation.
44MessageBoxResult ShowMessageBoxWithButtonText(gfx::NativeWindow parent,
45                                              const base::string16& title,
46                                              const base::string16& message,
47                                              const base::string16& yes_text,
48                                              const base::string16& no_text);
49
50}  // namespace chrome
51
52#endif  // CHROME_BROWSER_UI_SIMPLE_MESSAGE_BOX_H_
53