// 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_