Commit c477438a authored by Elly Fong-Jones's avatar Elly Fong-Jones Committed by Commit Bot

cbui: simplify ConfirmBubbleViews a bit

This change:
1) Removes ConfirmBubbleModel::GetButtons(), because every user had both
   buttons. Design-wise this makes sense - a ConfirmBubbleModel represents a
   yes/no choice, so having one or both of the buttons absent doesn't make much
   sense.
2) Removes ConfirmBubbleModel::BubbleButton, which duplicates ui::DialogButton
3) Removes ConfirmBubbleViews::IsDialogButtonEnabled() - because of point (1),
   this always returned true.

Bug: 1011446
Change-Id: I04bf65b7145ce00d70887feef1d0a6d218255697
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2028217
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736878}
parent 8cfd4a92
......@@ -54,9 +54,9 @@ base::string16 AccessibilityLabelsBubbleModel::GetMessageText() const {
}
base::string16 AccessibilityLabelsBubbleModel::GetButtonLabel(
BubbleButton button) const {
ui::DialogButton button) const {
return l10n_util::GetStringUTF16(
button == BUTTON_OK
button == ui::DIALOG_BUTTON_OK
? IDS_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_BUBBLE_ENABLE
: IDS_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_BUBBLE_DISABLE);
}
......
......@@ -26,7 +26,7 @@ class AccessibilityLabelsBubbleModel : public ConfirmBubbleModel {
// ConfirmBubbleModel implementation.
base::string16 GetTitle() const override;
base::string16 GetMessageText() const override;
base::string16 GetButtonLabel(BubbleButton button) const override;
base::string16 GetButtonLabel(ui::DialogButton button) const override;
void Accept() override;
void Cancel() override;
base::string16 GetLinkText() const override;
......
......@@ -36,10 +36,12 @@ base::string16 SpellingBubbleModel::GetMessageText() const {
return l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_TEXT);
}
base::string16 SpellingBubbleModel::GetButtonLabel(BubbleButton button) const {
return l10n_util::GetStringUTF16(button == BUTTON_OK ?
IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_ENABLE :
IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_DISABLE);
base::string16 SpellingBubbleModel::GetButtonLabel(
ui::DialogButton button) const {
return l10n_util::GetStringUTF16(
button == ui::DIALOG_BUTTON_OK
? IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_ENABLE
: IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_DISABLE);
}
void SpellingBubbleModel::Accept() {
......
......@@ -25,7 +25,7 @@ class SpellingBubbleModel : public ConfirmBubbleModel {
// ConfirmBubbleModel implementation.
base::string16 GetTitle() const override;
base::string16 GetMessageText() const override;
base::string16 GetButtonLabel(BubbleButton button) const override;
base::string16 GetButtonLabel(ui::DialogButton button) const override;
void Accept() override;
void Cancel() override;
base::string16 GetLinkText() const override;
......
......@@ -8,16 +8,13 @@
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
ConfirmBubbleModel::ConfirmBubbleModel() {}
ConfirmBubbleModel::ConfirmBubbleModel() = default;
ConfirmBubbleModel::~ConfirmBubbleModel() = default;
ConfirmBubbleModel::~ConfirmBubbleModel() {}
int ConfirmBubbleModel::GetButtons() const {
return BUTTON_OK | BUTTON_CANCEL;
}
base::string16 ConfirmBubbleModel::GetButtonLabel(BubbleButton button) const {
return l10n_util::GetStringUTF16((button == BUTTON_OK) ? IDS_OK : IDS_CANCEL);
base::string16 ConfirmBubbleModel::GetButtonLabel(
ui::DialogButton button) const {
return l10n_util::GetStringUTF16(
(button == ui::DIALOG_BUTTON_OK) ? IDS_OK : IDS_CANCEL);
}
void ConfirmBubbleModel::Accept() {}
......
......@@ -7,6 +7,7 @@
#include "base/macros.h"
#include "base/strings/string16.h"
#include "ui/base/ui_base_types.h"
#include "url/gurl.h"
// An interface implemented by objects wishing to control an ConfirmBubbleView.
......@@ -15,12 +16,6 @@
// 2. Call chrome::ShowConfirmBubble() with the class implemented in 1.
class ConfirmBubbleModel {
public:
enum BubbleButton {
BUTTON_NONE = 0,
BUTTON_OK = 1 << 0,
BUTTON_CANCEL = 1 << 1,
};
ConfirmBubbleModel();
virtual ~ConfirmBubbleModel();
......@@ -29,15 +24,9 @@ class ConfirmBubbleModel {
virtual base::string16 GetTitle() const = 0;
virtual base::string16 GetMessageText() const = 0;
// Return the buttons to be shown for this bubble menu. This function returns
// a combination of BubbleButton values, e.g. when we show both an OK button
// and a cancel button, it should return (BUTTON_OK | BUTTON_CANCEL). (This is
// the default implementation.)
virtual int GetButtons() const;
// Return the label for the specified button. The default implementation
// returns "OK" for the OK button and "Cancel" for the Cancel button.
virtual base::string16 GetButtonLabel(BubbleButton button) const;
virtual base::string16 GetButtonLabel(ui::DialogButton button) const;
// Called when the OK button is pressed.
virtual void Accept();
......
......@@ -30,14 +30,10 @@ base::string16 TestConfirmBubbleModel::GetMessageText() const {
return base::ASCIIToUTF16("Test Message");
}
int TestConfirmBubbleModel::GetButtons() const {
return BUTTON_OK | BUTTON_CANCEL;
}
base::string16 TestConfirmBubbleModel::GetButtonLabel(
BubbleButton button) const {
return button == BUTTON_OK ? base::ASCIIToUTF16("OK")
: base::ASCIIToUTF16("Cancel");
ui::DialogButton button) const {
return button == ui::DIALOG_BUTTON_OK ? base::ASCIIToUTF16("OK")
: base::ASCIIToUTF16("Cancel");
}
void TestConfirmBubbleModel::Accept() {
......
......@@ -22,8 +22,7 @@ class TestConfirmBubbleModel : public ConfirmBubbleModel {
// ConfirmBubbleModel overrides:
base::string16 GetTitle() const override;
base::string16 GetMessageText() const override;
int GetButtons() const override;
base::string16 GetButtonLabel(BubbleButton button) const override;
base::string16 GetButtonLabel(ui::DialogButton button) const override;
void Accept() override;
void Cancel() override;
base::string16 GetLinkText() const override;
......
......@@ -41,11 +41,10 @@ ConfirmBubbleViews::ConfirmBubbleViews(
std::unique_ptr<ConfirmBubbleModel> model)
: model_(std::move(model)), help_button_(nullptr) {
DialogDelegate::set_button_label(
ui::DIALOG_BUTTON_OK,
model_->GetButtonLabel(ConfirmBubbleModel::BUTTON_OK));
ui::DIALOG_BUTTON_OK, model_->GetButtonLabel(ui::DIALOG_BUTTON_OK));
DialogDelegate::set_button_label(
ui::DIALOG_BUTTON_CANCEL,
model_->GetButtonLabel(ConfirmBubbleModel::BUTTON_CANCEL));
model_->GetButtonLabel(ui::DIALOG_BUTTON_CANCEL));
DialogDelegate::set_accept_callback(base::BindOnce(
&ConfirmBubbleModel::Accept, base::Unretained(model_.get())));
DialogDelegate::set_cancel_callback(base::BindOnce(
......@@ -81,18 +80,6 @@ ConfirmBubbleViews::ConfirmBubbleViews(
ConfirmBubbleViews::~ConfirmBubbleViews() {
}
bool ConfirmBubbleViews::IsDialogButtonEnabled(ui::DialogButton button) const {
switch (button) {
case ui::DIALOG_BUTTON_OK:
return !!(model_->GetButtons() & ConfirmBubbleModel::BUTTON_OK);
case ui::DIALOG_BUTTON_CANCEL:
return !!(model_->GetButtons() & ConfirmBubbleModel::BUTTON_CANCEL);
default:
NOTREACHED();
return false;
}
}
ui::ModalType ConfirmBubbleViews::GetModalType() const {
return ui::MODAL_TYPE_WINDOW;
}
......@@ -113,10 +100,9 @@ void ConfirmBubbleViews::ButtonPressed(views::Button* sender,
}
}
void ConfirmBubbleViews::AddedToWidget() {
void ConfirmBubbleViews::OnDialogInitialized() {
GetWidget()->GetRootView()->GetViewAccessibility().OverrideDescribedBy(
label_);
DialogDelegateView::AddedToWidget();
}
namespace chrome {
......
......@@ -35,9 +35,6 @@ class ConfirmBubbleViews : public views::DialogDelegateView,
protected:
~ConfirmBubbleViews() override;
// views::DialogDelegate implementation.
bool IsDialogButtonEnabled(ui::DialogButton button) const override;
// views::WidgetDelegate implementation.
ui::ModalType GetModalType() const override;
base::string16 GetWindowTitle() const override;
......@@ -46,8 +43,8 @@ class ConfirmBubbleViews : public views::DialogDelegateView,
// views::ButtonListener implementation.
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// views::View implementation.
void AddedToWidget() override;
// views::DialogDelegateView implementation.
void OnDialogInitialized() override;
private:
// The model to customize this bubble view.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment