Commit 8924cebb authored by Yulun Wu's avatar Yulun Wu Committed by Chromium LUCI CQ

Live updates for shelf color to handle theme changes.

Bug: 1139477
Change-Id: I8901748651f62b2894a0c8b3f4e46bed6ddc6c40
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2612207Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: default avatarToni Baržić <tbarzic@chromium.org>
Commit-Queue: Yulun Wu <yulunwu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842667}
parent d662b9d4
...@@ -207,4 +207,10 @@ const char* AssistantOverlay::GetClassName() const { ...@@ -207,4 +207,10 @@ const char* AssistantOverlay::GetClassName() const {
return "AssistantOverlay"; return "AssistantOverlay";
} }
void AssistantOverlay::OnThemeChanged() {
views::View::OnThemeChanged();
circle_layer_delegate_.set_color(
AshColorProvider::Get()->GetRippleAttributes().base_color);
SchedulePaint();
}
} // namespace ash } // namespace ash
...@@ -33,6 +33,7 @@ class ASH_EXPORT AssistantOverlay : public views::View { ...@@ -33,6 +33,7 @@ class ASH_EXPORT AssistantOverlay : public views::View {
// views::View: // views::View:
const char* GetClassName() const override; const char* GetClassName() const override;
void OnThemeChanged() override;
private: private:
enum class AnimationState { enum class AnimationState {
......
...@@ -90,4 +90,9 @@ void BackButton::ButtonPressed(views::Button* sender, ...@@ -90,4 +90,9 @@ void BackButton::ButtonPressed(views::Button* sender,
GetWidget()->GetNativeWindow()->GetRootWindow()); GetWidget()->GetNativeWindow()->GetRootWindow());
} }
void BackButton::OnThemeChanged() {
ShelfControlButton::OnThemeChanged();
SchedulePaint();
}
} // namespace ash } // namespace ash
...@@ -36,6 +36,9 @@ class ASH_EXPORT BackButton : public ShelfControlButton, ...@@ -36,6 +36,9 @@ class ASH_EXPORT BackButton : public ShelfControlButton,
const char* GetClassName() const override; const char* GetClassName() const override;
base::string16 GetTooltipText(const gfx::Point& p) const override; base::string16 GetTooltipText(const gfx::Point& p) const override;
// views::View:
void OnThemeChanged() override;
// ShelfButtonDelegate: // ShelfButtonDelegate:
void OnShelfButtonAboutToRequestFocusFromTabTraversal(ShelfButton* button, void OnShelfButtonAboutToRequestFocusFromTabTraversal(ShelfButton* button,
bool reverse) override; bool reverse) override;
......
...@@ -293,6 +293,11 @@ void DragHandle::GetAccessibleNodeData(ui::AXNodeData* node_data) { ...@@ -293,6 +293,11 @@ void DragHandle::GetAccessibleNodeData(ui::AXNodeData* node_data) {
node_data->SetName(accessible_name); node_data->SetName(accessible_name);
} }
void DragHandle::OnThemeChanged() {
views::Button::OnThemeChanged();
UpdateColor();
}
void DragHandle::OnOverviewModeStarting() { void DragHandle::OnOverviewModeStarting() {
StopDragHandleNudgeShowTimer(); StopDragHandleNudgeShowTimer();
} }
......
...@@ -70,6 +70,7 @@ class ASH_EXPORT DragHandle : public views::Button, ...@@ -70,6 +70,7 @@ class ASH_EXPORT DragHandle : public views::Button,
void OnGestureEvent(ui::GestureEvent* event) override; void OnGestureEvent(ui::GestureEvent* event) override;
gfx::Rect GetAnchorBoundsInScreen() const override; gfx::Rect GetAnchorBoundsInScreen() const override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
void OnThemeChanged() override;
// OverviewObserver: // OverviewObserver:
void OnOverviewModeStarting() override; void OnOverviewModeStarting() override;
......
...@@ -170,6 +170,11 @@ void HomeButton::PaintButtonContents(gfx::Canvas* canvas) { ...@@ -170,6 +170,11 @@ void HomeButton::PaintButtonContents(gfx::Canvas* canvas) {
} }
} }
void HomeButton::OnThemeChanged() {
ShelfControlButton::OnThemeChanged();
SchedulePaint();
}
bool HomeButton::DoesIntersectRect(const views::View* target, bool HomeButton::DoesIntersectRect(const views::View* target,
const gfx::Rect& rect) const { const gfx::Rect& rect) const {
DCHECK_EQ(target, this); DCHECK_EQ(target, this);
......
...@@ -64,6 +64,7 @@ class ASH_EXPORT HomeButton : public ShelfControlButton, ...@@ -64,6 +64,7 @@ class ASH_EXPORT HomeButton : public ShelfControlButton,
protected: protected:
// views::Button: // views::Button:
void PaintButtonContents(gfx::Canvas* canvas) override; void PaintButtonContents(gfx::Canvas* canvas) override;
void OnThemeChanged() override;
private: private:
// views::ViewTargeterDelegate: // views::ViewTargeterDelegate:
......
...@@ -56,4 +56,9 @@ const char* ScrollArrowView::GetClassName() const { ...@@ -56,4 +56,9 @@ const char* ScrollArrowView::GetClassName() const {
return "ScrollArrowView"; return "ScrollArrowView";
} }
void ScrollArrowView::OnThemeChanged() {
ShelfButton::OnThemeChanged();
SchedulePaint();
}
} // namespace ash } // namespace ash
...@@ -31,6 +31,7 @@ class ASH_EXPORT ScrollArrowView : public ShelfButton { ...@@ -31,6 +31,7 @@ class ASH_EXPORT ScrollArrowView : public ShelfButton {
// views::View: // views::View:
void PaintButtonContents(gfx::Canvas* canvas) override; void PaintButtonContents(gfx::Canvas* canvas) override;
const char* GetClassName() const override; const char* GetClassName() const override;
void OnThemeChanged() override;
private: private:
ArrowType arrow_type_ = kLeft; ArrowType arrow_type_ = kLeft;
......
...@@ -643,6 +643,14 @@ const char* ShelfView::GetClassName() const { ...@@ -643,6 +643,14 @@ const char* ShelfView::GetClassName() const {
return "ShelfView"; return "ShelfView";
} }
void ShelfView::OnThemeChanged() {
views::AccessiblePaneView::OnThemeChanged();
if (!separator_)
return;
separator_->SetColor(AshColorProvider::Get()->GetContentLayerColor(
AshColorProvider::ContentLayerType::kSeparatorColor));
}
void ShelfView::GetAccessibleNodeData(ui::AXNodeData* node_data) { void ShelfView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
node_data->role = ax::mojom::Role::kToolbar; node_data->role = ax::mojom::Role::kToolbar;
node_data->SetName(l10n_util::GetStringUTF8(IDS_ASH_SHELF_ACCESSIBLE_NAME)); node_data->SetName(l10n_util::GetStringUTF8(IDS_ASH_SHELF_ACCESSIBLE_NAME));
......
...@@ -140,6 +140,7 @@ class ASH_EXPORT ShelfView : public views::AccessiblePaneView, ...@@ -140,6 +140,7 @@ class ASH_EXPORT ShelfView : public views::AccessiblePaneView,
bool OnKeyPressed(const ui::KeyEvent& event) override; bool OnKeyPressed(const ui::KeyEvent& event) override;
void OnMouseEvent(ui::MouseEvent* event) override; void OnMouseEvent(ui::MouseEvent* event) override;
const char* GetClassName() const override; const char* GetClassName() const override;
void OnThemeChanged() override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
View* GetTooltipHandlerForPoint(const gfx::Point& point) override; View* GetTooltipHandlerForPoint(const gfx::Point& point) override;
......
...@@ -133,6 +133,9 @@ class ShelfWidget::DelegateView : public views::WidgetDelegate, ...@@ -133,6 +133,9 @@ class ShelfWidget::DelegateView : public views::WidgetDelegate,
views::Widget* GetWidget() override { return View::GetWidget(); } views::Widget* GetWidget() override { return View::GetWidget(); }
const views::Widget* GetWidget() const override { return View::GetWidget(); } const views::Widget* GetWidget() const override { return View::GetWidget(); }
// views::View:
void OnThemeChanged() override;
bool CanActivate() const override; bool CanActivate() const override;
void ReorderChildLayers(ui::Layer* parent_layer) override; void ReorderChildLayers(ui::Layer* parent_layer) override;
void OnWidgetInitialized() override; void OnWidgetInitialized() override;
...@@ -262,6 +265,13 @@ void ShelfWidget::DelegateView::ShowOpaqueBackground() { ...@@ -262,6 +265,13 @@ void ShelfWidget::DelegateView::ShowOpaqueBackground() {
UpdateBackgroundBlur(); UpdateBackgroundBlur();
} }
void ShelfWidget::DelegateView::OnThemeChanged() {
views::AccessiblePaneView::OnThemeChanged();
shelf_widget_->background_animator_.PaintBackground(
shelf_widget_->shelf_layout_manager()->GetShelfBackgroundType(),
AnimationChangeType::IMMEDIATE);
}
bool ShelfWidget::DelegateView::CanActivate() const { bool ShelfWidget::DelegateView::CanActivate() const {
// This widget only contains anything interesting to activate in login/lock // This widget only contains anything interesting to activate in login/lock
// screen mode. Only allow activation from the focus cycler, not from mouse // screen mode. Only allow activation from the focus cycler, not from mouse
......
...@@ -35,11 +35,12 @@ class VIEWS_EXPORT BasePaintedLayerDelegate : public ui::LayerDelegate { ...@@ -35,11 +35,12 @@ class VIEWS_EXPORT BasePaintedLayerDelegate : public ui::LayerDelegate {
void OnDeviceScaleFactorChanged(float old_device_scale_factor, void OnDeviceScaleFactorChanged(float old_device_scale_factor,
float new_device_scale_factor) override; float new_device_scale_factor) override;
SkColor color() const { return color_; }
void set_color(SkColor color) { color_ = color; }
protected: protected:
explicit BasePaintedLayerDelegate(SkColor color); explicit BasePaintedLayerDelegate(SkColor color);
SkColor color() const { return color_; }
private: private:
// The color to paint. // The color to paint.
SkColor color_; SkColor color_;
......
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