Commit 4e7baada authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Change ButtonPressed overrides to callbacks: c/b/ui/views/overlay/

Bug: 772945
Change-Id: I81d45dbfefbf4b4f0e66ece5a815c729cba01c83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2461208
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Reviewed-by: default avatarFrançois Beaufort <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/master@{#815538}
parent ab2a0cd9
......@@ -21,8 +21,8 @@ constexpr SkColor kBackToTabIconColor = SK_ColorWHITE;
namespace views {
BackToTabImageButton::BackToTabImageButton(ButtonListener* listener)
: ImageButton(listener) {
BackToTabImageButton::BackToTabImageButton(PressedCallback callback)
: ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
SetImage(views::Button::STATE_NORMAL,
......
......@@ -13,7 +13,7 @@ namespace views {
// An image button representing a back-to-tab button.
class BackToTabImageButton : public views::ImageButton {
public:
explicit BackToTabImageButton(ButtonListener*);
explicit BackToTabImageButton(PressedCallback callback);
~BackToTabImageButton() override = default;
private:
......
......@@ -22,8 +22,8 @@ constexpr SkColor kCloseIconColor = SK_ColorWHITE;
namespace views {
CloseImageButton::CloseImageButton(ButtonListener* listener)
: ImageButton(listener) {
CloseImageButton::CloseImageButton(PressedCallback callback)
: ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
SetSize(gfx::Size(kCloseButtonSize, kCloseButtonSize));
......
......@@ -13,7 +13,7 @@ namespace views {
// An image button representing a close button.
class CloseImageButton : public views::ImageButton {
public:
explicit CloseImageButton(ButtonListener*);
explicit CloseImageButton(PressedCallback callback);
~CloseImageButton() override = default;
// Sets the position of itself with an offset from the given window size.
......
......@@ -349,22 +349,57 @@ void OverlayWindowViews::SetUpViews() {
auto window_background_view = std::make_unique<views::View>();
auto video_view = std::make_unique<views::View>();
auto controls_scrim_view = std::make_unique<views::View>();
auto close_controls_view = std::make_unique<views::CloseImageButton>(this);
auto close_controls_view =
std::make_unique<views::CloseImageButton>(base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->controller_->Close(/*should_pause_video=*/true);
overlay->RecordButtonPressed(OverlayWindowControl::kClose);
},
base::Unretained(this)));
auto back_to_tab_controls_view =
std::make_unique<views::BackToTabImageButton>(this);
std::make_unique<views::BackToTabImageButton>(base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->controller_->CloseAndFocusInitiator();
overlay->RecordButtonPressed(OverlayWindowControl::kBackToTab);
},
base::Unretained(this)));
auto previous_track_controls_view = std::make_unique<views::TrackImageButton>(
this, vector_icons::kMediaPreviousTrackIcon,
base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->controller_->PreviousTrack();
overlay->RecordButtonPressed(OverlayWindowControl::kPreviousTrack);
},
base::Unretained(this)),
vector_icons::kMediaPreviousTrackIcon,
l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_PREVIOUS_TRACK_CONTROL_ACCESSIBLE_TEXT));
auto play_pause_controls_view =
std::make_unique<views::PlaybackImageButton>(this);
std::make_unique<views::PlaybackImageButton>(base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->TogglePlayPause();
overlay->RecordButtonPressed(OverlayWindowControl::kPlayPause);
},
base::Unretained(this)));
auto next_track_controls_view = std::make_unique<views::TrackImageButton>(
this, vector_icons::kMediaNextTrackIcon,
base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->controller_->NextTrack();
overlay->RecordButtonPressed(OverlayWindowControl::kNextTrack);
},
base::Unretained(this)),
vector_icons::kMediaNextTrackIcon,
l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_NEXT_TRACK_CONTROL_ACCESSIBLE_TEXT));
auto skip_ad_controls_view = std::make_unique<views::SkipAdLabelButton>(this);
auto skip_ad_controls_view =
std::make_unique<views::SkipAdLabelButton>(base::BindRepeating(
[](OverlayWindowViews* overlay) {
overlay->controller_->SkipAd();
overlay->RecordButtonPressed(OverlayWindowControl::kSkipAd);
},
base::Unretained(this)));
#if defined(OS_CHROMEOS)
auto resize_handle_view = std::make_unique<views::ResizeHandleButton>(this);
auto resize_handle_view = std::make_unique<views::ResizeHandleButton>(
views::Button::PressedCallback());
#endif
window_background_view->SetPaintToLayer(ui::LAYER_SOLID_COLOR);
......@@ -940,39 +975,6 @@ void OverlayWindowViews::OnGestureEvent(ui::GestureEvent* event) {
}
}
void OverlayWindowViews::ButtonPressed(views::Button* sender,
const ui::Event& event) {
if (sender == back_to_tab_controls_view_) {
controller_->CloseAndFocusInitiator();
RecordButtonPressed(OverlayWindowControl::kBackToTab);
}
if (sender == skip_ad_controls_view_) {
controller_->SkipAd();
RecordButtonPressed(OverlayWindowControl::kSkipAd);
}
if (sender == close_controls_view_) {
controller_->Close(true /* should_pause_video */);
RecordButtonPressed(OverlayWindowControl::kClose);
}
if (sender == play_pause_controls_view_) {
TogglePlayPause();
RecordButtonPressed(OverlayWindowControl::kPlayPause);
}
if (sender == next_track_controls_view_) {
controller_->NextTrack();
RecordButtonPressed(OverlayWindowControl::kNextTrack);
}
if (sender == previous_track_controls_view_) {
controller_->PreviousTrack();
RecordButtonPressed(OverlayWindowControl::kPreviousTrack);
}
}
void OverlayWindowViews::RecordTapGesture(OverlayWindowControl window_control) {
UMA_HISTOGRAM_ENUMERATION("PictureInPictureWindow.TapGesture",
window_control);
......
......@@ -9,7 +9,6 @@
#include "base/timer/timer.h"
#include "ui/gfx/geometry/size.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/widget/widget.h"
#if defined(OS_CHROMEOS)
......@@ -28,7 +27,6 @@ class TrackImageButton;
// The Chrome desktop implementation of OverlayWindow. This will only be
// implemented in views, which will support all desktop platforms.
class OverlayWindowViews : public content::OverlayWindow,
public views::ButtonListener,
public views::Widget {
public:
static std::unique_ptr<content::OverlayWindow> Create(
......@@ -68,9 +66,6 @@ class OverlayWindowViews : public content::OverlayWindow,
void OnMouseEvent(ui::MouseEvent* event) override;
void OnGestureEvent(ui::GestureEvent* event) override;
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// Gets the bounds of the controls.
gfx::Rect GetBackToTabControlsBounds();
gfx::Rect GetSkipAdControlsBounds();
......
......@@ -20,8 +20,8 @@ SkColor kPlaybackIconColor = SK_ColorWHITE;
namespace views {
PlaybackImageButton::PlaybackImageButton(ButtonListener* listener)
: ImageButton(listener) {
PlaybackImageButton::PlaybackImageButton(PressedCallback callback)
: ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
......
......@@ -13,7 +13,7 @@ namespace views {
// A resizable playback button with 3 states: play/pause/replay.
class PlaybackImageButton : public views::ImageButton {
public:
explicit PlaybackImageButton(ButtonListener*);
explicit PlaybackImageButton(PressedCallback callback);
~PlaybackImageButton() override = default;
// Show appropriate images based on playback state.
......
......@@ -26,8 +26,8 @@ constexpr SkColor kResizeHandleIconColor = SK_ColorWHITE;
namespace views {
ResizeHandleButton::ResizeHandleButton(ButtonListener* listener)
: ImageButton(listener) {
ResizeHandleButton::ResizeHandleButton(PressedCallback callback)
: ImageButton(std::move(callback)) {
SetSize(gfx::Size(kResizeHandleButtonSize, kResizeHandleButtonSize));
SetImageForQuadrant(OverlayWindowViews::WindowQuadrant::kBottomRight);
......
......@@ -13,7 +13,7 @@ namespace views {
// An image button representing a white resize handle affordance.
class ResizeHandleButton : public views::ImageButton {
public:
explicit ResizeHandleButton(ButtonListener*);
explicit ResizeHandleButton(PressedCallback callback);
~ResizeHandleButton() override;
void SetPosition(const gfx::Size& size,
......
......@@ -23,8 +23,8 @@ constexpr SkColor kSkipAdButtonBackgroundColor = gfx::kGoogleGrey700;
namespace views {
SkipAdLabelButton::SkipAdLabelButton(ButtonListener* listener)
: LabelButton(listener,
SkipAdLabelButton::SkipAdLabelButton(PressedCallback callback)
: LabelButton(std::move(callback),
l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_SKIP_AD_CONTROL_TEXT)) {
SetBackground(
......
......@@ -13,7 +13,7 @@ namespace views {
// A label button representing a skip-ad button.
class SkipAdLabelButton : public views::LabelButton {
public:
explicit SkipAdLabelButton(ButtonListener*);
explicit SkipAdLabelButton(PressedCallback callback);
~SkipAdLabelButton() override = default;
// Sets the position of itself with an offset from the given window size.
......
......@@ -22,10 +22,10 @@ constexpr SkColor kTrackIconColor = SK_ColorWHITE;
namespace views {
TrackImageButton::TrackImageButton(ButtonListener* listener,
TrackImageButton::TrackImageButton(PressedCallback callback,
const gfx::VectorIcon& icon,
base::string16 label)
: ImageButton(listener),
: ImageButton(std::move(callback)),
image_(gfx::CreateVectorIcon(icon, kTrackImageSize, kTrackIconColor)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
......
......@@ -17,7 +17,7 @@ namespace views {
// A resizable previous/next track image button.
class TrackImageButton : public views::ImageButton {
public:
explicit TrackImageButton(ButtonListener*,
explicit TrackImageButton(PressedCallback callback,
const gfx::VectorIcon& icon,
base::string16 label);
~TrackImageButton() override = default;
......
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