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/resources/chromeos/chromevox/common/spannable.js

Issue 1039703002: Make contracted braille input work in more contexts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@docs2
Patch Set: Rebase Created 5 years, 7 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
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 /** 5 /**
6 * @fileoverview Class which allows construction of annotated strings. 6 * @fileoverview Class which allows construction of annotated strings.
7 */ 7 */
8 8
9 goog.provide('cvox.Spannable'); 9 goog.provide('cvox.Spannable');
10 10
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 * @param {*} value Annotation. 62 * @param {*} value Annotation.
63 * @param {number} start Starting index (inclusive). 63 * @param {number} start Starting index (inclusive).
64 * @param {number} end Ending index (exclusive). 64 * @param {number} end Ending index (exclusive).
65 */ 65 */
66 cvox.Spannable.prototype.setSpan = function(value, start, end) { 66 cvox.Spannable.prototype.setSpan = function(value, start, end) {
67 this.removeSpan(value); 67 this.removeSpan(value);
68 if (0 <= start && start <= end && end <= this.string_.length) { 68 if (0 <= start && start <= end && end <= this.string_.length) {
69 // Zero-length spans are explicitly allowed, because it is possible to 69 // Zero-length spans are explicitly allowed, because it is possible to
70 // query for position by annotation as well as the reverse. 70 // query for position by annotation as well as the reverse.
71 this.spans_.push({ value: value, start: start, end: end }); 71 this.spans_.push({ value: value, start: start, end: end });
72 this.spans_.sort(function(a, b) {
73 var ret = a.start - b.start;
74 if (ret == 0)
75 ret = a.end - b.end;
76 return ret;
77 });
72 } else { 78 } else {
73 throw new RangeError('span out of range (start=' + start + 79 throw new RangeError('span out of range (start=' + start +
74 ', end=' + end + ', len=' + this.string_.length + ')'); 80 ', end=' + end + ', len=' + this.string_.length + ')');
75 } 81 }
76 }; 82 };
77 83
78 84
79 /** 85 /**
80 * Removes a span. 86 * Removes a span.
81 * @param {*} value Annotation. 87 * @param {*} value Annotation.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 for (var i = 0; i < this.spans_.length; i++) { 140 for (var i = 0; i < this.spans_.length; i++) {
135 var span = this.spans_[i]; 141 var span = this.spans_[i];
136 if (span.value instanceof constructor) { 142 if (span.value instanceof constructor) {
137 return span.value; 143 return span.value;
138 } 144 }
139 } 145 }
140 }; 146 };
141 147
142 /** 148 /**
143 * Returns all span values which are an instance of a given constructor. 149 * Returns all span values which are an instance of a given constructor.
150 * Spans are returned in the order of their starting index and ending index
151 * for spans with equals tarting indices.
144 * @param {!Function} constructor Constructor. 152 * @param {!Function} constructor Constructor.
145 * @return {!Array<Object>} Array of object. 153 * @return {!Array<Object>} Array of object.
146 */ 154 */
147 cvox.Spannable.prototype.getSpansInstanceOf = function(constructor) { 155 cvox.Spannable.prototype.getSpansInstanceOf = function(constructor) {
148 var ret = []; 156 var ret = [];
149 for (var i = 0; i < this.spans_.length; i++) { 157 for (var i = 0; i < this.spans_.length; i++) {
150 var span = this.spans_[i]; 158 var span = this.spans_[i];
151 if (span.value instanceof constructor) { 159 if (span.value instanceof constructor) {
152 ret.push(span.value); 160 ret.push(span.value);
153 } 161 }
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 * @private 425 * @private
418 */ 426 */
419 cvox.Spannable.SerializedSpan_; 427 cvox.Spannable.SerializedSpan_;
420 428
421 /** 429 /**
422 * Maps type names to serialization info objects. 430 * Maps type names to serialization info objects.
423 * @type {Object<string, cvox.Spannable.SerializeInfo_>} 431 * @type {Object<string, cvox.Spannable.SerializeInfo_>}
424 * @private 432 * @private
425 */ 433 */
426 cvox.Spannable.serializableSpansByName_ = {}; 434 cvox.Spannable.serializableSpansByName_ = {};
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698