// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_BASE_MODELS_DIALOG_MODEL_H_
#define UI_BASE_MODELS_DIALOG_MODEL_H_
#include "base/strings/string16.h"
#include "ui/base/ui_base_export.h"
#include "ui/base/ui_base_types.h"
namespace ui {
// A model representing a dialog window. The model provides the content to show
// to the user (i.e. label, title), and the ways the user can interact with it
// (i.e. the buttons).
class UI_BASE_EXPORT DialogModel {
public:
virtual ~DialogModel();
// Returns the text of show in the dialog.
virtual base::string16 GetDialogLabel() const = 0;
// Returns the title of the dialog.
virtual base::string16 GetDialogTitle() const = 0;
// Returns a mask specifying which of the available DialogButtons are visible
// for the dialog. Note: Dialogs with just an OK button are frowned upon.
virtual int GetDialogButtons() const = 0;
// Returns the default dialog button. This should not be a mask as only
// one button should ever be the default button. Return
// ui::DIALOG_BUTTON_NONE if there is no default. Default
// behavior is to return ui::DIALOG_BUTTON_OK or
// ui::DIALOG_BUTTON_CANCEL (in that order) if they are
// present, ui::DIALOG_BUTTON_NONE otherwise.
virtual int GetDefaultDialogButton() const = 0;
// Returns whether the default dialog button should be colored blue as a call
// to action.
virtual bool ShouldDefaultButtonBeBlue() const = 0;
// Returns the label of the specified dialog button.
virtual base::string16 GetDialogButtonLabel(DialogButton button) const = 0;
// Returns whether the specified dialog button is enabled.
virtual bool IsDialogButtonEnabled(DialogButton button) const = 0;
};
} // namespace ui
#endif // UI_BASE_MODELS_DIALOG_MODEL_H_