Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc

Issue 2388093004: Explicitly show and hide accessible rings rather than using offscreen coords. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 81
82 void AccessibilityFocusRingController::SetFocusRing( 82 void AccessibilityFocusRingController::SetFocusRing(
83 const std::vector<gfx::Rect>& rects, 83 const std::vector<gfx::Rect>& rects,
84 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) { 84 AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) {
85 focus_ring_behavior_ = focus_ring_behavior; 85 focus_ring_behavior_ = focus_ring_behavior;
86 OnLayerChange(&focus_animation_info_); 86 OnLayerChange(&focus_animation_info_);
87 focus_rects_ = rects; 87 focus_rects_ = rects;
88 UpdateFocusRingsFromFocusRects(); 88 UpdateFocusRingsFromFocusRects();
89 } 89 }
90 90
91 void AccessibilityFocusRingController::HideFocusRing() {
92 focus_rects_.clear();
93 UpdateFocusRingsFromFocusRects();
94 }
95
91 void AccessibilityFocusRingController::UpdateFocusRingsFromFocusRects() { 96 void AccessibilityFocusRingController::UpdateFocusRingsFromFocusRects() {
92 previous_focus_rings_.swap(focus_rings_); 97 previous_focus_rings_.swap(focus_rings_);
93 focus_rings_.clear(); 98 focus_rings_.clear();
94 RectsToRings(focus_rects_, &focus_rings_); 99 RectsToRings(focus_rects_, &focus_rings_);
95 focus_layers_.resize(focus_rings_.size()); 100 focus_layers_.resize(focus_rings_.size());
96 if (focus_rings_.empty()) 101 if (focus_rings_.empty())
97 return; 102 return;
98 103
99 for (size_t i = 0; i < focus_rings_.size(); ++i) { 104 for (size_t i = 0; i < focus_rings_.size(); ++i) {
100 if (!focus_layers_[i]) 105 if (!focus_layers_[i])
(...skipping 25 matching lines...) Expand all
126 cursor_location_ = location; 131 cursor_location_ = location;
127 if (!cursor_layer_) { 132 if (!cursor_layer_) {
128 cursor_layer_.reset(new AccessibilityCursorRingLayer( 133 cursor_layer_.reset(new AccessibilityCursorRingLayer(
129 this, kCursorRingColorRed, kCursorRingColorGreen, 134 this, kCursorRingColorRed, kCursorRingColorGreen,
130 kCursorRingColorBlue)); 135 kCursorRingColorBlue));
131 } 136 }
132 cursor_layer_->Set(location); 137 cursor_layer_->Set(location);
133 OnLayerChange(&cursor_animation_info_); 138 OnLayerChange(&cursor_animation_info_);
134 } 139 }
135 140
141 void AccessibilityFocusRingController::HideCursorRing() {
142 cursor_layer_.reset();
143 }
144
136 void AccessibilityFocusRingController::SetCaretRing( 145 void AccessibilityFocusRingController::SetCaretRing(
137 const gfx::Point& location) { 146 const gfx::Point& location) {
138 caret_location_ = location; 147 caret_location_ = location;
139 148
140 if (!caret_layer_) { 149 if (!caret_layer_) {
141 caret_layer_.reset(new AccessibilityCursorRingLayer( 150 caret_layer_.reset(new AccessibilityCursorRingLayer(
142 this, kCaretRingColorRed, kCaretRingColorGreen, kCaretRingColorBlue)); 151 this, kCaretRingColorRed, kCaretRingColorGreen, kCaretRingColorBlue));
143 } 152 }
144 153
145 caret_layer_->Set(location); 154 caret_layer_->Set(location);
146 OnLayerChange(&caret_animation_info_); 155 OnLayerChange(&caret_animation_info_);
147 } 156 }
148 157
158 void AccessibilityFocusRingController::HideCaretRing() {
159 caret_layer_.reset();
160 }
161
149 void AccessibilityFocusRingController::SetNoFadeForTesting() { 162 void AccessibilityFocusRingController::SetNoFadeForTesting() {
150 focus_animation_info_.fade_in_time = base::TimeDelta(); 163 focus_animation_info_.fade_in_time = base::TimeDelta();
151 focus_animation_info_.fade_out_time = base::TimeDelta::FromHours(1); 164 focus_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
152 cursor_animation_info_.fade_in_time = base::TimeDelta(); 165 cursor_animation_info_.fade_in_time = base::TimeDelta();
153 cursor_animation_info_.fade_out_time = base::TimeDelta::FromHours(1); 166 cursor_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
154 caret_animation_info_.fade_in_time = base::TimeDelta(); 167 caret_animation_info_.fade_in_time = base::TimeDelta();
155 caret_animation_info_.fade_out_time = base::TimeDelta::FromHours(1); 168 caret_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
156 } 169 }
157 170
158 void AccessibilityFocusRingController::RectsToRings( 171 void AccessibilityFocusRingController::RectsToRings(
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 466
454 ComputeOpacity(&caret_animation_info_, timestamp); 467 ComputeOpacity(&caret_animation_info_, timestamp);
455 if (caret_animation_info_.opacity == 0.0) { 468 if (caret_animation_info_.opacity == 0.0) {
456 caret_layer_.reset(); 469 caret_layer_.reset();
457 return; 470 return;
458 } 471 }
459 caret_layer_->SetOpacity(caret_animation_info_.opacity); 472 caret_layer_->SetOpacity(caret_animation_info_.opacity);
460 } 473 }
461 474
462 } // namespace chromeos 475 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698