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

Side by Side Diff: third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js

Issue 1046933003: Updates google-input-tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 ChromeOS IME Authors. All Rights Reserved. 1 // Copyright 2014 The ChromeOS IME Authors. All Rights Reserved.
2 // limitations under the License. 2 // limitations under the License.
3 // See the License for the specific language governing permissions and 3 // See the License for the specific language governing permissions and
4 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5 // distributed under the License is distributed on an "AS-IS" BASIS, 5 // distributed under the License is distributed on an "AS-IS" BASIS,
6 // Unless required by applicable law or agreed to in writing, software 6 // Unless required by applicable law or agreed to in writing, software
7 // 7 //
8 // http://www.apache.org/licenses/LICENSE-2.0 8 // http://www.apache.org/licenses/LICENSE-2.0
9 // 9 //
10 // You may obtain a copy of the License at 10 // You may obtain a copy of the License at
11 // you may not use this file except in compliance with the License. 11 // you may not use this file except in compliance with the License.
12 // Licensed under the Apache License, Version 2.0 (the "License"); 12 // Licensed under the Apache License, Version 2.0 (the "License");
13 // 13 //
14 goog.provide('i18n.input.chrome.inputview.KeyboardContainer'); 14 goog.provide('i18n.input.chrome.inputview.KeyboardContainer');
15 15
16 goog.require('goog.dom.TagName'); 16 goog.require('goog.dom.TagName');
17 goog.require('goog.dom.classlist'); 17 goog.require('goog.dom.classlist');
18 goog.require('goog.i18n.bidi'); 18 goog.require('goog.i18n.bidi');
19 goog.require('goog.ui.Container');
20 goog.require('i18n.input.chrome.inputview.Css'); 19 goog.require('i18n.input.chrome.inputview.Css');
21 goog.require('i18n.input.chrome.inputview.GlobalFlags'); 20 goog.require('i18n.input.chrome.inputview.GlobalFlags');
21 goog.require('i18n.input.chrome.inputview.elements.Element');
22 goog.require('i18n.input.chrome.inputview.elements.ElementType');
22 goog.require('i18n.input.chrome.inputview.elements.content.AltDataView'); 23 goog.require('i18n.input.chrome.inputview.elements.content.AltDataView');
23 goog.require('i18n.input.chrome.inputview.elements.content.CandidateView'); 24 goog.require('i18n.input.chrome.inputview.elements.content.CandidateView');
24 goog.require('i18n.input.chrome.inputview.elements.content.EmojiView'); 25 goog.require('i18n.input.chrome.inputview.elements.content.EmojiView');
25 goog.require('i18n.input.chrome.inputview.elements.content.ExpandedCandidateView '); 26 goog.require('i18n.input.chrome.inputview.elements.content.ExpandedCandidateView ');
26 goog.require('i18n.input.chrome.inputview.elements.content.GestureCanvasView'); 27 goog.require('i18n.input.chrome.inputview.elements.content.GestureCanvasView');
27 goog.require('i18n.input.chrome.inputview.elements.content.HandwritingView'); 28 goog.require('i18n.input.chrome.inputview.elements.content.HandwritingView');
28 goog.require('i18n.input.chrome.inputview.elements.content.KeysetView'); 29 goog.require('i18n.input.chrome.inputview.elements.content.KeysetView');
29 goog.require('i18n.input.chrome.inputview.elements.content.MenuView'); 30 goog.require('i18n.input.chrome.inputview.elements.content.MenuView');
30 goog.require('i18n.input.chrome.inputview.elements.content.SelectView'); 31 goog.require('i18n.input.chrome.inputview.elements.content.SelectView');
31 goog.require('i18n.input.chrome.inputview.elements.content.SwipeView'); 32 goog.require('i18n.input.chrome.inputview.elements.content.SwipeView');
32 goog.require('i18n.input.chrome.inputview.elements.content.VoiceView'); 33 goog.require('i18n.input.chrome.inputview.elements.content.VoiceView');
33 34
34 35
35 36
36 goog.scope(function() { 37 goog.scope(function() {
37 var Css = i18n.input.chrome.inputview.Css; 38 var Css = i18n.input.chrome.inputview.Css;
38 var EmojiView = i18n.input.chrome.inputview.elements.content.EmojiView; 39 var EmojiView = i18n.input.chrome.inputview.elements.content.EmojiView;
39 var HandwritingView = i18n.input.chrome.inputview.elements.content. 40 var HandwritingView = i18n.input.chrome.inputview.elements.content.
40 HandwritingView; 41 HandwritingView;
41 var KeysetView = i18n.input.chrome.inputview.elements.content.KeysetView; 42 var KeysetView = i18n.input.chrome.inputview.elements.content.KeysetView;
42 var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName;
43 var content = i18n.input.chrome.inputview.elements.content; 43 var content = i18n.input.chrome.inputview.elements.content;
44 var ElementType = i18n.input.chrome.inputview.elements.ElementType;
44 45
45 46
46 47
47 /** 48 /**
48 * The keyboard container. 49 * The keyboard container.
49 * 50 *
50 * @param {!i18n.input.chrome.inputview.Adapter} adapter . 51 * @param {!i18n.input.chrome.inputview.Adapter} adapter .
51 * @param {!i18n.input.chrome.sounds.SoundController} soundController . 52 * @param {!i18n.input.chrome.sounds.SoundController} soundController .
53 * @param {goog.events.EventTarget=} opt_eventTarget The parent event target.
52 * @constructor 54 * @constructor
53 * @extends {goog.ui.Container} 55 * @extends {i18n.input.chrome.inputview.elements.Element}
54 */ 56 */
57 // TODO(bshe): Move this file to elements/content
55 i18n.input.chrome.inputview.KeyboardContainer = 58 i18n.input.chrome.inputview.KeyboardContainer =
56 function(adapter, soundController) { 59 function(adapter, soundController, opt_eventTarget) {
57 goog.base(this); 60 goog.base(this, '', ElementType.KEYBOARD_CONTAINER_VIEW, opt_eventTarget);
58 61
59 /** @type {!content.CandidateView} */ 62 /** @type {!content.CandidateView} */
60 this.candidateView = new content.CandidateView( 63 this.candidateView = new content.CandidateView(
61 'candidateView', adapter, this); 64 'candidateView', adapter, this);
62 65
63 /** @type {!content.AltDataView} */ 66 /** @type {!content.AltDataView} */
64 this.altDataView = new content.AltDataView(this); 67 this.altDataView = new content.AltDataView(this);
65 68
66 /** @type {!content.SwipeView} */ 69 /** @type {!content.SwipeView} */
67 this.swipeView = new content.SwipeView(adapter, this); 70 this.swipeView = new content.SwipeView(adapter, this);
(...skipping 25 matching lines...) Expand all
93 this.keysetViewMap = {}; 96 this.keysetViewMap = {};
94 97
95 /** 98 /**
96 * The bus channel to communicate with background. 99 * The bus channel to communicate with background.
97 * 100 *
98 * @private {!i18n.input.chrome.inputview.Adapter} 101 * @private {!i18n.input.chrome.inputview.Adapter}
99 */ 102 */
100 this.adapter_ = adapter; 103 this.adapter_ = adapter;
101 }; 104 };
102 goog.inherits(i18n.input.chrome.inputview.KeyboardContainer, 105 goog.inherits(i18n.input.chrome.inputview.KeyboardContainer,
103 goog.ui.Container); 106 i18n.input.chrome.inputview.elements.Element);
104 var KeyboardContainer = i18n.input.chrome.inputview.KeyboardContainer; 107 var KeyboardContainer = i18n.input.chrome.inputview.KeyboardContainer;
105 108
106 109
107 /** @type {!KeysetView} */ 110 /** @type {!KeysetView} */
108 KeyboardContainer.prototype.currentKeysetView; 111 KeyboardContainer.prototype.currentKeysetView;
109 112
110 113
111 /** 114 /**
112 * The padding bottom of the whole keyboard. 115 * The padding bottom of the whole keyboard.
113 * 116 *
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 this.expandedCandidateView.render(this.wrapperDiv_); 154 this.expandedCandidateView.render(this.wrapperDiv_);
152 this.expandedCandidateView.setVisible(false); 155 this.expandedCandidateView.setVisible(false);
153 if (this.adapter_.isGestureTypingEnabled()) { 156 if (this.adapter_.isGestureTypingEnabled()) {
154 this.gestureCanvasView.render(this.wrapperDiv_); 157 this.gestureCanvasView.render(this.wrapperDiv_);
155 } 158 }
156 goog.dom.classlist.add(elem, Css.CONTAINER); 159 goog.dom.classlist.add(elem, Css.CONTAINER);
157 }; 160 };
158 161
159 162
160 /** @override */ 163 /** @override */
161 KeyboardContainer.prototype.enterDocument = function() {
162 goog.base(this, 'enterDocument');
163
164 this.setFocusable(false);
165 this.setFocusableChildrenAllowed(false);
166 };
167
168
169 /**
170 * Updates the whole keyboard.
171 */
172 KeyboardContainer.prototype.update = function() { 164 KeyboardContainer.prototype.update = function() {
173 this.currentKeysetView && this.currentKeysetView.update(); 165 this.currentKeysetView && this.currentKeysetView.update();
174 }; 166 };
175 167
176 168
177 /** 169 /**
178 * Adds a keyset view. 170 * Adds a keyset view.
179 * 171 *
180 * @param {!Object} keysetData . 172 * @param {!Object} keysetData .
181 * @param {!Object} layoutData . 173 * @param {!Object} layoutData .
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 for (var name in this.keysetViewMap) { 218 for (var name in this.keysetViewMap) {
227 var view = this.keysetViewMap[name]; 219 var view = this.keysetViewMap[name];
228 if (name == keyset) { 220 if (name == keyset) {
229 this.candidateView.setVisible(!view.disableCandidateView); 221 this.candidateView.setVisible(!view.disableCandidateView);
230 // Before setting view visible, activate it first, since activation may 222 // Before setting view visible, activate it first, since activation may
231 // change view keys. 223 // change view keys.
232 view.activate(rawKeyset); 224 view.activate(rawKeyset);
233 view.setVisible(true); 225 view.setVisible(true);
234 view.update(); 226 view.update();
235 if (view.spaceKey) { 227 if (view.spaceKey) {
236 view.spaceKey.updateTitle(title, !isPasswordBox); 228 view.spaceKey.updateTitle(title, !isPasswordBox &&
229 keyset != 'hwt' && keyset != 'emoji');
237 } 230 }
238 if (isA11yMode) { 231 if (isA11yMode) {
239 goog.dom.classlist.add(this.getElement(), Css.A11Y); 232 goog.dom.classlist.add(this.getElement(), Css.A11Y);
240 } 233 }
241 // If current raw keyset is changed, record it. 234 // If current raw keyset is changed, record it.
242 if (lastRawkeyset != rawKeyset) { 235 if (lastRawkeyset != rawKeyset) {
243 view.fromKeyset = lastRawkeyset; 236 view.fromKeyset = lastRawkeyset;
244 } 237 }
245 if (view instanceof HandwritingView) { 238 if (view instanceof HandwritingView) {
246 view.setLanguagecode(languageCode); 239 view.setLanguagecode(languageCode);
(...skipping 17 matching lines...) Expand all
264 257
265 258
266 /** 259 /**
267 * Resizes the whole keyboard. 260 * Resizes the whole keyboard.
268 * 261 *
269 * @param {number} width . 262 * @param {number} width .
270 * @param {number} height . 263 * @param {number} height .
271 * @param {number} widthPercent . 264 * @param {number} widthPercent .
272 * @param {number} candidateViewHeight . 265 * @param {number} candidateViewHeight .
273 */ 266 */
274 KeyboardContainer.prototype.resize = function(width, height, widthPercent, 267 KeyboardContainer.prototype.setContainerSize = function(width, height,
275 candidateViewHeight) { 268 widthPercent, candidateViewHeight) {
276 if (!this.currentKeysetView) { 269 if (!this.currentKeysetView) {
277 return; 270 return;
278 } 271 }
279 var elem = this.getElement(); 272 var elem = this.getElement();
280 273
281 var h = height; 274 var h = height;
282 var wrapperMargin = 0; 275 var wrapperMargin = 0;
283 if (this.currentKeysetView.isTabStyle()) { 276 if (this.currentKeysetView.isTabStyle()) {
284 h = height - 2 * KeyboardContainer.TAB_MARGIN_; 277 h = height - 2 * KeyboardContainer.TAB_MARGIN_;
285 wrapperMargin = KeyboardContainer.TAB_MARGIN_; 278 wrapperMargin = KeyboardContainer.TAB_MARGIN_;
286 } 279 }
287 this.wrapperDiv_.style.marginTop = this.wrapperDiv_.style.marginBottom = 280 this.wrapperDiv_.style.marginTop = this.wrapperDiv_.style.marginBottom =
288 wrapperMargin + 'px'; 281 wrapperMargin + 'px';
289 h -= KeyboardContainer.PADDING_BOTTOM_; 282 h -= KeyboardContainer.PADDING_BOTTOM_;
290 elem.style.paddingBottom = KeyboardContainer.PADDING_BOTTOM_ + 'px'; 283 elem.style.paddingBottom = KeyboardContainer.PADDING_BOTTOM_ + 'px';
291 284
292 var padding = Math.round((width - width * widthPercent) / 2); 285 var padding = Math.round((width - width * widthPercent) / 2);
293 var w = width - 2 * padding; 286 var w = width - 2 * padding;
294 287
295 // Reduce height if candidate view is enabled 288 // Reduce height if candidate view is enabled
296 h = this.currentKeysetView.disableCandidateView ? h : 289 h = this.currentKeysetView.disableCandidateView ? h :
297 h - candidateViewHeight; 290 h - candidateViewHeight;
298 291
292 var backspaceWeight = this.currentKeysetView.backspaceKey ?
293 this.currentKeysetView.backspaceKey.getParent().getWidthInWeight() : 0;
299 this.candidateView.setWidthInWeight( 294 this.candidateView.setWidthInWeight(
300 this.currentKeysetView.getWidthInWeight()); 295 this.currentKeysetView.getWidthInWeight(), backspaceWeight);
301 this.candidateView.resize(w, candidateViewHeight); 296 this.candidateView.resize(w, candidateViewHeight);
302 this.expandedCandidateView.resize(w, h); 297 this.expandedCandidateView.resize(w, h);
303 if (i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { 298 if (i18n.input.chrome.inputview.GlobalFlags.isQPInputView) {
304 var candidateElem = this.candidateView.getElement(); 299 var candidateElem = this.candidateView.getElement();
305 candidateElem.style.paddingLeft = candidateElem.style.paddingRight = 300 candidateElem.style.paddingLeft = candidateElem.style.paddingRight =
306 padding + 'px'; 301 padding + 'px';
307 this.currentKeysetView.resize(width, h, widthPercent); 302 this.currentKeysetView.resize(width, h, widthPercent);
308 var expandViewElem = this.expandedCandidateView.getElement(); 303 var expandViewElem = this.expandedCandidateView.getElement();
309 expandViewElem.style.marginLeft = expandViewElem.style.marginRight = 304 expandViewElem.style.marginLeft = expandViewElem.style.marginRight =
310 padding + 'px'; 305 padding + 'px';
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 /** 364 /**
370 * Cleans the stokes. 365 * Cleans the stokes.
371 */ 366 */
372 KeyboardContainer.prototype.cleanStroke = function() { 367 KeyboardContainer.prototype.cleanStroke = function() {
373 if (this.currentKeysetView) { 368 if (this.currentKeysetView) {
374 this.currentKeysetView.cleanStroke(); 369 this.currentKeysetView.cleanStroke();
375 } 370 }
376 }; 371 };
377 372
378 }); // goog.scope 373 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698