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 /** | 5 /** |
6 * @fileoverview An interface (and partial implementation) for the basic | 6 * @fileoverview An interface (and partial implementation) for the basic |
7 * traversal through some piece of the dom. | 7 * traversal through some piece of the dom. |
8 * For each different ordered (either in dom or by any other metric) set | 8 * For each different ordered (either in dom or by any other metric) set |
9 * of "valid selections" (just set from now on), a new | 9 * of "valid selections" (just set from now on), a new |
10 * base class should be defined that implements this interface. For example, | 10 * base class should be defined that implements this interface. For example, |
(...skipping 28 matching lines...) Expand all Loading... |
39 | 39 |
40 | 40 |
41 goog.provide('cvox.AbstractWalker'); | 41 goog.provide('cvox.AbstractWalker'); |
42 | 42 |
43 goog.require('cvox.CursorSelection'); | 43 goog.require('cvox.CursorSelection'); |
44 goog.require('cvox.NavBraille'); | 44 goog.require('cvox.NavBraille'); |
45 | 45 |
46 /** | 46 /** |
47 * @constructor | 47 * @constructor |
48 */ | 48 */ |
49 cvox.AbstractWalker = function() { | 49 cvox.AbstractWalker = function() {}; |
50 }; | |
51 | 50 |
52 | 51 |
53 /** | 52 /** |
54 * This takes a valid CursorSelection and returns the directed-next | 53 * This takes a valid CursorSelection and returns the directed-next |
55 * valid CursorSelection in the dom, or null. For example, if the walker | 54 * valid CursorSelection in the dom, or null. For example, if the walker |
56 * navigates across sentences, this would return the selection of the sentence | 55 * navigates across sentences, this would return the selection of the sentence |
57 * following the selection passed in. If sel is at the "end" of a section, | 56 * following the selection passed in. If sel is at the "end" of a section, |
58 * this method may return null. In the example above, if we try to next on | 57 * this method may return null. In the example above, if we try to next on |
59 * the last sentence in the dom, we would return null. | 58 * the last sentence in the dom, we would return null. |
60 * Note that sel must be a valid selection. Undefined behavior if it isn't. | 59 * Note that sel must be a valid selection. Undefined behavior if it isn't. |
(...skipping 18 matching lines...) Expand all Loading... |
79 * Syncs and returns the first or last valid, non-null selection in the | 78 * Syncs and returns the first or last valid, non-null selection in the |
80 * this walker's linearization of the DOM. | 79 * this walker's linearization of the DOM. |
81 * @param {{reversed: (undefined|boolean)}=} kwargs Extra arguments. | 80 * @param {{reversed: (undefined|boolean)}=} kwargs Extra arguments. |
82 * reversed: If true, syncs to the end and returns a reversed selection. | 81 * reversed: If true, syncs to the end and returns a reversed selection. |
83 * False by default. | 82 * False by default. |
84 * @return {!cvox.CursorSelection} The valid selection. | 83 * @return {!cvox.CursorSelection} The valid selection. |
85 */ | 84 */ |
86 cvox.AbstractWalker.prototype.begin = function(kwargs) { | 85 cvox.AbstractWalker.prototype.begin = function(kwargs) { |
87 kwargs = kwargs || {reversed: false}; | 86 kwargs = kwargs || {reversed: false}; |
88 | 87 |
89 return /** @type {!cvox.CursorSelection} */ (this.sync( | 88 return /** @type {!cvox.CursorSelection} */ ( |
90 cvox.CursorSelection.fromBody().setReversed(kwargs.reversed))); | 89 this.sync(cvox.CursorSelection.fromBody().setReversed(kwargs.reversed))); |
91 }; | 90 }; |
92 | 91 |
93 | 92 |
94 /** | 93 /** |
95 * This takes an arbitrary CursorSelection and returns a valid CursorSelection, | 94 * This takes an arbitrary CursorSelection and returns a valid CursorSelection, |
96 * or null. For example, if the walker navigates across | 95 * or null. For example, if the walker navigates across |
97 * text nodes, and the selection passed in is for a single character within a | 96 * text nodes, and the selection passed in is for a single character within a |
98 * larger text node, this method should return a text node. No restrictions | 97 * larger text node, this method should return a text node. No restrictions |
99 * are made as to exactly what selection should be returned, but it should be | 98 * are made as to exactly what selection should be returned, but it should be |
100 * something "reasonable", and from the user's point of view, "close" to the | 99 * something "reasonable", and from the user's point of view, "close" to the |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 return this[name](sel); | 167 return this[name](sel); |
169 } | 168 } |
170 return null; | 169 return null; |
171 }; | 170 }; |
172 | 171 |
173 /** | 172 /** |
174 * Returns message string of the walker's granularity. | 173 * Returns message string of the walker's granularity. |
175 * @return {string} The message string. | 174 * @return {string} The message string. |
176 */ | 175 */ |
177 cvox.AbstractWalker.prototype.getGranularityMsg = goog.abstractMethod; | 176 cvox.AbstractWalker.prototype.getGranularityMsg = goog.abstractMethod; |
OLD | NEW |