Commit 189415e7 authored by Allen Bauer's avatar Allen Bauer Committed by Commit Bot

Removed ButtonPressed overrides in favor of callback.

Bug: 772945
Change-Id: Id38927134e6b1ddef00ac6db1bac189ab625a483
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490553
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
Commit-Queue: Xiyuan Xia <xiyuan@chromium.org>
Auto-Submit: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819634}
parent 280ed260
......@@ -12,10 +12,12 @@
#include "ash/capture_mode/capture_mode_source_view.h"
#include "ash/capture_mode/capture_mode_type_view.h"
#include "ash/style/ash_color_provider.h"
#include "base/bind.h"
#include "ui/aura/window.h"
#include "ui/views/background.h"
#include "ui/views/controls/separator.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/metadata/metadata_impl_macros.h"
#include "ui/views/style/platform_style.h"
namespace ash {
......@@ -43,8 +45,9 @@ CaptureModeBarView::CaptureModeBarView()
capture_source_view_(
AddChildView(std::make_unique<CaptureModeSourceView>())),
separator_2_(AddChildView(std::make_unique<views::Separator>())),
close_button_(
AddChildView(std::make_unique<CaptureModeCloseButton>(this))) {
close_button_(AddChildView(std::make_unique<CaptureModeCloseButton>(
base::BindRepeating(&CaptureModeBarView::OnButtonPressed,
base::Unretained(this))))) {
SetPaintToLayer();
auto* color_provider = AshColorProvider::Get();
SkColor background_color = color_provider->GetBaseLayerColor(
......@@ -90,14 +93,11 @@ void CaptureModeBarView::OnCaptureTypeChanged(CaptureModeType new_type) {
capture_type_view_->OnCaptureTypeChanged(new_type);
}
const char* CaptureModeBarView::GetClassName() const {
return "CaptureModeBarView";
}
void CaptureModeBarView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
DCHECK_EQ(sender, close_button_);
void CaptureModeBarView::OnButtonPressed() {
CaptureModeController::Get()->Stop();
}
BEGIN_METADATA(CaptureModeBarView, views::View)
END_METADATA
} // namespace ash
......@@ -7,7 +7,8 @@
#include "ash/ash_export.h"
#include "ash/capture_mode/capture_mode_types.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/metadata/metadata_header_macros.h"
#include "ui/views/view.h"
namespace views {
class Separator;
......@@ -38,9 +39,10 @@ class CaptureModeTypeView;
// |
// CaptureModeBarView
//
class ASH_EXPORT CaptureModeBarView : public views::View,
public views::ButtonListener {
class ASH_EXPORT CaptureModeBarView : public views::View {
public:
METADATA_HEADER(CaptureModeBarView);
CaptureModeBarView();
CaptureModeBarView(const CaptureModeBarView&) = delete;
CaptureModeBarView& operator=(const CaptureModeBarView&) = delete;
......@@ -60,13 +62,9 @@ class ASH_EXPORT CaptureModeBarView : public views::View,
void OnCaptureSourceChanged(CaptureModeSource new_source);
void OnCaptureTypeChanged(CaptureModeType new_type);
// views::View:
const char* GetClassName() const override;
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
private:
void OnButtonPressed();
// Owned by the views hierarchy.
CaptureModeTypeView* capture_type_view_;
views::Separator* separator_1_;
......
......@@ -9,11 +9,13 @@
#include "ui/gfx/paint_vector_icon.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/highlight_path_generator.h"
#include "ui/views/metadata/metadata_impl_macros.h"
namespace ash {
CaptureModeCloseButton::CaptureModeCloseButton(views::ButtonListener* listener)
: ViewWithInkDrop(listener) {
CaptureModeCloseButton::CaptureModeCloseButton(
views::Button::PressedCallback callback)
: ViewWithInkDrop(callback) {
SetPreferredSize(capture_mode::kButtonSize);
SetBorder(views::CreateEmptyBorder(capture_mode::kButtonPadding));
auto* color_provider = AshColorProvider::Get();
......@@ -39,8 +41,7 @@ CaptureModeCloseButton::CaptureModeCloseButton(views::ButtonListener* listener)
capture_mode::kButtonPadding);
}
const char* CaptureModeCloseButton::GetClassName() const {
return "CaptureModeCloseButton";
}
BEGIN_METADATA(CaptureModeCloseButton, ViewWithInkDrop<views::ImageButton>)
END_METADATA
} // namespace ash
......@@ -9,6 +9,7 @@
#include "ash/capture_mode/view_with_ink_drop.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/metadata/metadata_header_macros.h"
namespace ash {
......@@ -16,13 +17,12 @@ namespace ash {
class ASH_EXPORT CaptureModeCloseButton
: public ViewWithInkDrop<views::ImageButton> {
public:
explicit CaptureModeCloseButton(views::ButtonListener* listener);
METADATA_HEADER(CaptureModeCloseButton);
explicit CaptureModeCloseButton(views::Button::PressedCallback callback);
CaptureModeCloseButton(const CaptureModeCloseButton&) = delete;
CaptureModeCloseButton& operator=(const CaptureModeCloseButton&) = delete;
~CaptureModeCloseButton() override = default;
// views::ImageButton:
const char* GetClassName() const override;
};
} // namespace ash
......
......@@ -243,7 +243,6 @@ class CaptureModeSession::ScopedCursorSetter {
CaptureModeSession::CaptureModeSession(CaptureModeController* controller)
: controller_(controller),
current_root_(GetPreferredRootWindow()),
capture_mode_bar_view_(new CaptureModeBarView()),
magnifier_glass_(kMagnifierParams) {
Shell::Get()->AddPreTargetHandler(this);
......@@ -257,8 +256,8 @@ CaptureModeSession::CaptureModeSession(CaptureModeController* controller)
capture_mode_bar_widget_.Init(
CreateWidgetParams(parent, CaptureModeBarView::GetBounds(current_root_),
"CaptureModeBarWidget"));
capture_mode_bar_widget_.SetContentsView(
base::WrapUnique(capture_mode_bar_view_));
capture_mode_bar_view_ = capture_mode_bar_widget_.SetContentsView(
std::make_unique<CaptureModeBarView>());
capture_mode_bar_widget_.Show();
UpdateCaptureLabelWidget();
......
......@@ -19,6 +19,7 @@
#include "ui/events/event.h"
#include "ui/events/event_handler.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/widget/unique_widget_ptr.h"
#include "ui/views/widget/widget.h"
namespace gfx {
......@@ -191,10 +192,10 @@ class ASH_EXPORT CaptureModeSession : public ui::LayerOwner,
views::Widget capture_mode_bar_widget_;
// The content view of the above widget and owned by its views hierarchy.
CaptureModeBarView* capture_mode_bar_view_;
CaptureModeBarView* capture_mode_bar_view_ = nullptr;
// Widget which displays capture region size during a region capture session.
std::unique_ptr<views::Widget> dimensions_label_widget_;
views::UniqueWidgetPtr dimensions_label_widget_;
// Widget that shows an optional icon and a message in the middle of the
// screen or in the middle of the capture region and prompts the user what to
......@@ -202,7 +203,7 @@ class ASH_EXPORT CaptureModeSession : public ui::LayerOwner,
// and source and can be empty in some cases. And in video capture mode, when
// starting capturing, the widget will transform into a 3-second countdown
// timer.
std::unique_ptr<views::Widget> capture_label_widget_;
views::UniqueWidgetPtr capture_label_widget_;
// Magnifier glass used during a region capture session.
MagnifierGlass magnifier_glass_;
......
......@@ -9,21 +9,28 @@
#include "ash/capture_mode/capture_mode_controller.h"
#include "ash/capture_mode/capture_mode_toggle_button.h"
#include "ash/resources/vector_icons/vector_icons.h"
#include "base/bind.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/metadata/metadata_impl_macros.h"
namespace ash {
CaptureModeSourceView::CaptureModeSourceView()
: fullscreen_toggle_button_(
AddChildView(std::make_unique<CaptureModeToggleButton>(
this,
base::BindRepeating(&CaptureModeSourceView::OnFullscreenToggle,
base::Unretained(this)),
kCaptureModeFullscreenIcon))),
region_toggle_button_(AddChildView(
std::make_unique<CaptureModeToggleButton>(this,
kCaptureModeRegionIcon))),
window_toggle_button_(AddChildView(
std::make_unique<CaptureModeToggleButton>(this,
kCaptureModeWindowIcon))) {
region_toggle_button_(
AddChildView(std::make_unique<CaptureModeToggleButton>(
base::BindRepeating(&CaptureModeSourceView::OnRegionToggle,
base::Unretained(this)),
kCaptureModeRegionIcon))),
window_toggle_button_(
AddChildView(std::make_unique<CaptureModeToggleButton>(
base::BindRepeating(&CaptureModeSourceView::OnWindowToggle,
base::Unretained(this)),
kCaptureModeWindowIcon))) {
auto* box_layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::Orientation::kHorizontal, gfx::Insets(),
capture_mode::kBetweenChildSpacing));
......@@ -42,21 +49,19 @@ void CaptureModeSourceView::OnCaptureSourceChanged(
window_toggle_button_->SetToggled(new_source == CaptureModeSource::kWindow);
}
const char* CaptureModeSourceView::GetClassName() const {
return "CaptureModeSourceView";
void CaptureModeSourceView::OnFullscreenToggle() {
CaptureModeController::Get()->SetSource(CaptureModeSource::kFullscreen);
}
void CaptureModeSourceView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
auto* controller = CaptureModeController::Get();
if (sender == fullscreen_toggle_button_) {
controller->SetSource(CaptureModeSource::kFullscreen);
} else if (sender == region_toggle_button_) {
controller->SetSource(CaptureModeSource::kRegion);
} else {
DCHECK_EQ(sender, window_toggle_button_);
controller->SetSource(CaptureModeSource::kWindow);
}
void CaptureModeSourceView::OnRegionToggle() {
CaptureModeController::Get()->SetSource(CaptureModeSource::kRegion);
}
void CaptureModeSourceView::OnWindowToggle() {
CaptureModeController::Get()->SetSource(CaptureModeSource::kWindow);
}
BEGIN_METADATA(CaptureModeSourceView, views::View)
END_METADATA
} // namespace ash
......@@ -7,7 +7,8 @@
#include "ash/ash_export.h"
#include "ash/capture_mode/capture_mode_types.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/metadata/metadata_header_macros.h"
#include "ui/views/view.h"
namespace ash {
......@@ -16,9 +17,10 @@ class CaptureModeToggleButton;
// A view that is part of the CaptureBar view, from which the user can toggle
// between the three available capture sources (fullscreen, region, and window).
// Only a single capture source can be active at any time.
class ASH_EXPORT CaptureModeSourceView : public views::View,
public views::ButtonListener {
class ASH_EXPORT CaptureModeSourceView : public views::View {
public:
METADATA_HEADER(CaptureModeSourceView);
CaptureModeSourceView();
CaptureModeSourceView(const CaptureModeSourceView&) = delete;
CaptureModeSourceView& operator=(const CaptureModeSourceView&) = delete;
......@@ -37,13 +39,11 @@ class ASH_EXPORT CaptureModeSourceView : public views::View,
// Called when the capture source changes.
void OnCaptureSourceChanged(CaptureModeSource new_source);
// views::View:
const char* GetClassName() const override;
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
private:
void OnFullscreenToggle();
void OnRegionToggle();
void OnWindowToggle();
// Owned by the views hierarchy.
CaptureModeToggleButton* fullscreen_toggle_button_;
CaptureModeToggleButton* region_toggle_button_;
......
......@@ -10,13 +10,14 @@
#include "ui/gfx/paint_vector_icon.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/highlight_path_generator.h"
#include "ui/views/metadata/metadata_impl_macros.h"
namespace ash {
CaptureModeToggleButton::CaptureModeToggleButton(
views::ButtonListener* listener,
views::Button::PressedCallback callback,
const gfx::VectorIcon& icon)
: ViewWithInkDrop(listener) {
: ViewWithInkDrop(callback) {
SetPreferredSize(capture_mode::kButtonSize);
SetBorder(views::CreateEmptyBorder(capture_mode::kButtonPadding));
SetImageHorizontalAlignment(ALIGN_CENTER);
......@@ -42,10 +43,6 @@ CaptureModeToggleButton::CaptureModeToggleButton(
AshColorProvider::ControlsLayerType::kControlBackgroundColorActive);
}
const char* CaptureModeToggleButton::GetClassName() const {
return "CaptureModeToggleButton";
}
void CaptureModeToggleButton::OnPaintBackground(gfx::Canvas* canvas) {
if (!GetToggled())
return;
......@@ -79,4 +76,8 @@ void CaptureModeToggleButton::SetIcon(const gfx::VectorIcon& icon) {
SetToggledImage(views::Button::STATE_NORMAL, &toggled_icon);
}
BEGIN_METADATA(CaptureModeToggleButton,
ViewWithInkDrop<views::ToggleImageButton>)
END_METADATA
} // namespace ash
......@@ -7,7 +7,9 @@
#include "ash/ash_export.h"
#include "ash/capture_mode/view_with_ink_drop.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/metadata/metadata_header_macros.h"
namespace gfx {
struct VectorIcon;
......@@ -21,14 +23,15 @@ namespace ash {
class ASH_EXPORT CaptureModeToggleButton
: public ViewWithInkDrop<views::ToggleImageButton> {
public:
CaptureModeToggleButton(views::ButtonListener* listener,
METADATA_HEADER(CaptureModeToggleButton);
CaptureModeToggleButton(views::Button::PressedCallback callback,
const gfx::VectorIcon& icon);
CaptureModeToggleButton(const CaptureModeToggleButton&) = delete;
CaptureModeToggleButton& operator=(const CaptureModeToggleButton&) = delete;
~CaptureModeToggleButton() override = default;
// views::ToggleImageButton:
const char* GetClassName() const override;
void OnPaintBackground(gfx::Canvas* canvas) override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
......
......@@ -10,8 +10,10 @@
#include "ash/capture_mode/capture_mode_toggle_button.h"
#include "ash/resources/vector_icons/vector_icons.h"
#include "ash/style/ash_color_provider.h"
#include "base/bind.h"
#include "ui/views/background.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/metadata/metadata_impl_macros.h"
namespace ash {
......@@ -26,12 +28,16 @@ constexpr int kButtonSpacing = 2;
} // namespace
CaptureModeTypeView::CaptureModeTypeView()
: image_toggle_button_(AddChildView(
std::make_unique<CaptureModeToggleButton>(this,
kCaptureModeImageIcon))),
video_toggle_button_(AddChildView(
std::make_unique<CaptureModeToggleButton>(this,
kCaptureModeVideoIcon))) {
: image_toggle_button_(
AddChildView(std::make_unique<CaptureModeToggleButton>(
base::BindRepeating(&CaptureModeTypeView::OnImageToggle,
base::Unretained(this)),
kCaptureModeImageIcon))),
video_toggle_button_(
AddChildView(std::make_unique<CaptureModeToggleButton>(
base::BindRepeating(&CaptureModeTypeView::OnVideoToggle,
base::Unretained(this)),
kCaptureModeVideoIcon))) {
auto* color_provider = AshColorProvider::Get();
const SkColor bg_color = color_provider->GetControlsLayerColor(
AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
......@@ -55,19 +61,15 @@ void CaptureModeTypeView::OnCaptureTypeChanged(CaptureModeType new_type) {
video_toggle_button_->GetToggled());
}
const char* CaptureModeTypeView::GetClassName() const {
return "CaptureModeTypeView";
void CaptureModeTypeView::OnImageToggle() {
CaptureModeController::Get()->SetType(CaptureModeType::kImage);
}
void CaptureModeTypeView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
auto* controller = CaptureModeController::Get();
if (sender == image_toggle_button_) {
controller->SetType(CaptureModeType::kImage);
} else {
DCHECK_EQ(sender, video_toggle_button_);
controller->SetType(CaptureModeType::kVideo);
}
void CaptureModeTypeView::OnVideoToggle() {
CaptureModeController::Get()->SetType(CaptureModeType::kVideo);
}
BEGIN_METADATA(CaptureModeTypeView, views::View)
END_METADATA
} // namespace ash
......@@ -7,7 +7,8 @@
#include "ash/ash_export.h"
#include "ash/capture_mode/capture_mode_types.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/metadata/metadata_header_macros.h"
#include "ui/views/view.h"
namespace ash {
......@@ -15,9 +16,10 @@ class CaptureModeToggleButton;
// A view that is part of the CaptureBarView, from which the user can toggle
// between the two available capture types (image, and video).
class ASH_EXPORT CaptureModeTypeView : public views::View,
public views::ButtonListener {
class ASH_EXPORT CaptureModeTypeView : public views::View {
public:
METADATA_HEADER(CaptureModeTypeView);
CaptureModeTypeView();
CaptureModeTypeView(const CaptureModeTypeView&) = delete;
CaptureModeTypeView& operator=(const CaptureModeTypeView&) = delete;
......@@ -33,13 +35,10 @@ class ASH_EXPORT CaptureModeTypeView : public views::View,
// Called when the capture type changes.
void OnCaptureTypeChanged(CaptureModeType new_type);
// views::View:
const char* GetClassName() const override;
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
private:
void OnImageToggle();
void OnVideoToggle();
// Owned by the views hierarchy.
CaptureModeToggleButton* image_toggle_button_;
CaptureModeToggleButton* video_toggle_button_;
......
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