Commit 88c6cae3 authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Change ButtonPressed overrides to callbacks: ui/views/controls/button/

Bug: 772945
Change-Id: I5b0720ca91cee30529e893ffa5924a9ada68f451
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490324
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarPeter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819666}
parent 95977058
...@@ -70,9 +70,11 @@ class TestContextMenuController : public ContextMenuController { ...@@ -70,9 +70,11 @@ class TestContextMenuController : public ContextMenuController {
DISALLOW_COPY_AND_ASSIGN(TestContextMenuController); DISALLOW_COPY_AND_ASSIGN(TestContextMenuController);
}; };
class TestButton : public Button, public ButtonListener { class TestButton : public Button {
public: public:
explicit TestButton(bool has_ink_drop_action_on_click) : Button(this) { explicit TestButton(bool has_ink_drop_action_on_click)
: Button(base::BindRepeating([](bool* pressed) { *pressed = true; },
&pressed_)) {
SetHasInkDropActionOnClick(has_ink_drop_action_on_click); SetHasInkDropActionOnClick(has_ink_drop_action_on_click);
} }
...@@ -84,13 +86,6 @@ class TestButton : public Button, public ButtonListener { ...@@ -84,13 +86,6 @@ class TestButton : public Button, public ButtonListener {
return custom_key_click_action_; return custom_key_click_action_;
} }
void ButtonPressed(Button* sender, const ui::Event& event) override {
pressed_ = true;
if (!on_button_pressed_handler_.is_null())
on_button_pressed_handler_.Run();
}
void OnClickCanceled(const ui::Event& event) override { canceled_ = true; } void OnClickCanceled(const ui::Event& event) override { canceled_ = true; }
// Button: // Button:
...@@ -103,19 +98,17 @@ class TestButton : public Button, public ButtonListener { ...@@ -103,19 +98,17 @@ class TestButton : public Button, public ButtonListener {
Button::RemoveInkDropLayer(ink_drop_layer); Button::RemoveInkDropLayer(ink_drop_layer);
} }
bool pressed() { return pressed_; } bool pressed() const { return pressed_; }
bool canceled() { return canceled_; } bool canceled() const { return canceled_; }
int ink_drop_layer_add_count() { return ink_drop_layer_add_count_; } int ink_drop_layer_add_count() const { return ink_drop_layer_add_count_; }
int ink_drop_layer_remove_count() { return ink_drop_layer_remove_count_; } int ink_drop_layer_remove_count() const {
return ink_drop_layer_remove_count_;
}
void set_custom_key_click_action(KeyClickAction custom_key_click_action) { void set_custom_key_click_action(KeyClickAction custom_key_click_action) {
custom_key_click_action_ = custom_key_click_action; custom_key_click_action_ = custom_key_click_action;
} }
void set_on_button_pressed_handler(const base::RepeatingClosure& callback) {
on_button_pressed_handler_ = callback;
}
void Reset() { void Reset() {
pressed_ = false; pressed_ = false;
canceled_ = false; canceled_ = false;
...@@ -133,9 +126,6 @@ class TestButton : public Button, public ButtonListener { ...@@ -133,9 +126,6 @@ class TestButton : public Button, public ButtonListener {
KeyClickAction custom_key_click_action_ = KeyClickAction::kNone; KeyClickAction custom_key_click_action_ = KeyClickAction::kNone;
// If available, will be triggered when the button is pressed.
base::RepeatingClosure on_button_pressed_handler_;
DISALLOW_COPY_AND_ASSIGN(TestButton); DISALLOW_COPY_AND_ASSIGN(TestButton);
}; };
...@@ -171,21 +161,6 @@ class TestButtonObserver { ...@@ -171,21 +161,6 @@ class TestButtonObserver {
DISALLOW_COPY_AND_ASSIGN(TestButtonObserver); DISALLOW_COPY_AND_ASSIGN(TestButtonObserver);
}; };
class TestButtonListener : public ButtonListener {
public:
void ButtonPressed(Button* sender, const ui::Event& event) override {
pressed_ = true;
sender_ = sender;
}
bool pressed() const { return pressed_; }
Button* sender() const { return sender_; }
private:
bool pressed_ = false;
Button* sender_ = nullptr;
};
TestInkDrop* AddTestInkDrop(TestButton* button) { TestInkDrop* AddTestInkDrop(TestButton* button) {
auto owned_ink_drop = std::make_unique<TestInkDrop>(); auto owned_ink_drop = std::make_unique<TestInkDrop>();
TestInkDrop* ink_drop = owned_ink_drop.get(); TestInkDrop* ink_drop = owned_ink_drop.get();
...@@ -446,7 +421,7 @@ TEST_F(ButtonTest, GestureEventsSetState) { ...@@ -446,7 +421,7 @@ TEST_F(ButtonTest, GestureEventsSetState) {
// events will not revert the disabled state back to normal. // events will not revert the disabled state back to normal.
// https://crbug.com/1084241. // https://crbug.com/1084241.
TEST_F(ButtonTest, GestureEventsRespectDisabledState) { TEST_F(ButtonTest, GestureEventsRespectDisabledState) {
button()->set_on_button_pressed_handler(base::BindRepeating( button()->SetCallback(base::BindRepeating(
[](TestButton* button) { button->SetEnabled(false); }, button())); [](TestButton* button) { button->SetEnabled(false); }, button()));
EXPECT_EQ(Button::STATE_NORMAL, button()->GetState()); EXPECT_EQ(Button::STATE_NORMAL, button()->GetState());
...@@ -754,8 +729,9 @@ TEST_F(ButtonTest, InkDropStaysHiddenWhileDragging) { ...@@ -754,8 +729,9 @@ TEST_F(ButtonTest, InkDropStaysHiddenWhileDragging) {
// Ensure PressedCallback is dynamically settable. // Ensure PressedCallback is dynamically settable.
TEST_F(ButtonTest, SetCallback) { TEST_F(ButtonTest, SetCallback) {
TestButtonListener listener; bool pressed = false;
button()->SetCallback(Button::PressedCallback(&listener, button())); button()->SetCallback(
base::BindRepeating([](bool* pressed) { *pressed = true; }, &pressed));
const gfx::Point center(10, 10); const gfx::Point center(10, 10);
button()->OnMousePressed(ui::MouseEvent( button()->OnMousePressed(ui::MouseEvent(
...@@ -765,8 +741,7 @@ TEST_F(ButtonTest, SetCallback) { ...@@ -765,8 +741,7 @@ TEST_F(ButtonTest, SetCallback) {
button()->OnMouseReleased(ui::MouseEvent( button()->OnMouseReleased(ui::MouseEvent(
ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(),
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
EXPECT_TRUE(listener.pressed()); EXPECT_TRUE(pressed);
EXPECT_EQ(button(), listener.sender());
} }
// VisibilityTestButton tests to see if an ink drop or a layer has been added to // VisibilityTestButton tests to see if an ink drop or a layer has been added to
......
...@@ -90,14 +90,6 @@ MenuButtonController::MenuButtonController( ...@@ -90,14 +90,6 @@ MenuButtonController::MenuButtonController(
set_notify_action(ButtonController::NotifyAction::kOnPress); set_notify_action(ButtonController::NotifyAction::kOnPress);
} }
MenuButtonController::MenuButtonController(
Button* button,
ButtonListener* listener,
std::unique_ptr<ButtonControllerDelegate> delegate)
: MenuButtonController(button,
Button::PressedCallback(listener, button),
std::move(delegate)) {}
MenuButtonController::~MenuButtonController() = default; MenuButtonController::~MenuButtonController() = default;
bool MenuButtonController::OnMousePressed(const ui::MouseEvent& event) { bool MenuButtonController::OnMousePressed(const ui::MouseEvent& event) {
...@@ -239,7 +231,7 @@ bool MenuButtonController::Activate(const ui::Event* event) { ...@@ -239,7 +231,7 @@ bool MenuButtonController::Activate(const ui::Event* event) {
bool increment_pressed_lock_called = false; bool increment_pressed_lock_called = false;
increment_pressed_lock_called_ = &increment_pressed_lock_called; increment_pressed_lock_called_ = &increment_pressed_lock_called;
// Allow for ButtonPressed() to delete this. // Allow for the button callback to delete this.
auto ref = weak_factory_.GetWeakPtr(); auto ref = weak_factory_.GetWeakPtr();
// TODO(pbos): Make sure we always propagate an event. This requires changes // TODO(pbos): Make sure we always propagate an event. This requires changes
......
...@@ -42,9 +42,6 @@ class VIEWS_EXPORT MenuButtonController : public ButtonController { ...@@ -42,9 +42,6 @@ class VIEWS_EXPORT MenuButtonController : public ButtonController {
MenuButtonController(Button* button, MenuButtonController(Button* button,
Button::PressedCallback callback, Button::PressedCallback callback,
std::unique_ptr<ButtonControllerDelegate> delegate); std::unique_ptr<ButtonControllerDelegate> delegate);
MenuButtonController(Button* button,
ButtonListener* listener,
std::unique_ptr<ButtonControllerDelegate> delegate);
~MenuButtonController() override; ~MenuButtonController() override;
// view::ButtonController // view::ButtonController
......
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