| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h" | 5 #include "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 base::TimeDelta::FromMilliseconds(kCursorFadeOutTimeMilliseconds); | 73 base::TimeDelta::FromMilliseconds(kCursorFadeOutTimeMilliseconds); |
| 74 caret_animation_info_.fade_in_time = | 74 caret_animation_info_.fade_in_time = |
| 75 base::TimeDelta::FromMilliseconds(kCaretFadeInTimeMilliseconds); | 75 base::TimeDelta::FromMilliseconds(kCaretFadeInTimeMilliseconds); |
| 76 caret_animation_info_.fade_out_time = | 76 caret_animation_info_.fade_out_time = |
| 77 base::TimeDelta::FromMilliseconds(kCaretFadeOutTimeMilliseconds); | 77 base::TimeDelta::FromMilliseconds(kCaretFadeOutTimeMilliseconds); |
| 78 } | 78 } |
| 79 | 79 |
| 80 AccessibilityFocusRingController::~AccessibilityFocusRingController() { | 80 AccessibilityFocusRingController::~AccessibilityFocusRingController() { |
| 81 } | 81 } |
| 82 | 82 |
| 83 void AccessibilityFocusRingController::SetFocusRingColor(SkColor color) { |
| 84 focus_ring_color_ = color; |
| 85 UpdateFocusRingsFromFocusRects(); |
| 86 } |
| 87 |
| 88 void AccessibilityFocusRingController::ResetFocusRingColor() { |
| 89 focus_ring_color_.reset(); |
| 90 UpdateFocusRingsFromFocusRects(); |
| 91 } |
| 92 |
| 83 void AccessibilityFocusRingController::SetFocusRing( | 93 void AccessibilityFocusRingController::SetFocusRing( |
| 84 const std::vector<gfx::Rect>& rects, | 94 const std::vector<gfx::Rect>& rects, |
| 85 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) { | 95 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) { |
| 86 focus_ring_behavior_ = focus_ring_behavior; | 96 focus_ring_behavior_ = focus_ring_behavior; |
| 87 OnLayerChange(&focus_animation_info_); | 97 OnLayerChange(&focus_animation_info_); |
| 88 focus_rects_ = rects; | 98 focus_rects_ = rects; |
| 89 UpdateFocusRingsFromFocusRects(); | 99 UpdateFocusRingsFromFocusRects(); |
| 90 } | 100 } |
| 91 | 101 |
| 92 void AccessibilityFocusRingController::HideFocusRing() { | 102 void AccessibilityFocusRingController::HideFocusRing() { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 111 focus_layers_[0]->CanAnimate()) { | 121 focus_layers_[0]->CanAnimate()) { |
| 112 // In PERSIST mode, animate the first ring to its destination | 122 // In PERSIST mode, animate the first ring to its destination |
| 113 // location, then set the rest of the rings directly. | 123 // location, then set the rest of the rings directly. |
| 114 for (size_t i = 1; i < focus_rings_.size(); ++i) | 124 for (size_t i = 1; i < focus_rings_.size(); ++i) |
| 115 focus_layers_[i]->Set(focus_rings_[i]); | 125 focus_layers_[i]->Set(focus_rings_[i]); |
| 116 } else { | 126 } else { |
| 117 // In FADE mode, set all focus rings to their destination location. | 127 // In FADE mode, set all focus rings to their destination location. |
| 118 for (size_t i = 0; i < focus_rings_.size(); ++i) | 128 for (size_t i = 0; i < focus_rings_.size(); ++i) |
| 119 focus_layers_[i]->Set(focus_rings_[i]); | 129 focus_layers_[i]->Set(focus_rings_[i]); |
| 120 } | 130 } |
| 131 |
| 132 for (size_t i = 0; i < focus_rings_.size(); ++i) { |
| 133 if (focus_ring_color_) |
| 134 focus_layers_[i]->SetColor(*focus_ring_color_); |
| 135 else |
| 136 focus_layers_[i]->ResetColor(); |
| 137 } |
| 121 } | 138 } |
| 122 | 139 |
| 123 void AccessibilityFocusRingController::OnLayerChange( | 140 void AccessibilityFocusRingController::OnLayerChange( |
| 124 AccessibilityFocusRingController::LayerAnimationInfo* animation_info) { | 141 AccessibilityFocusRingController::LayerAnimationInfo* animation_info) { |
| 125 animation_info->change_time = base::TimeTicks::Now(); | 142 animation_info->change_time = base::TimeTicks::Now(); |
| 126 if (animation_info->opacity == 0) | 143 if (animation_info->opacity == 0) |
| 127 animation_info->start_time = animation_info->change_time; | 144 animation_info->start_time = animation_info->change_time; |
| 128 } | 145 } |
| 129 | 146 |
| 130 void AccessibilityFocusRingController::SetCursorRing( | 147 void AccessibilityFocusRingController::SetCursorRing( |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 | 483 |
| 467 ComputeOpacity(&caret_animation_info_, timestamp); | 484 ComputeOpacity(&caret_animation_info_, timestamp); |
| 468 if (caret_animation_info_.opacity == 0.0) { | 485 if (caret_animation_info_.opacity == 0.0) { |
| 469 caret_layer_.reset(); | 486 caret_layer_.reset(); |
| 470 return; | 487 return; |
| 471 } | 488 } |
| 472 caret_layer_->SetOpacity(caret_animation_info_.opacity); | 489 caret_layer_->SetOpacity(caret_animation_info_.opacity); |
| 473 } | 490 } |
| 474 | 491 |
| 475 } // namespace chromeos | 492 } // namespace chromeos |
| OLD | NEW |