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

Side by Side Diff: ui/keyboard/resources/elements/kb-altkey-data.js

Issue 730573002: Remove dead code for system VK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
(Empty)
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
3 // found in the LICENSE file.
4
5 (function() {
6 var altKeys = {};
7 var idMap = {};
8
9 /**
10 * Creates a unique identifier based on the key provided.
11 * This identifier is of the form 'idHASH' where HASH is
12 * the concatenation of the keycodes of every character in the string.
13 * @param {string} key Key for which we want an identifier.
14 * @return {string} The unique id for key.
15 */
16 function createId(key) {
17 var hash = key.split('').map(
18 // Returns the key code for the character.
19 function(character) {
20 return character.charCodeAt(0);
21 }
22 ).join('');
23 return 'id' + hash;
24 }
25
26 Polymer('kb-altkey-data', {
27
28 /**
29 * Retrieves a list of alternative keys to display on a long-press.
30 * @param {string} char The base character.
31 * @param {boolean=} opt_force If true, force the creation of a list
32 * even if empty. Used when constructing a set of alternates for keys
33 * with hintTexts.
34 * @return {?{id: string, list: string}}
35 */
36 getAltkeys: function(char, opt_force) {
37 var id = idMap[char];
38 if (id) {
39 return {
40 'id': id,
41 'keys': altKeys[id]
42 };
43 }
44 if (opt_force) {
45 return {
46 'id': createId(char),
47 'keys': []
48 };
49 }
50 },
51
52 /**
53 * Registers lists of alternative keys displayed on a long-press.
54 * @param {Object.<string, Array.<string>>} data Mapping of characters to
55 * lists of alternatives.
56 */
57 registerAltkeys: function(data) {
58 for (var key in data) {
59 var id = idMap[key];
60 if (!id)
61 idMap[key] = id = createId(key);
62 altKeys[id] = data[key];
63 }
64 },
65
66 /**
67 * Creates a list of alternate candidates to display in a popup on a
68 * long-press.
69 * @param {string} char The base character.
70 * @param {number} maxLeftOffset Limits the number of candidates
71 * displayed to the left of the base character to prevent running
72 * past the left edge of the keyboard.
73 * @param {number} maxRightOffset Limits the number of candidates
74 * displayed to the right of the base character to prvent running
75 * past the right edge of the keyboard.
76 * @param {string=} opt_additionalKeys Optional list of additional keys
77 * to include in the candidates list.
78 */
79 createAltkeySet: function(char,
80 maxLeftOffset,
81 maxRightOffset,
82 opt_additionalKeys) {
83 var altKeys = this.getAltkeys(char, true /* forced */);
84 if (altKeys) {
85 var list = altKeys.keys;
86 if (opt_additionalKeys)
87 list = opt_additionalKeys.split('').concat(list);
88 list = [char].concat(list);
89
90 var set = document.createElement('kb-altkey-set');
91 // Candiates are approximately in decreasing order of usage, and are
92 // arranged in a single row in the popup display. To reduce the
93 // expected length of the drag gesture for selecting a candidate,
94 // more likely candidates are placed in the center of the popup,
95 // which is achieved by alternately appending and prepending
96 // candiates in the alternatives popup.
97 var prepend = false;
98 var leftOffset = 0;
99 var rightOffset = 0;
100 for (var i = 0; i < list.length; i++) {
101 var key = document.createElement('kb-altkey');
102 key.textContent = list[i];
103 if (prepend) {
104 set.insertBefore(key, set.firstChild);
105 leftOffset++;
106 } else {
107 set.appendChild(key);
108 rightOffset++;
109 }
110 prepend = !prepend;
111 // Verify that there is room remaining for an additional character.
112 if (leftOffset == maxLeftOffset && rightOffset == maxRightOffset)
113 break;
114 if (leftOffset == maxLeftOffset)
115 prepend = false;
116 else if (rightOffset == maxRightOffset)
117 prepend = true;
118 }
119 set.id = altKeys.id;
120 set.offset = leftOffset;
121 return set;
122 }
123 },
124
125 });
126 })();
OLDNEW
« no previous file with comments | « ui/keyboard/resources/elements/kb-altkey-data.html ('k') | ui/keyboard/resources/elements/kb-altkey-set.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698