| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/common/system/tray/tray_background_view.h" | 5 #include "ash/common/system/tray/tray_background_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/common/ash_constants.h" | 9 #include "ash/common/ash_constants.h" |
| 10 #include "ash/common/material_design/material_design_controller.h" | 10 #include "ash/common/material_design/material_design_controller.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 TrayBackgroundView* host_; | 110 TrayBackgroundView* host_; |
| 111 | 111 |
| 112 DISALLOW_COPY_AND_ASSIGN(TrayWidgetObserver); | 112 DISALLOW_COPY_AND_ASSIGN(TrayWidgetObserver); |
| 113 }; | 113 }; |
| 114 | 114 |
| 115 class TrayBackground : public views::Background { | 115 class TrayBackground : public views::Background { |
| 116 public: | 116 public: |
| 117 TrayBackground(TrayBackgroundView* tray_background_view, bool draws_active) | 117 TrayBackground(TrayBackgroundView* tray_background_view, bool draws_active) |
| 118 : tray_background_view_(tray_background_view), | 118 : tray_background_view_(tray_background_view), |
| 119 draws_active_(draws_active), | 119 draws_active_(draws_active), |
| 120 alpha_(0) {} | 120 color_(SK_ColorTRANSPARENT) {} |
| 121 | 121 |
| 122 ~TrayBackground() override {} | 122 ~TrayBackground() override {} |
| 123 | 123 |
| 124 void set_alpha(int alpha) { alpha_ = alpha; } | 124 void set_color(SkColor color) { color_ = color; } |
| 125 | 125 |
| 126 private: | 126 private: |
| 127 WmShelf* GetShelf() const { return tray_background_view_->shelf(); } | 127 WmShelf* GetShelf() const { return tray_background_view_->shelf(); } |
| 128 | 128 |
| 129 void PaintMaterial(gfx::Canvas* canvas, views::View* view) const { | 129 void PaintMaterial(gfx::Canvas* canvas, views::View* view) const { |
| 130 cc::PaintFlags background_flags; | 130 cc::PaintFlags background_flags; |
| 131 background_flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); | 131 background_flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); |
| 132 background_flags.setColor(SkColorSetA(kShelfBaseColor, alpha_)); | 132 background_flags.setColor(color_); |
| 133 gfx::Insets insets = | 133 gfx::Insets insets = |
| 134 GetMirroredBackgroundInsets(GetShelf()->GetAlignment()); | 134 GetMirroredBackgroundInsets(GetShelf()->GetAlignment()); |
| 135 gfx::Rect bounds = view->GetLocalBounds(); | 135 gfx::Rect bounds = view->GetLocalBounds(); |
| 136 bounds.Inset(insets); | 136 bounds.Inset(insets); |
| 137 canvas->DrawRoundRect(bounds, kTrayRoundedBorderRadius, background_flags); | 137 canvas->DrawRoundRect(bounds, kTrayRoundedBorderRadius, background_flags); |
| 138 | 138 |
| 139 if (draws_active_ && tray_background_view_->is_active()) { | 139 if (draws_active_ && tray_background_view_->is_active()) { |
| 140 cc::PaintFlags highlight_flags; | 140 cc::PaintFlags highlight_flags; |
| 141 highlight_flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); | 141 highlight_flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); |
| 142 highlight_flags.setColor(kShelfButtonActivatedHighlightColor); | 142 highlight_flags.setColor(kShelfButtonActivatedHighlightColor); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 // Reference to the TrayBackgroundView for which this is a background. | 198 // Reference to the TrayBackgroundView for which this is a background. |
| 199 TrayBackgroundView* tray_background_view_; | 199 TrayBackgroundView* tray_background_view_; |
| 200 | 200 |
| 201 // Determines whether we should draw an active background for the view when it | 201 // Determines whether we should draw an active background for the view when it |
| 202 // is active. This is used in non-MD mode. In material design mode, an active | 202 // is active. This is used in non-MD mode. In material design mode, an active |
| 203 // ink drop ripple would indicate if the view is active or not. | 203 // ink drop ripple would indicate if the view is active or not. |
| 204 // TODO(mohsen): This is used only in non-MD version. Remove when non-MD code | 204 // TODO(mohsen): This is used only in non-MD version. Remove when non-MD code |
| 205 // is removed (see https://crbug.com/614453). | 205 // is removed (see https://crbug.com/614453). |
| 206 bool draws_active_; | 206 bool draws_active_; |
| 207 | 207 |
| 208 int alpha_; | 208 SkColor color_; |
| 209 | 209 |
| 210 DISALLOW_COPY_AND_ASSIGN(TrayBackground); | 210 DISALLOW_COPY_AND_ASSIGN(TrayBackground); |
| 211 }; | 211 }; |
| 212 | 212 |
| 213 TrayBackgroundView::TrayContainer::TrayContainer(ShelfAlignment alignment) | 213 TrayBackgroundView::TrayContainer::TrayContainer(ShelfAlignment alignment) |
| 214 : alignment_(alignment) { | 214 : alignment_(alignment) { |
| 215 UpdateLayout(); | 215 UpdateLayout(); |
| 216 } | 216 } |
| 217 | 217 |
| 218 void TrayBackgroundView::TrayContainer::SetAlignment(ShelfAlignment alignment) { | 218 void TrayBackgroundView::TrayContainer::SetAlignment(ShelfAlignment alignment) { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 // TODO(mohsen): This is needed for non-MD version. Remove when non-MD code is | 507 // TODO(mohsen): This is needed for non-MD version. Remove when non-MD code is |
| 508 // removed (see https://crbug.com/614453). | 508 // removed (see https://crbug.com/614453). |
| 509 SchedulePaint(); | 509 SchedulePaint(); |
| 510 } | 510 } |
| 511 | 511 |
| 512 void TrayBackgroundView::UpdateBubbleViewArrow( | 512 void TrayBackgroundView::UpdateBubbleViewArrow( |
| 513 views::TrayBubbleView* bubble_view) { | 513 views::TrayBubbleView* bubble_view) { |
| 514 // Nothing to do here. | 514 // Nothing to do here. |
| 515 } | 515 } |
| 516 | 516 |
| 517 void TrayBackgroundView::UpdateShelfItemBackground(int alpha) { | 517 void TrayBackgroundView::UpdateShelfItemBackground(SkColor color) { |
| 518 if (background_) { | 518 if (background_) { |
| 519 background_->set_alpha(alpha); | 519 background_->set_color(color); |
| 520 SchedulePaint(); | 520 SchedulePaint(); |
| 521 } | 521 } |
| 522 } | 522 } |
| 523 | 523 |
| 524 views::View* TrayBackgroundView::GetBubbleAnchor() const { | 524 views::View* TrayBackgroundView::GetBubbleAnchor() const { |
| 525 return tray_container_; | 525 return tray_container_; |
| 526 } | 526 } |
| 527 | 527 |
| 528 gfx::Insets TrayBackgroundView::GetBubbleAnchorInsets() const { | 528 gfx::Insets TrayBackgroundView::GetBubbleAnchorInsets() const { |
| 529 gfx::Insets anchor_insets = GetBubbleAnchor()->GetInsets(); | 529 gfx::Insets anchor_insets = GetBubbleAnchor()->GetInsets(); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 } | 633 } |
| 634 | 634 |
| 635 gfx::Rect TrayBackgroundView::GetBackgroundBounds() const { | 635 gfx::Rect TrayBackgroundView::GetBackgroundBounds() const { |
| 636 gfx::Insets insets = GetBackgroundInsets(); | 636 gfx::Insets insets = GetBackgroundInsets(); |
| 637 gfx::Rect bounds = GetLocalBounds(); | 637 gfx::Rect bounds = GetLocalBounds(); |
| 638 bounds.Inset(insets); | 638 bounds.Inset(insets); |
| 639 return bounds; | 639 return bounds; |
| 640 } | 640 } |
| 641 | 641 |
| 642 } // namespace ash | 642 } // namespace ash |
| OLD | NEW |