Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / google_input_tools / src / chrome / os / inputview / layouts / rowsofcompact.js
blobeee564a8203cc19169a4afdff6650f269c0e7c31
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.layouts.RowsOfCompact');
15 goog.provide('i18n.input.chrome.inputview.layouts.RowsOfCompactAzerty');
16 goog.provide('i18n.input.chrome.inputview.layouts.RowsOfCompactNordic');
17 goog.provide('i18n.input.chrome.inputview.layouts.RowsOfCompactZhuyin');
19 goog.require('i18n.input.chrome.inputview.layouts.util');
21 goog.scope(function() {
22 var layouts = i18n.input.chrome.inputview.layouts;
23 var util = layouts.util;
26 /**
27  * Creates the top three rows for compact qwerty keyboard.
28  *
29  * @return {!Array.<!Object>} The rows.
30  */
31 layouts.RowsOfCompact.create = function() {
32   var baseKeySpec = {
33     'widthInWeight': 1,
34     'heightInWeight': 1
35   };
37   // Row1
38   var keySequenceOf10 = util.createKeySequence(baseKeySpec, 10);
39   var backspaceKey = util.createKey({
40     'widthInWeight': 1.15625
41   });
42   var row1 = util.createLinearLayout({
43     'id': 'row1',
44     'children': [keySequenceOf10, backspaceKey]
45   });
47   // Row2
48   // How to add padding
49   var leftKeyWithPadding = util.createKey({
50     'widthInWeight': 1.5
51   });
52   var keySequenceOf8 = util.createKeySequence(baseKeySpec, 8);
53   var enterKey = util.createKey({
54     'widthInWeight': 1.65625
55   });
56   var row2 = util.createLinearLayout({
57     'id': 'row2',
58     'children': [leftKeyWithPadding, keySequenceOf8, enterKey]
59   });
61   // Row3
62   var shiftLeftKey = util.createKey({
63     'widthInWeight': 1.078125
64   });
65   var keySequenceOf9 = util.createKeySequence(baseKeySpec, 9);
66   var shiftRightKey = util.createKey({
67     'widthInWeight': 1.078125
68   });
69   var row3 = util.createLinearLayout({
70     'id': 'row3',
71     'children': [shiftLeftKey, keySequenceOf9, shiftRightKey]
72   });
74   return [row1, row2, row3];
78 /**
79  * Creates the top three rows for compact azerty keyboard.
80  *
81  * @return {!Array.<!Object>} The rows.
82  */
83 i18n.input.chrome.inputview.layouts.RowsOfCompactAzerty.create = function() {
84   var baseKeySpec = {
85     'widthInWeight': 1,
86     'heightInWeight': 1
87   };
89   // Row1
90   var keySequenceOf10 = i18n.input.chrome.inputview.layouts.util.
91       createKeySequence(baseKeySpec, 10);
92   var backspaceKey = i18n.input.chrome.inputview.layouts.util.createKey({
93     'widthInWeight': 1.2
94   });
95   var row1 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
96     'id': 'row1',
97     'children': [keySequenceOf10, backspaceKey]
98   });
100   // Row2
101   keySequenceOf10 = i18n.input.chrome.inputview.layouts.util.
102       createKeySequence(baseKeySpec, 10);
103   var enterKey = i18n.input.chrome.inputview.layouts.util.createKey({
104     'widthInWeight': 1.2
105   });
106   var row2 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
107     'id': 'row2',
108     'children': [keySequenceOf10, enterKey]
109   });
111   // Row3
112   var shiftLeftKey = i18n.input.chrome.inputview.layouts.util.createKey({
113     'widthInWeight': 1.1
114   });
115   var keySequenceOf9 = i18n.input.chrome.inputview.layouts.util.
116       createKeySequence(baseKeySpec, 9);
117   var shiftRightKey = i18n.input.chrome.inputview.layouts.util.createKey({
118     'widthInWeight': 1.1
119   });
120   var row3 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
121     'id': 'row3',
122     'children': [shiftLeftKey, keySequenceOf9, shiftRightKey]
123   });
125   return [row1, row2, row3];
130  * Creates the top three rows for compact nordic keyboard.
132  * @return {!Array.<!Object>} The rows.
133  */
134 i18n.input.chrome.inputview.layouts.RowsOfCompactNordic.create = function() {
135   var baseKeySpec = {
136     'widthInWeight': 1,
137     'heightInWeight': 1
138   };
140   // Row1
141   var keySequenceOf11 = i18n.input.chrome.inputview.layouts.util.
142       createKeySequence(baseKeySpec, 11);
143   var backspaceKey = i18n.input.chrome.inputview.layouts.util.createKey({
144     'widthInWeight': 1.2
145   });
146   var row1 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
147     'id': 'row1',
148     'children': [keySequenceOf11, backspaceKey]
149   });
151   // Row2
152   keySequenceOf11 = i18n.input.chrome.inputview.layouts.util.
153       createKeySequence(baseKeySpec, 11);
154   var enterKey = i18n.input.chrome.inputview.layouts.util.createKey({
155     'widthInWeight': 1.2
156   });
157   var row2 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
158     'id': 'row2',
159     'children': [keySequenceOf11, enterKey]
160   });
162   // Row3
163   var shiftLeftKey = i18n.input.chrome.inputview.layouts.util.createKey({
164     'widthInWeight': 1.1
165   });
166   var leftKeyWithPadding = i18n.input.chrome.inputview.layouts.util.createKey({
167     'widthInWeight': 1.5
168   });
169   var keySequenceOf7 = i18n.input.chrome.inputview.layouts.util.
170       createKeySequence(baseKeySpec, 7);
171   var rightKeyWithPadding = i18n.input.chrome.inputview.layouts.util.createKey({
172     'widthInWeight': 1.5
173   });
174   var shiftRightKey = i18n.input.chrome.inputview.layouts.util.createKey({
175     'widthInWeight': 1.1
176   });
177   var row3 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
178     'id': 'row3',
179     'children': [shiftLeftKey, leftKeyWithPadding, keySequenceOf7,
180       rightKeyWithPadding, shiftRightKey]
181   });
182   return [row1, row2, row3];
187  * Creates the top rows of compact zhuyin.
189  * @return {!Array.<!Object>} The rows.
190  */
191 i18n.input.chrome.inputview.layouts.RowsOfCompactZhuyin.create = function() {
192   var baseKeySpec = {
193     'widthInWeight': 1.01,
194     'heightInWeight': 3
195   };
197   // Row1
198   var keysOfRow1 = i18n.input.chrome.inputview.layouts.util.
199       createKeySequence(baseKeySpec, 10);
200   var row1 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
201     'id': 'row1',
202     'children': [keysOfRow1]
203   });
205   // Row2
206   var keysOfRow2 = i18n.input.chrome.inputview.layouts.util.
207       createKeySequence(baseKeySpec, 10);
208   var row2 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
209     'id': 'row2',
210     'children': [keysOfRow2]
211   });
213   //Row3
214   var keysOfRow3 = i18n.input.chrome.inputview.layouts.util.
215       createKeySequence(baseKeySpec, 10);
216   var row3 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
217     'id': 'row3',
218     'children': [keysOfRow3]
219   });
221   // Row4
222   var keysOfRow4 = i18n.input.chrome.inputview.layouts.util.
223       createKeySequence(baseKeySpec, 10);
224   var row4 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
225     'id': 'row4',
226     'children': [keysOfRow4]
227   });
229   var topFourRows =
230       i18n.input.chrome.inputview.layouts.util.createVerticalLayout({
231         'id': 'topFourRows',
232         'children': [row1, row2, row3, row4]
233       });
235   var sideKeySpec = {
236     'widthInWeight': 1.1,
237     'heightInWeight': 4
238   };
239   var backspaceKey =
240       i18n.input.chrome.inputview.layouts.util.createKey(sideKeySpec);
241   var enterKey =
242       i18n.input.chrome.inputview.layouts.util.createKey(sideKeySpec);
243   var shiftKey =
244       i18n.input.chrome.inputview.layouts.util.createKey(sideKeySpec);
246   var sideKeys = i18n.input.chrome.inputview.layouts.util.createVerticalLayout({
247     'id': 'sideKeys',
248     'children': [backspaceKey, enterKey, shiftKey]
249   });
251   var topRows = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
252     'id': 'topRows',
253     'children': [topFourRows, sideKeys]
254   });
255   return [topRows];
258 });  // goog.scope