| 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 has_focus_ring_color_ = true; |
| 85 focus_ring_color_ = color; |
| 86 UpdateFocusRingsFromFocusRects(); |
| 87 } |
| 88 |
| 89 void AccessibilityFocusRingController::ResetFocusRingColor() { |
| 90 has_focus_ring_color_ = false; |
| 91 UpdateFocusRingsFromFocusRects(); |
| 92 } |
| 93 |
| 83 void AccessibilityFocusRingController::SetFocusRing( | 94 void AccessibilityFocusRingController::SetFocusRing( |
| 84 const std::vector<gfx::Rect>& rects, | 95 const std::vector<gfx::Rect>& rects, |
| 85 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) { | 96 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) { |
| 86 focus_ring_behavior_ = focus_ring_behavior; | 97 focus_ring_behavior_ = focus_ring_behavior; |
| 87 OnLayerChange(&focus_animation_info_); | 98 OnLayerChange(&focus_animation_info_); |
| 88 focus_rects_ = rects; | 99 focus_rects_ = rects; |
| 89 UpdateFocusRingsFromFocusRects(); | 100 UpdateFocusRingsFromFocusRects(); |
| 90 } | 101 } |
| 91 | 102 |
| 92 void AccessibilityFocusRingController::HideFocusRing() { | 103 void AccessibilityFocusRingController::HideFocusRing() { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 111 focus_layers_[0]->CanAnimate()) { | 122 focus_layers_[0]->CanAnimate()) { |
| 112 // In PERSIST mode, animate the first ring to its destination | 123 // In PERSIST mode, animate the first ring to its destination |
| 113 // location, then set the rest of the rings directly. | 124 // location, then set the rest of the rings directly. |
| 114 for (size_t i = 1; i < focus_rings_.size(); ++i) | 125 for (size_t i = 1; i < focus_rings_.size(); ++i) |
| 115 focus_layers_[i]->Set(focus_rings_[i]); | 126 focus_layers_[i]->Set(focus_rings_[i]); |
| 116 } else { | 127 } else { |
| 117 // In FADE mode, set all focus rings to their destination location. | 128 // In FADE mode, set all focus rings to their destination location. |
| 118 for (size_t i = 0; i < focus_rings_.size(); ++i) | 129 for (size_t i = 0; i < focus_rings_.size(); ++i) |
| 119 focus_layers_[i]->Set(focus_rings_[i]); | 130 focus_layers_[i]->Set(focus_rings_[i]); |
| 120 } | 131 } |
| 132 |
| 133 for (size_t i = 0; i < focus_rings_.size(); ++i) { |
| 134 if (has_focus_ring_color_) |
| 135 focus_layers_[i]->SetColor(focus_ring_color_); |
| 136 else |
| 137 focus_layers_[i]->ResetColor(); |
| 138 } |
| 121 } | 139 } |
| 122 | 140 |
| 123 void AccessibilityFocusRingController::OnLayerChange( | 141 void AccessibilityFocusRingController::OnLayerChange( |
| 124 AccessibilityFocusRingController::LayerAnimationInfo* animation_info) { | 142 AccessibilityFocusRingController::LayerAnimationInfo* animation_info) { |
| 125 animation_info->change_time = base::TimeTicks::Now(); | 143 animation_info->change_time = base::TimeTicks::Now(); |
| 126 if (animation_info->opacity == 0) | 144 if (animation_info->opacity == 0) |
| 127 animation_info->start_time = animation_info->change_time; | 145 animation_info->start_time = animation_info->change_time; |
| 128 } | 146 } |
| 129 | 147 |
| 130 void AccessibilityFocusRingController::SetCursorRing( | 148 void AccessibilityFocusRingController::SetCursorRing( |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 | 485 |
| 468 ComputeOpacity(&caret_animation_info_, timestamp); | 486 ComputeOpacity(&caret_animation_info_, timestamp); |
| 469 if (caret_animation_info_.opacity == 0.0) { | 487 if (caret_animation_info_.opacity == 0.0) { |
| 470 caret_layer_.reset(); | 488 caret_layer_.reset(); |
| 471 return; | 489 return; |
| 472 } | 490 } |
| 473 caret_layer_->SetOpacity(caret_animation_info_.opacity); | 491 caret_layer_->SetOpacity(caret_animation_info_.opacity); |
| 474 } | 492 } |
| 475 | 493 |
| 476 } // namespace chromeos | 494 } // namespace chromeos |
| OLD | NEW |