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

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

Issue 828063007: Uprev Google Input Tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update extensions schema. Created 5 years, 10 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.ui.Container'); 19 goog.require('goog.ui.Container');
19 goog.require('i18n.input.chrome.inputview.Css'); 20 goog.require('i18n.input.chrome.inputview.Css');
20 goog.require('i18n.input.chrome.inputview.elements.content.AltDataView'); 21 goog.require('i18n.input.chrome.inputview.elements.content.AltDataView');
21 goog.require('i18n.input.chrome.inputview.elements.content.CandidateView'); 22 goog.require('i18n.input.chrome.inputview.elements.content.CandidateView');
22 goog.require('i18n.input.chrome.inputview.elements.content.EmojiView'); 23 goog.require('i18n.input.chrome.inputview.elements.content.EmojiView');
23 goog.require('i18n.input.chrome.inputview.elements.content.ExpandedCandidateView '); 24 goog.require('i18n.input.chrome.inputview.elements.content.ExpandedCandidateView ');
24 goog.require('i18n.input.chrome.inputview.elements.content.HandwritingView'); 25 goog.require('i18n.input.chrome.inputview.elements.content.HandwritingView');
25 goog.require('i18n.input.chrome.inputview.elements.content.KeysetView'); 26 goog.require('i18n.input.chrome.inputview.elements.content.KeysetView');
26 goog.require('i18n.input.chrome.inputview.elements.content.MenuView'); 27 goog.require('i18n.input.chrome.inputview.elements.content.MenuView');
28 goog.require('i18n.input.chrome.inputview.elements.content.VoiceView');
27 29
28 30
29 31
30 goog.scope(function() { 32 goog.scope(function() {
31 var Css = i18n.input.chrome.inputview.Css; 33 var Css = i18n.input.chrome.inputview.Css;
32 var EmojiView = i18n.input.chrome.inputview.elements.content.EmojiView; 34 var EmojiView = i18n.input.chrome.inputview.elements.content.EmojiView;
33 var HandwritingView = i18n.input.chrome.inputview.elements.content. 35 var HandwritingView = i18n.input.chrome.inputview.elements.content.
34 HandwritingView; 36 HandwritingView;
35 var KeysetView = i18n.input.chrome.inputview.elements.content.KeysetView; 37 var KeysetView = i18n.input.chrome.inputview.elements.content.KeysetView;
36 var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName; 38 var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName;
37 var content = i18n.input.chrome.inputview.elements.content; 39 var content = i18n.input.chrome.inputview.elements.content;
38 40
39 41
40 42
41 /** 43 /**
42 * The keyboard container. 44 * The keyboard container.
43 * 45 *
44 * @param {i18n.input.chrome.inputview.Adapter=} opt_adapter . 46 * @param {!i18n.input.chrome.inputview.Adapter} adapter .
45 * @constructor 47 * @constructor
46 * @extends {goog.ui.Container} 48 * @extends {goog.ui.Container}
47 */ 49 */
48 i18n.input.chrome.inputview.KeyboardContainer = function(opt_adapter) { 50 i18n.input.chrome.inputview.KeyboardContainer = function(adapter) {
49 goog.base(this); 51 goog.base(this);
50 52
51 /** @type {!content.CandidateView} */ 53 /** @type {!content.CandidateView} */
52 this.candidateView = new content.CandidateView('candidateView', this); 54 this.candidateView = new content.CandidateView(
55 'candidateView', adapter, this);
53 56
54 /** @type {!content.AltDataView} */ 57 /** @type {!content.AltDataView} */
55 this.altDataView = new content.AltDataView(this); 58 this.altDataView = new content.AltDataView(this);
56 59
57 /** @type {!content.MenuView} */ 60 /** @type {!content.MenuView} */
58 this.menuView = new content.MenuView(this); 61 this.menuView = new content.MenuView(this);
59 62
63 /** @type {!content.VoiceView} */
64 this.voiceView = new content.VoiceView(this, adapter);
65
60 /** @type {!content.ExpandedCandidateView} */ 66 /** @type {!content.ExpandedCandidateView} */
61 this.expandedCandidateView = new content.ExpandedCandidateView(this); 67 this.expandedCandidateView = new content.ExpandedCandidateView(this);
62 68
63 /** 69 /**
64 * The map of the KeysetViews. 70 * The map of the KeysetViews.
65 * Key: keyboard code. 71 * Key: keyboard code.
66 * Value: The view object. 72 * Value: The view object.
67 * 73 *
68 * @type {!Object.<string, !KeysetView>} 74 * @type {!Object.<string, !KeysetView>}
69 */ 75 */
70 this.keysetViewMap = {}; 76 this.keysetViewMap = {};
71 77
72 /** 78 /**
73 * The bus channel to communicate with background. 79 * The bus channel to communicate with background.
74 * 80 *
75 * @private {i18n.input.chrome.inputview.Adapter} 81 * @private {!i18n.input.chrome.inputview.Adapter}
76 */ 82 */
77 this.adapter_ = opt_adapter || null; 83 this.adapter_ = adapter;
78 }; 84 };
79 goog.inherits(i18n.input.chrome.inputview.KeyboardContainer, 85 goog.inherits(i18n.input.chrome.inputview.KeyboardContainer,
80 goog.ui.Container); 86 goog.ui.Container);
81 var KeyboardContainer = i18n.input.chrome.inputview.KeyboardContainer; 87 var KeyboardContainer = i18n.input.chrome.inputview.KeyboardContainer;
82 88
83 89
84 /** @type {!KeysetView} */ 90 /** @type {!KeysetView} */
85 KeyboardContainer.prototype.currentKeysetView; 91 KeyboardContainer.prototype.currentKeysetView;
86 92
87 93
(...skipping 26 matching lines...) Expand all
114 KeyboardContainer.prototype.createDom = function() { 120 KeyboardContainer.prototype.createDom = function() {
115 goog.base(this, 'createDom'); 121 goog.base(this, 'createDom');
116 122
117 var elem = this.getElement(); 123 var elem = this.getElement();
118 this.wrapperDiv_ = this.getDomHelper().createDom( 124 this.wrapperDiv_ = this.getDomHelper().createDom(
119 goog.dom.TagName.DIV, Css.WRAPPER); 125 goog.dom.TagName.DIV, Css.WRAPPER);
120 this.candidateView.render(this.wrapperDiv_); 126 this.candidateView.render(this.wrapperDiv_);
121 this.getDomHelper().appendChild(elem, this.wrapperDiv_); 127 this.getDomHelper().appendChild(elem, this.wrapperDiv_);
122 this.altDataView.render(); 128 this.altDataView.render();
123 this.menuView.render(); 129 this.menuView.render();
130 this.voiceView.render();
131 this.voiceView.setVisible(false);
124 this.expandedCandidateView.render(this.wrapperDiv_); 132 this.expandedCandidateView.render(this.wrapperDiv_);
125 this.expandedCandidateView.setVisible(false); 133 this.expandedCandidateView.setVisible(false);
126 goog.dom.classlist.add(elem, Css.CONTAINER); 134 goog.dom.classlist.add(elem, Css.CONTAINER);
127 }; 135 };
128 136
129 137
130 /** @override */ 138 /** @override */
131 KeyboardContainer.prototype.enterDocument = function() { 139 KeyboardContainer.prototype.enterDocument = function() {
132 goog.base(this, 'enterDocument'); 140 goog.base(this, 'enterDocument');
133 141
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 if (this.currentKeysetView.isTabStyle()) { 261 if (this.currentKeysetView.isTabStyle()) {
254 h = height - 2 * KeyboardContainer.TAB_MARGIN_; 262 h = height - 2 * KeyboardContainer.TAB_MARGIN_;
255 wrapperMargin = KeyboardContainer.TAB_MARGIN_; 263 wrapperMargin = KeyboardContainer.TAB_MARGIN_;
256 } 264 }
257 this.wrapperDiv_.style.marginTop = this.wrapperDiv_.style.marginBottom = 265 this.wrapperDiv_.style.marginTop = this.wrapperDiv_.style.marginBottom =
258 wrapperMargin + 'px'; 266 wrapperMargin + 'px';
259 h -= KeyboardContainer.PADDING_BOTTOM_; 267 h -= KeyboardContainer.PADDING_BOTTOM_;
260 elem.style.paddingBottom = KeyboardContainer.PADDING_BOTTOM_ + 'px'; 268 elem.style.paddingBottom = KeyboardContainer.PADDING_BOTTOM_ + 'px';
261 269
262 var padding = Math.round((width - width * widthPercent) / 2); 270 var padding = Math.round((width - width * widthPercent) / 2);
263 elem.style.paddingLeft = elem.style.paddingRight = padding + 'px';
264
265 var w = width - 2 * padding; 271 var w = width - 2 * padding;
266 272
267 // Reduce height if candidate view is enabled 273 // Reduce height if candidate view is enabled
268 h = this.currentKeysetView.disableCandidateView ? h : 274 h = this.currentKeysetView.disableCandidateView ? h :
269 h - candidateViewHeight; 275 h - candidateViewHeight;
270 276
271 this.candidateView.setWidthInWeight( 277 this.candidateView.setWidthInWeight(
272 this.currentKeysetView.getWidthInWeight()); 278 this.currentKeysetView.getWidthInWeight());
279 var candidateElem = this.candidateView.getElement();
280 candidateElem.style.paddingLeft = candidateElem.style.paddingRight =
281 padding + 'px';
273 this.candidateView.resize(w, candidateViewHeight); 282 this.candidateView.resize(w, candidateViewHeight);
274 this.currentKeysetView.resize(w, h); 283 this.currentKeysetView.resize(w, h);
284 var currentKeysetViewElem = this.currentKeysetView.getElement();
285 currentKeysetViewElem.style.paddingLeft = currentKeysetViewElem.style.
286 paddingRight = padding + 'px';
275 this.expandedCandidateView.resize(w, h); 287 this.expandedCandidateView.resize(w, h);
288 if (this.expandedCandidateView.isVisible()) {
289 // Closes the expanded candidate view if it's visible.
290 // This is to avoid mis-layout issue for the expanded candidate when screen
291 // is rotated.
292 this.expandedCandidateView.state = content.ExpandedCandidateView.State.NONE;
293 this.candidateView.switchToIcon(
294 content.CandidateView.IconType.EXPAND_CANDIDATES, true);
295 this.expandedCandidateView.setVisible(false);
296 this.currentKeysetView.setVisible(true);
297 }
276 this.altDataView.resize(screen.width, height); 298 this.altDataView.resize(screen.width, height);
277 this.menuView.resize(screen.width, height); 299 this.menuView.resize(screen.width, height);
300 this.voiceView.resize(w + padding, height);
278 }; 301 };
279 302
280 303
281 /** @override */ 304 /** @override */
282 KeyboardContainer.prototype.disposeInternal = function() { 305 KeyboardContainer.prototype.disposeInternal = function() {
283 goog.dispose(this.candidateView); 306 goog.dispose(this.candidateView);
284 goog.dispose(this.altDataView); 307 goog.dispose(this.altDataView);
285 goog.dispose(this.menuView); 308 goog.dispose(this.menuView);
309 goog.dispose(this.voiceView);
286 for (var key in this.keysetViewMap) { 310 for (var key in this.keysetViewMap) {
287 goog.dispose(this.keysetViewMap[key]); 311 goog.dispose(this.keysetViewMap[key]);
288 } 312 }
289 313
290 goog.base(this, 'disposeInternal'); 314 goog.base(this, 'disposeInternal');
291 }; 315 };
292 316
293 317
294 /** 318 /**
295 * Whether there are strokes on canvas. 319 * Whether there are strokes on canvas.
(...skipping 12 matching lines...) Expand all
308 /** 332 /**
309 * Cleans the stokes. 333 * Cleans the stokes.
310 */ 334 */
311 KeyboardContainer.prototype.cleanStroke = function() { 335 KeyboardContainer.prototype.cleanStroke = function() {
312 if (this.currentKeysetView) { 336 if (this.currentKeysetView) {
313 this.currentKeysetView.cleanStroke(); 337 this.currentKeysetView.cleanStroke();
314 } 338 }
315 }; 339 };
316 340
317 }); // goog.scope 341 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698