Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / google_input_tools / src / chrome / os / inputview / layouts / rowsof102.js
blob58e046682345fdda9ad86c6407c5876e87cbc305
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.RowsOf102');
16 goog.require('i18n.input.chrome.inputview.layouts.util');
18 goog.scope(function() {
19 var layouts = i18n.input.chrome.inputview.layouts;
20 var util = layouts.util;
23 /**
24  * Creates the top four rows for 102 keyboard.
25  *
26  * @return {!Array.<!Object>} The rows.
27  */
28 layouts.RowsOf102.create = function() {
29   var baseKeySpec = {
30     'widthInWeight': 1,
31     'heightInWeight': 1
32   };
34   // Row1
35   var keySequenceOf13 = util.createKeySequence(baseKeySpec, 13);
36   var backspaceKey = util.createKey({
37     'widthInWeight': 1.46
38   });
39   var row1 = util.createLinearLayout({
40     'id': 'row1',
41     'children': [keySequenceOf13, backspaceKey]
42   });
45   // Row2 and row3
47   // First linear layout at the left of the enter.
48   var tabKey = util.createKey({
49     'widthInWeight': 1.46
50   });
51   var keySequenceOf12 = util.createKeySequence(baseKeySpec, 12);
52   var row2 = util.createLinearLayout({
53     'id': 'row2',
54     'children': [tabKey, keySequenceOf12]
55   });
57   // Second linear layout at the right of the enter.
58   var capslockKey = util.createKey({
59     'widthInWeight': 1.66
60   });
61   keySequenceOf12 = util.createKeySequence({
62     'widthInWeight': 0.98
63   }, 12);
64   var row3 = util.createLinearLayout({
65     'id': 'row3',
66     'children': [capslockKey, keySequenceOf12]
67   });
69   // Vertical layout contains the two rows at the left of the enter.
70   var vLayout = util.createVerticalLayout({
71     'id': 'row2-3-left',
72     'children': [row2, row3]
73   });
75   // Vertical layout contains enter key.
76   var enterKey = util.createKey({
77     'widthInWeight': 1.04,
78     'heightInWeight': 2
79   });
80   var enterLayout = util.
81       createVerticalLayout({
82         'id': 'row2-3-right',
83         'children': [enterKey]
84       });
86   // Linear layout contains the two vertical layout.
87   var row2and3 = util.createLinearLayout({
88     'id': 'row2-3',
89     'children': [vLayout, enterLayout]
90   });
92   // Row4
93   var shiftLeft = util.createKey({
94     'widthInWeight': 1.46
95   });
96   var keySequenceOf11 = util.createKeySequence(baseKeySpec, 11);
97   var shiftRight = util.createKey({
98     'widthInWeight': 2
99   });
100   var row4 = util.createLinearLayout({
101     'id': 'row4',
102     'children': [shiftLeft, keySequenceOf11, shiftRight]
103   });
105   return [row1, row2and3, row4];
108 });  // goog.scope