Chromium Code Reviews| Index: ui/app_list/views/speech_view.cc |
| diff --git a/ui/app_list/views/speech_view.cc b/ui/app_list/views/speech_view.cc |
| index 9b92e7e158a621f6fa6d358f34f14a35cddeae52..11b7dcd46721f9d5c56083a758300ceffa05fcbc 100644 |
| --- a/ui/app_list/views/speech_view.cc |
| +++ b/ui/app_list/views/speech_view.cc |
| @@ -21,6 +21,7 @@ |
| #include "ui/views/controls/image_view.h" |
| #include "ui/views/controls/label.h" |
| #include "ui/views/layout/fill_layout.h" |
| +#include "ui/views/masked_targeter_delegate.h" |
| #include "ui/views/shadow_border.h" |
| namespace app_list { |
| @@ -69,17 +70,16 @@ void SoundLevelIndicator::OnPaint(gfx::Canvas* canvas) { |
| canvas->DrawCircle(bounds().CenterPoint(), width() / 2, paint); |
| } |
| -// MicButton is an image button with circular hit area. |
| -class MicButton : public views::ImageButton { |
| +// MicButton is an image button with a circular hit test mask. |
| +class MicButton : public views::ImageButton, |
| + public views::MaskedTargeterDelegate { |
| public: |
| explicit MicButton(views::ButtonListener* listener); |
| virtual ~MicButton(); |
| private: |
| - // Overridden from views::View: |
| - virtual bool HasHitTestMask() const OVERRIDE; |
| - virtual void GetHitTestMaskDeprecated(views::View::HitTestSource source, |
| - gfx::Path* mask) const OVERRIDE; |
| + // views::MaskedTargeterDelegate: |
| + virtual bool GetHitTestMask(gfx::Path* mask) const OVERRIDE; |
| DISALLOW_COPY_AND_ASSIGN(MicButton); |
| }; |
| @@ -89,15 +89,10 @@ MicButton::MicButton(views::ButtonListener* listener) |
| MicButton::~MicButton() {} |
| -bool MicButton::HasHitTestMask() const { |
| - return true; |
| -} |
| - |
| -void MicButton::GetHitTestMaskDeprecated(views::View::HitTestSource source, |
| - gfx::Path* mask) const { |
| +bool MicButton::GetHitTestMask(gfx::Path* mask) const { |
| DCHECK(mask); |
| - // The mic button icon is a circle. |source| doesn't matter. |
| + // The mic button icon is a circle. |
| gfx::Rect local_bounds = GetLocalBounds(); |
| int radius = local_bounds.width() / 2 + kIndicatorRadiusMinOffset; |
| gfx::Point center = local_bounds.CenterPoint(); |
| @@ -105,6 +100,7 @@ void MicButton::GetHitTestMaskDeprecated(views::View::HitTestSource source, |
| mask->addCircle(SkIntToScalar(center.x()), |
| SkIntToScalar(center.y()), |
| SkIntToScalar(radius)); |
| + return true; |
| } |
| } // namespace |
| @@ -140,6 +136,8 @@ SpeechView::SpeechView(AppListViewDelegate* delegate) |
| mic_button_ = new MicButton(this); |
| container->AddChildView(mic_button_); |
| + mic_button_->SetEventTargeter(scoped_ptr<views::ViewTargeter>( |
| + new views::ViewTargeter(static_cast<MicButton*>(mic_button_)))); |
|
sky
2014/07/10 15:46:00
I'm not a fan of the static_cast here. Could you c
tdanderson
2014/07/10 16:53:45
Done.
|
| // TODO(mukai): use BoundedLabel to cap 2 lines. |
| ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |