OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 input method UI implementation | 6 * @fileoverview An input method UI implementation |
7 */ | 7 */ |
8 | 8 |
9 /** | 9 /** |
10 * Const variables | 10 * Const variables |
11 */ | 11 */ |
| 12 const IME_KEYBOARD_HEIGHT = 300; |
12 const IME_HEIGHT = 48; | 13 const IME_HEIGHT = 48; |
13 const IME_VMARGIN = 12; | 14 const IME_VMARGIN = 12; |
14 const IME_HMARGIN = 16; | 15 const IME_HMARGIN = 16; |
15 const IME_FONTSIZE = IME_HEIGHT - IME_VMARGIN * 2; | 16 const IME_FONTSIZE = IME_HEIGHT - IME_VMARGIN * 2; |
16 const IME_MAX_CANDIDATES = 20; | 17 const IME_MAX_CANDIDATES = 20; |
17 | 18 |
18 /** | 19 /** |
19 * Creates a new button element. | 20 * Creates a new button element. |
20 * @param {Object=} opt_propertyBag Optional properties. | 21 * @param {Object=} opt_propertyBag Optional properties. |
21 * @constructor | 22 * @constructor |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 that.appendChild(candidate); | 117 that.appendChild(candidate); |
117 candidate.onclick = function() { | 118 candidate.onclick = function() { |
118 that.candidateClicked(index); | 119 that.candidateClicked(index); |
119 }; | 120 }; |
120 } | 121 } |
121 for (var i = 0; i < IME_MAX_CANDIDATES; i++) { | 122 for (var i = 0; i < IME_MAX_CANDIDATES; i++) { |
122 createCandidateButton(i); | 123 createCandidateButton(i); |
123 } | 124 } |
124 | 125 |
125 this.appendChild(this.pageDown_); | 126 this.appendChild(this.pageDown_); |
| 127 this.update(); |
126 }, | 128 }, |
127 | 129 |
128 /** | 130 /** |
| 131 * Returns true if Ime Ui is visible. |
| 132 * @return {boolean} |
| 133 */ |
| 134 get visible() { |
| 135 return this.style.display != 'none'; |
| 136 }, |
| 137 |
| 138 /** |
129 * Sets the input cursor location. | 139 * Sets the input cursor location. |
130 * @param {number} x The x of the input cursor coordinates. | 140 * @param {number} x The x of the input cursor coordinates. |
131 * @param {number} y The y of the input cursor coordinates. | 141 * @param {number} y The y of the input cursor coordinates. |
132 * @param {number} w The width of the input cursor. | 142 * @param {number} w The width of the input cursor. |
133 * @param {number} h The height of the input cursor. | 143 * @param {number} h The height of the input cursor. |
134 * @return {void} | 144 * @return {void} |
135 */ | 145 */ |
136 setCursorLocation: function(x, y, w, h) { | 146 setCursorLocation: function(x, y, w, h) { |
137 // Currently we do nothing. | 147 // Currently we do nothing. |
138 }, | 148 }, |
(...skipping 25 matching lines...) Expand all Loading... |
164 } else { | 174 } else { |
165 for (var i = 0; i < this.candidates_.length; i++) { | 175 for (var i = 0; i < this.candidates_.length; i++) { |
166 this.candidates_[i].text = ''; | 176 this.candidates_[i].text = ''; |
167 } | 177 } |
168 } | 178 } |
169 this.table_ = table; | 179 this.table_ = table; |
170 this.update(); | 180 this.update(); |
171 }, | 181 }, |
172 | 182 |
173 update : function() { | 183 update : function() { |
174 // TODO(penghuang) Add API for show and hide ImeUI. | 184 var visible = |
175 // Currently, ImeUi is always visible. | 185 (this.table_ && this.table_.visible) || this.auxiliary_.text_; |
176 if (true || (this.table_ && this.table_.visible) || this.auxiliary_.text_) { | 186 |
177 this.style.display = 'block'; | 187 if (visible == this.visible) { |
| 188 return; |
| 189 } |
| 190 |
| 191 if (visible) { |
| 192 chrome.experimental.input.setKeyboardHeight( |
| 193 IME_KEYBOARD_HEIGHT + IME_HEIGHT); |
| 194 this.style.display = 'inline-block'; |
178 } else { | 195 } else { |
179 this.style.display = 'none'; | 196 this.style.display = 'none'; |
| 197 chrome.experimental.input.setKeyboardHeight(IME_KEYBOARD_HEIGHT); |
180 } | 198 } |
181 | |
182 // TODO(penghuang) Adjust the width of all items in ImeUi to fill the width | 199 // TODO(penghuang) Adjust the width of all items in ImeUi to fill the width |
183 // of keyboard. | 200 // of keyboard. |
184 }, | 201 }, |
185 | 202 |
186 /** | 203 /** |
187 * Candidate is clicked. | 204 * Candidate is clicked. |
188 * @param {number} index The index of the candidate. | 205 * @param {number} index The index of the candidate. |
189 * @return {void} | 206 * @return {void} |
190 */ | 207 */ |
191 candidateClicked: function(index) { | 208 candidateClicked: function(index) { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 | 273 |
257 /** | 274 /** |
258 * Updates Ime Ui. It should be called when window is resized. | 275 * Updates Ime Ui. It should be called when window is resized. |
259 * @return {void} | 276 * @return {void} |
260 */ | 277 */ |
261 function updateIme() { | 278 function updateIme() { |
262 if (imeui) { | 279 if (imeui) { |
263 imeui.update(); | 280 imeui.update(); |
264 } | 281 } |
265 } | 282 } |
OLD | NEW |