Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / google_input_tools / src / chrome / os / inputview / readystate.js
blob2bb6dd38a553cfdcaf1b34b81152563a4b3b5f6e
1 // Copyright 2014 The ChromeOS IME Authors. All Rights Reserved.
2 // limitations under the License.
3 // See the License for the specific language governing permissions and
4 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5 // distributed under the License is distributed on an "AS-IS" BASIS,
6 // Unless required by applicable law or agreed to in writing, software
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // You may obtain a copy of the License at
11 // you may not use this file except in compliance with the License.
12 // Licensed under the Apache License, Version 2.0 (the "License");
14 goog.provide('i18n.input.chrome.inputview.ReadyState');
18 goog.scope(function() {
22 /**
23  * The system ready state which mainains a state bit map.
24  * Inputview controller uses this to determine whether the system is ready to
25  * render the UI.
26  *
27  * @constructor
28  */
29 i18n.input.chrome.inputview.ReadyState = function() {
31 var ReadyState = i18n.input.chrome.inputview.ReadyState;
34 /**
35  * The state type.
36  *
37  * @enum {number}
38  */
39 ReadyState.State = {
40   IME_LIST_READY: 0x1,
41   KEYBOARD_CONFIG_READY: 0x10,
42   LAYOUT_READY: 0x100,
43   LAYOUT_CONFIG_READY: 0x1000,
44   M17N_LAYOUT_READY: 0x10000
48 /**
49  * The internal ready state bit map.
50  *
51  * @private {number}
52  */
53 ReadyState.prototype.state_ = 0;
56 /**
57  * Gets whether the system is ready.
58  *
59  * @return {boolean} Whether the system is ready.
60  */
61 ReadyState.prototype.isAllReady = function() {
62   return !!(this.state_ & (
63       ReadyState.State.IME_LIST_READY |
64       ReadyState.State.KEYBOARD_CONFIG_READY |
65       ReadyState.State.LAYOUT_READY |
66       ReadyState.State.LAYOUT_CONFIG_READY |
67       ReadyState.State.M17N_LAYOUT_READY));
71 /**
72  * Gets whether a specific state type is ready.
73  *
74  * @param {ReadyState.State} state .
75  * @return {boolean} Whether is ready.
76  */
77 ReadyState.prototype.isReady = function(state) {
78   return !!(this.state_ & state);
82 /**
83  * Sets state ready for the given state type.
84  *
85  * @param {ReadyState.State} state .
86  */
87 ReadyState.prototype.markStateReady = function(state) {
88   this.state_ |= state;
90 });  // goog.scope