| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/shelf/shelf_background_animator.h" | 5 #include "ash/common/shelf/shelf_background_animator.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/animation/animation_change_type.h" | 9 #include "ash/animation/animation_change_type.h" |
| 10 #include "ash/common/shelf/shelf_background_animator_observer.h" | 10 #include "ash/common/shelf/shelf_background_animator_observer.h" |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 void ShelfBackgroundAnimator::SetTargetValues( | 196 void ShelfBackgroundAnimator::SetTargetValues( |
| 197 ShelfBackgroundType background_type) { | 197 ShelfBackgroundType background_type) { |
| 198 GetTargetValues(background_type, &shelf_background_values_, | 198 GetTargetValues(background_type, &shelf_background_values_, |
| 199 &item_background_values_); | 199 &item_background_values_); |
| 200 } | 200 } |
| 201 | 201 |
| 202 void ShelfBackgroundAnimator::GetTargetValues( | 202 void ShelfBackgroundAnimator::GetTargetValues( |
| 203 ShelfBackgroundType background_type, | 203 ShelfBackgroundType background_type, |
| 204 AnimationValues* shelf_background_values, | 204 AnimationValues* shelf_background_values, |
| 205 AnimationValues* item_background_values) const { | 205 AnimationValues* item_background_values) const { |
| 206 int target_shelf_background_alpha = 0; | 206 int target_shelf_color_alpha = 0; |
| 207 int target_shelf_item_background_alpha = 0; | 207 int target_item_color_alpha = 0; |
| 208 | 208 |
| 209 switch (background_type) { | 209 switch (background_type) { |
| 210 case SHELF_BACKGROUND_DEFAULT: | 210 case SHELF_BACKGROUND_DEFAULT: |
| 211 target_shelf_background_alpha = 0; | 211 target_shelf_color_alpha = 0; |
| 212 target_shelf_item_background_alpha = kShelfTranslucentAlpha; | 212 target_item_color_alpha = kShelfTranslucentAlpha; |
| 213 break; | 213 break; |
| 214 case SHELF_BACKGROUND_OVERLAP: | 214 case SHELF_BACKGROUND_OVERLAP: |
| 215 target_shelf_background_alpha = kShelfTranslucentAlpha; | 215 target_shelf_color_alpha = kShelfTranslucentAlpha; |
| 216 target_shelf_item_background_alpha = 0; | 216 target_item_color_alpha = 0; |
| 217 break; | 217 break; |
| 218 case SHELF_BACKGROUND_MAXIMIZED: | 218 case SHELF_BACKGROUND_MAXIMIZED: |
| 219 target_shelf_background_alpha = kMaxAlpha; | 219 target_shelf_color_alpha = kMaxAlpha; |
| 220 target_shelf_item_background_alpha = 0; | 220 target_item_color_alpha = 0; |
| 221 break; | 221 break; |
| 222 } | 222 } |
| 223 | 223 |
| 224 SkColor target_color = wallpaper_controller_ | 224 SkColor target_color = wallpaper_controller_ |
| 225 ? wallpaper_controller_->prominent_color() | 225 ? wallpaper_controller_->prominent_color() |
| 226 : kShelfDefaultBaseColor; | 226 : kShelfDefaultBaseColor; |
| 227 if (target_color == SK_ColorTRANSPARENT) { |
| 228 target_color = kShelfDefaultBaseColor; |
| 229 } else { |
| 230 int darkening_alpha = 0; |
| 227 | 231 |
| 228 if (target_color == SK_ColorTRANSPARENT) | 232 switch (background_type) { |
| 229 target_color = kShelfDefaultBaseColor; | 233 case SHELF_BACKGROUND_DEFAULT: |
| 234 case SHELF_BACKGROUND_OVERLAP: |
| 235 darkening_alpha = kShelfTranslucentColorDarkenAlpha; |
| 236 break; |
| 237 case SHELF_BACKGROUND_MAXIMIZED: |
| 238 darkening_alpha = kShelfOpaqueColorDarkenAlpha; |
| 239 break; |
| 240 } |
| 241 target_color = color_utils::GetResultingPaintColor( |
| 242 SkColorSetA(kShelfDefaultBaseColor, darkening_alpha), target_color); |
| 243 } |
| 230 | 244 |
| 231 shelf_background_values->SetTargetValues( | 245 shelf_background_values->SetTargetValues( |
| 232 SkColorSetA(target_color, target_shelf_background_alpha)); | 246 SkColorSetA(target_color, target_shelf_color_alpha)); |
| 233 item_background_values->SetTargetValues( | 247 item_background_values->SetTargetValues( |
| 234 SkColorSetA(target_color, target_shelf_item_background_alpha)); | 248 SkColorSetA(target_color, target_item_color_alpha)); |
| 235 } | 249 } |
| 236 | 250 |
| 237 void ShelfBackgroundAnimator::SetAnimationValues(double t) { | 251 void ShelfBackgroundAnimator::SetAnimationValues(double t) { |
| 238 DCHECK_GE(t, 0.0); | 252 DCHECK_GE(t, 0.0); |
| 239 DCHECK_LE(t, 1.0); | 253 DCHECK_LE(t, 1.0); |
| 240 shelf_background_values_.UpdateCurrentValues(t); | 254 shelf_background_values_.UpdateCurrentValues(t); |
| 241 item_background_values_.UpdateCurrentValues(t); | 255 item_background_values_.UpdateCurrentValues(t); |
| 242 NotifyObservers(); | 256 NotifyObservers(); |
| 243 } | 257 } |
| 244 | 258 |
| 245 } // namespace ash | 259 } // namespace ash |
| OLD | NEW |