Update mojo sdk to rev 1dc8a9a5db73d3718d99917fadf31f5fb2ebad4f
[chromium-blink-merge.git] / third_party / google_input_tools / src / chrome / os / inputview / layouts / rowsof102.js
blob4df3e415c5741e6ee11dda4966a8e1e4cc987d42
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');
19 /**
20  * Creates the top four rows for 102 keyboard.
21  *
22  * @return {!Array.<!Object>} The rows.
23  */
24 i18n.input.chrome.inputview.layouts.RowsOf102.create = function() {
25   var baseKeySpec = {
26     'widthInWeight': 1,
27     'heightInWeight': 1
28   };
30   // Row1
31   var backquoteKey = i18n.input.chrome.inputview.layouts.util.createKey({
32     'widthInWeight': 0.94
33   });
34   var keySequenceOf12 = i18n.input.chrome.inputview.layouts.util.
35       createKeySequence(baseKeySpec, 12);
36   var backspaceKey = i18n.input.chrome.inputview.layouts.util.createKey({
37     'widthInWeight': 1.42
38   });
39   var row1 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
40     'id': 'row1',
41     'children': [backquoteKey, keySequenceOf12, backspaceKey]
42   });
45   // Row2 and row3
47   // First linear layout at the left of the enter.
48   var tabKey = i18n.input.chrome.inputview.layouts.util.createKey({
49     'widthInWeight': 1.38
50   });
51   keySequenceOf12 = i18n.input.chrome.inputview.layouts.util.
52       createKeySequence(baseKeySpec, 12);
53   var row2 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
54     'id': 'row2',
55     'children': [tabKey, keySequenceOf12]
56   });
58   // Second linear layout at the right of the enter.
59   var capslockKey = i18n.input.chrome.inputview.layouts.util.createKey({
60     'widthInWeight': 1.74
61   });
62   keySequenceOf12 = i18n.input.chrome.inputview.layouts.util.createKeySequence({
63     'widthInWeight': 0.97
64   }, 12);
65   var row3 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
66     'id': 'row3',
67     'children': [capslockKey, keySequenceOf12]
68   });
70   // Vertical layout contains the two rows at the left of the enter.
71   var vLayout = i18n.input.chrome.inputview.layouts.util.createVerticalLayout({
72     'id': 'row2-3-left',
73     'children': [row2, row3]
74   });
76   // Vertical layout contains enter key.
77   var enterKey = i18n.input.chrome.inputview.layouts.util.createKey({
78     'widthInWeight': 0.98,
79     'heightInWeight': 2
80   });
81   var enterLayout = i18n.input.chrome.inputview.layouts.util.
82       createVerticalLayout({
83         'id': 'row2-3-right',
84         'children': [enterKey]
85       });
87   // Linear layout contains the two vertical layout.
88   var row2and3 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
89     'id': 'row2-3',
90     'children': [vLayout, enterLayout]
91   });
93   // Row4
94   var shiftLeft = i18n.input.chrome.inputview.layouts.util.createKey({
95     'widthInWeight': 1.2
96   });
97   var keySequenceOf11 = i18n.input.chrome.inputview.layouts.util.
98       createKeySequence(baseKeySpec, 11);
99   var shiftRight = i18n.input.chrome.inputview.layouts.util.createKey({
100     'widthInWeight': 2.16
101   });
102   var row4 = i18n.input.chrome.inputview.layouts.util.createLinearLayout({
103     'id': 'row4',
104     'children': [shiftLeft, keySequenceOf11, shiftRight]
105   });
107   return [row1, row2and3, row4];