Chromium Code Reviews| Index: chrome/browser/ui/views/location_bar/icon_label_bubble_view.h |
| diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.h b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.h |
| index 7b5d37e0dfeb9b652ca2ef4b191108c954cc60d9..24308a60739d113cbf671f37017b5eab7b6f03ea 100644 |
| --- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.h |
| +++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.h |
| @@ -13,22 +13,25 @@ |
| #include "ui/gfx/geometry/size.h" |
| #include "ui/views/animation/ink_drop_host_view.h" |
| #include "ui/views/controls/label.h" |
| +#include "ui/views/widget/widget_observer.h" |
| + |
| +class SeparatorView; |
|
bruthig
2017/03/08 18:58:24
I will let OWNER's confirm/correct me on this but
spqchan
2017/03/14 00:07:52
Done.
|
| namespace gfx { |
| -class Canvas; |
| class FontList; |
| class ImageSkia; |
| } |
| namespace views { |
| class ImageView; |
| -class Label; |
| +class InkDropContainerView; |
| } |
| // View used to draw a bubble, containing an icon and a label. We use this as a |
| // base for the classes that handle the location icon (including the EV bubble), |
| // tab-to-search UI, and content settings. |
| -class IconLabelBubbleView : public views::InkDropHostView { |
| +class IconLabelBubbleView : public views::InkDropHostView, |
| + public views::WidgetObserver { |
| public: |
| static constexpr int kTrailingPaddingPreMd = 2; |
| @@ -67,6 +70,11 @@ class IconLabelBubbleView : public views::InkDropHostView { |
| // Returns true when animation is in progress and is shrinking. |
| virtual bool IsShrinking() const; |
| + // Returns true if ink drop is enabled. Subclasses are expected to override |
| + // this if they want to have an inkdrop effect. Otherwise, it's false by |
| + // default. |
| + virtual bool IsInkDropEnabled() const; |
|
bruthig
2017/03/08 18:58:24
Would InkDropHostView::SetInkDropMode() be a suffi
spqchan
2017/03/14 00:07:52
Not quite, IsInkDropEnabled() is used in LocationI
|
| + |
| // The view has been activated by a user gesture such as spacebar. Returns |
| // true if some handling was performed. |
| virtual bool OnActivate(const ui::Event& event); |
| @@ -74,15 +82,24 @@ class IconLabelBubbleView : public views::InkDropHostView { |
| // views::InkDropHostView: |
| gfx::Size GetPreferredSize() const override; |
| void Layout() override; |
| + bool OnMousePressed(const ui::MouseEvent& event) override; |
| + void OnMouseReleased(const ui::MouseEvent& event) override; |
| bool OnKeyPressed(const ui::KeyEvent& event) override; |
| bool OnKeyReleased(const ui::KeyEvent& event) override; |
| void GetAccessibleNodeData(ui::AXNodeData* node_data) override; |
| void OnNativeThemeChanged(const ui::NativeTheme* native_theme) override; |
| void AddInkDropLayer(ui::Layer* ink_drop_layer) override; |
| void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override; |
| + std::unique_ptr<views::InkDrop> CreateInkDrop() override; |
| std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight() |
| const override; |
| + std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override; |
| SkColor GetInkDropBaseColor() const override; |
| + void InkDropAnimationStarted() override; |
| + |
| + // views::WidgetObserver: |
| + void OnWidgetDestroying(views::Widget* widget) override; |
| + void OnWidgetVisibilityChanged(views::Widget* widget, bool visible) override; |
| const gfx::FontList& font_list() const { return label_->font_list(); } |
| @@ -91,6 +108,8 @@ class IconLabelBubbleView : public views::InkDropHostView { |
| gfx::Size GetSizeForLabelWidth(int label_width) const; |
| private: |
| + friend SeparatorView; |
| + |
| // Amount of padding from the leading edge of the view to the leading edge of |
| // the image, and from the trailing edge of the label (or image, if the label |
| // is invisible) to the trailing edge of the view. |
| @@ -106,11 +125,12 @@ class IconLabelBubbleView : public views::InkDropHostView { |
| // views::View: |
| const char* GetClassName() const override; |
| - void OnPaint(gfx::Canvas* canvas) override; |
| // The contents of the bubble. |
| views::ImageView* image_; |
| views::Label* label_; |
| + views::InkDropContainerView* ink_drop_container_; |
| + std::unique_ptr<SeparatorView> separator_view_; |
| // The padding of the element that will be displayed after |this|. This value |
| // is relevant for calculating the amount of space to reserve after the |