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; ...@@ -21,8 +21,8 @@ constexpr SkColor kBackToTabIconColor = SK_ColorWHITE;
namespace views { namespace views {
BackToTabImageButton::BackToTabImageButton(ButtonListener* listener) BackToTabImageButton::BackToTabImageButton(PressedCallback callback)
: ImageButton(listener) { : ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
SetImage(views::Button::STATE_NORMAL, SetImage(views::Button::STATE_NORMAL,
......
...@@ -13,7 +13,7 @@ namespace views { ...@@ -13,7 +13,7 @@ namespace views {
// An image button representing a back-to-tab button. // An image button representing a back-to-tab button.
class BackToTabImageButton : public views::ImageButton { class BackToTabImageButton : public views::ImageButton {
public: public:
explicit BackToTabImageButton(ButtonListener*); explicit BackToTabImageButton(PressedCallback callback);
~BackToTabImageButton() override = default; ~BackToTabImageButton() override = default;
private: private:
......
...@@ -22,8 +22,8 @@ constexpr SkColor kCloseIconColor = SK_ColorWHITE; ...@@ -22,8 +22,8 @@ constexpr SkColor kCloseIconColor = SK_ColorWHITE;
namespace views { namespace views {
CloseImageButton::CloseImageButton(ButtonListener* listener) CloseImageButton::CloseImageButton(PressedCallback callback)
: ImageButton(listener) { : ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
SetSize(gfx::Size(kCloseButtonSize, kCloseButtonSize)); SetSize(gfx::Size(kCloseButtonSize, kCloseButtonSize));
......
...@@ -13,7 +13,7 @@ namespace views { ...@@ -13,7 +13,7 @@ namespace views {
// An image button representing a close button. // An image button representing a close button.
class CloseImageButton : public views::ImageButton { class CloseImageButton : public views::ImageButton {
public: public:
explicit CloseImageButton(ButtonListener*); explicit CloseImageButton(PressedCallback callback);
~CloseImageButton() override = default; ~CloseImageButton() override = default;
// Sets the position of itself with an offset from the given window size. // Sets the position of itself with an offset from the given window size.
......
...@@ -349,22 +349,57 @@ void OverlayWindowViews::SetUpViews() { ...@@ -349,22 +349,57 @@ void OverlayWindowViews::SetUpViews() {
auto window_background_view = std::make_unique<views::View>(); auto window_background_view = std::make_unique<views::View>();
auto video_view = std::make_unique<views::View>(); auto video_view = std::make_unique<views::View>();
auto controls_scrim_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 = 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>( 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( l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_PREVIOUS_TRACK_CONTROL_ACCESSIBLE_TEXT)); IDS_PICTURE_IN_PICTURE_PREVIOUS_TRACK_CONTROL_ACCESSIBLE_TEXT));
auto play_pause_controls_view = 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>( 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( l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_NEXT_TRACK_CONTROL_ACCESSIBLE_TEXT)); 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) #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 #endif
window_background_view->SetPaintToLayer(ui::LAYER_SOLID_COLOR); window_background_view->SetPaintToLayer(ui::LAYER_SOLID_COLOR);
...@@ -940,39 +975,6 @@ void OverlayWindowViews::OnGestureEvent(ui::GestureEvent* event) { ...@@ -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) { void OverlayWindowViews::RecordTapGesture(OverlayWindowControl window_control) {
UMA_HISTOGRAM_ENUMERATION("PictureInPictureWindow.TapGesture", UMA_HISTOGRAM_ENUMERATION("PictureInPictureWindow.TapGesture",
window_control); window_control);
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include "base/timer/timer.h" #include "base/timer/timer.h"
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
...@@ -28,7 +27,6 @@ class TrackImageButton; ...@@ -28,7 +27,6 @@ class TrackImageButton;
// The Chrome desktop implementation of OverlayWindow. This will only be // The Chrome desktop implementation of OverlayWindow. This will only be
// implemented in views, which will support all desktop platforms. // implemented in views, which will support all desktop platforms.
class OverlayWindowViews : public content::OverlayWindow, class OverlayWindowViews : public content::OverlayWindow,
public views::ButtonListener,
public views::Widget { public views::Widget {
public: public:
static std::unique_ptr<content::OverlayWindow> Create( static std::unique_ptr<content::OverlayWindow> Create(
...@@ -68,9 +66,6 @@ class OverlayWindowViews : public content::OverlayWindow, ...@@ -68,9 +66,6 @@ class OverlayWindowViews : public content::OverlayWindow,
void OnMouseEvent(ui::MouseEvent* event) override; void OnMouseEvent(ui::MouseEvent* event) override;
void OnGestureEvent(ui::GestureEvent* 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. // Gets the bounds of the controls.
gfx::Rect GetBackToTabControlsBounds(); gfx::Rect GetBackToTabControlsBounds();
gfx::Rect GetSkipAdControlsBounds(); gfx::Rect GetSkipAdControlsBounds();
......
...@@ -20,8 +20,8 @@ SkColor kPlaybackIconColor = SK_ColorWHITE; ...@@ -20,8 +20,8 @@ SkColor kPlaybackIconColor = SK_ColorWHITE;
namespace views { namespace views {
PlaybackImageButton::PlaybackImageButton(ButtonListener* listener) PlaybackImageButton::PlaybackImageButton(PressedCallback callback)
: ImageButton(listener) { : ImageButton(std::move(callback)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
......
...@@ -13,7 +13,7 @@ namespace views { ...@@ -13,7 +13,7 @@ namespace views {
// A resizable playback button with 3 states: play/pause/replay. // A resizable playback button with 3 states: play/pause/replay.
class PlaybackImageButton : public views::ImageButton { class PlaybackImageButton : public views::ImageButton {
public: public:
explicit PlaybackImageButton(ButtonListener*); explicit PlaybackImageButton(PressedCallback callback);
~PlaybackImageButton() override = default; ~PlaybackImageButton() override = default;
// Show appropriate images based on playback state. // Show appropriate images based on playback state.
......
...@@ -26,8 +26,8 @@ constexpr SkColor kResizeHandleIconColor = SK_ColorWHITE; ...@@ -26,8 +26,8 @@ constexpr SkColor kResizeHandleIconColor = SK_ColorWHITE;
namespace views { namespace views {
ResizeHandleButton::ResizeHandleButton(ButtonListener* listener) ResizeHandleButton::ResizeHandleButton(PressedCallback callback)
: ImageButton(listener) { : ImageButton(std::move(callback)) {
SetSize(gfx::Size(kResizeHandleButtonSize, kResizeHandleButtonSize)); SetSize(gfx::Size(kResizeHandleButtonSize, kResizeHandleButtonSize));
SetImageForQuadrant(OverlayWindowViews::WindowQuadrant::kBottomRight); SetImageForQuadrant(OverlayWindowViews::WindowQuadrant::kBottomRight);
......
...@@ -13,7 +13,7 @@ namespace views { ...@@ -13,7 +13,7 @@ namespace views {
// An image button representing a white resize handle affordance. // An image button representing a white resize handle affordance.
class ResizeHandleButton : public views::ImageButton { class ResizeHandleButton : public views::ImageButton {
public: public:
explicit ResizeHandleButton(ButtonListener*); explicit ResizeHandleButton(PressedCallback callback);
~ResizeHandleButton() override; ~ResizeHandleButton() override;
void SetPosition(const gfx::Size& size, void SetPosition(const gfx::Size& size,
......
...@@ -23,8 +23,8 @@ constexpr SkColor kSkipAdButtonBackgroundColor = gfx::kGoogleGrey700; ...@@ -23,8 +23,8 @@ constexpr SkColor kSkipAdButtonBackgroundColor = gfx::kGoogleGrey700;
namespace views { namespace views {
SkipAdLabelButton::SkipAdLabelButton(ButtonListener* listener) SkipAdLabelButton::SkipAdLabelButton(PressedCallback callback)
: LabelButton(listener, : LabelButton(std::move(callback),
l10n_util::GetStringUTF16( l10n_util::GetStringUTF16(
IDS_PICTURE_IN_PICTURE_SKIP_AD_CONTROL_TEXT)) { IDS_PICTURE_IN_PICTURE_SKIP_AD_CONTROL_TEXT)) {
SetBackground( SetBackground(
......
...@@ -13,7 +13,7 @@ namespace views { ...@@ -13,7 +13,7 @@ namespace views {
// A label button representing a skip-ad button. // A label button representing a skip-ad button.
class SkipAdLabelButton : public views::LabelButton { class SkipAdLabelButton : public views::LabelButton {
public: public:
explicit SkipAdLabelButton(ButtonListener*); explicit SkipAdLabelButton(PressedCallback callback);
~SkipAdLabelButton() override = default; ~SkipAdLabelButton() override = default;
// Sets the position of itself with an offset from the given window size. // Sets the position of itself with an offset from the given window size.
......
...@@ -22,10 +22,10 @@ constexpr SkColor kTrackIconColor = SK_ColorWHITE; ...@@ -22,10 +22,10 @@ constexpr SkColor kTrackIconColor = SK_ColorWHITE;
namespace views { namespace views {
TrackImageButton::TrackImageButton(ButtonListener* listener, TrackImageButton::TrackImageButton(PressedCallback callback,
const gfx::VectorIcon& icon, const gfx::VectorIcon& icon,
base::string16 label) base::string16 label)
: ImageButton(listener), : ImageButton(std::move(callback)),
image_(gfx::CreateVectorIcon(icon, kTrackImageSize, kTrackIconColor)) { image_(gfx::CreateVectorIcon(icon, kTrackImageSize, kTrackIconColor)) {
SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
......
...@@ -17,7 +17,7 @@ namespace views { ...@@ -17,7 +17,7 @@ namespace views {
// A resizable previous/next track image button. // A resizable previous/next track image button.
class TrackImageButton : public views::ImageButton { class TrackImageButton : public views::ImageButton {
public: public:
explicit TrackImageButton(ButtonListener*, explicit TrackImageButton(PressedCallback callback,
const gfx::VectorIcon& icon, const gfx::VectorIcon& icon,
base::string16 label); base::string16 label);
~TrackImageButton() override = default; ~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