Support PC QWERTY layout

Bug: 4460018
Change-Id: I9a29f6a322af66f6a152fa1883b3686c5f7a3328
diff --git a/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
new file mode 100644
index 0000000..0a27ca7
--- /dev/null
+++ b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="symbols|symbolsShifted"
+        >
+            <Key
+                latin:keyLabel="["
+                latin:moreKeys="{" />
+            <Key
+                latin:keyLabel="]"
+                latin:moreKeys="}" />
+            <!-- U+00A6: "¦" BROKEN BAR -->
+            <Key
+                latin:keyLabel="\\"
+                latin:moreKeys="\\|,&#x00A6;" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="["
+                latin:keyHintLabel="{"
+                latin:moreKeys="{"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="]"
+                latin:keyHintLabel="}"
+                latin:moreKeys="}"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <!-- U+00A6: "¦" BROKEN BAR -->
+            <Key
+                latin:keyLabel="\\"
+                latin:keyHintLabel="|"
+                latin:moreKeys="\\|,&#x00A6;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
new file mode 100644
index 0000000..a0e5cbb
--- /dev/null
+++ b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="symbols|symbolsShifted"
+        >
+            <Key
+                latin:keyLabel=";"
+                latin:moreKeys=":" />
+            <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK
+                 U+2019: "’" RIGHT SINGLE QUOTATION MARK
+                 U+201A: "‚" SINGLE LOW-9 QUOTATION MARK
+                 U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK
+                 U+201C: "“" LEFT DOUBLE QUOTATION MARK
+                 U+201D: "”" RIGHT DOUBLE QUOTATION MARK
+                 U+201E: "„" DOUBLE LOW-9 QUOTATION MARK
+                 U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK -->
+            <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK.
+                 moreKeys="!fixedColumnOrder!4,&#x201C;,&#x201D;,&#x201E;,&#x201F;,&#x2018;,&#x2019;,&#x201A;,&#x201B;" -->
+            <Key
+                latin:keyLabel="\'"
+                latin:moreKeys="!fixedColumnOrder!4,&#x201C;,&#x201D;,&#x2018;,&#x2019;,&#x201A;,&#x201B;,&quot;" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel=";"
+                latin:keyHintLabel=":"
+                latin:moreKeys=":"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <!-- U+2018: "‘" LEFT SINGLE QUOTATION MARK
+                 U+2019: "’" RIGHT SINGLE QUOTATION MARK
+                 U+201A: "‚" SINGLE LOW-9 QUOTATION MARK
+                 U+201B: "‛" SINGLE HIGH-REVERSED-9 QUOTATION MARK
+                 U+201C: "“" LEFT DOUBLE QUOTATION MARK
+                 U+201D: "”" RIGHT DOUBLE QUOTATION MARK
+                 U+201E: "„" DOUBLE LOW-9 QUOTATION MARK
+                 U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK -->
+            <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK.
+                 moreKeys="!fixedColumnOrder!4,&#x201C;,&#x201D;,&#x201E;,&#x201F;,&#x2018;,&#x2019;,&#x201A;,&#x201B;" -->
+            <Key
+                latin:keyLabel="\'"
+                latin:keyHintLabel="&quot;"
+                latin:moreKeys="!fixedColumnOrder!4,&#x201C;,&#x201D;,&#x2018;,&#x2019;,&#x201A;,&#x201B;,&quot;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
new file mode 100644
index 0000000..ee5271a
--- /dev/null
+++ b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="symbols|symbolsShifted"
+        >
+            <!-- U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+                 U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+                 U+2264: "≤" LESS-THAN OR EQUAL TO
+                 U+2265: "≥" GREATER-THAN EQUAL TO
+                 U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+                 U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+           <Key
+                latin:keyLabel=","
+                latin:additionalMoreKeys="&lt;"
+                latin:moreKeys="!fixedColumnOrder!4,&#x2039;,&#x2064;,&#x00AB;" />
+            <Key
+                latin:keyLabel="."
+                latin:additionalMoreKeys="&gt;"
+                latin:moreKeys="!fixedColumnOrder!4,&#x203A;,&#x2065;,&#x00BB;" />
+            <!-- U+00BF: "¿" INVERTED QUESTION MARK -->
+            <Key
+                latin:keyLabel="/"
+                latin:additionalMoreKeys="\?"
+                latin:moreKeys="&#x00BF;" />
+        </case>
+        <default>
+            <!-- U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+                 U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+                 U+2264: "≤" LESS-THAN OR EQUAL TO
+                 U+2265: "≥" GREATER-THAN EQUAL TO
+                 U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+                 U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+            <Key
+                latin:keyLabel=","
+                latin:keyHintLabel="&lt;"
+                latin:additionalMoreKeys="&lt;"
+                latin:moreKeys="!fixedColumnOrder!4,&#x2039;,&#x2264;,&#x00AB;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="."
+                latin:keyHintLabel="&gt;"
+                latin:additionalMoreKeys="&gt;"
+                latin:moreKeys="!fixedColumnOrder!4,&#x203A;,&#x2265;,&#x00BB;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <!-- U+00BF: "¿" INVERTED QUESTION MARK -->
+            <Key
+                latin:keyLabel="/"
+                latin:keyHintLabel="\?"
+                latin:additionalMoreKeys="\?"
+                latin:moreKeys="&#x00BF;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/row_pcqwerty5.xml b/java/res/xml-sw600dp/row_pcqwerty5.xml
new file mode 100644
index 0000000..83bc83e
--- /dev/null
+++ b/java/res/xml-sw600dp/row_pcqwerty5.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <switch>
+            <case
+                latin:keyboardLayoutSetElement="symbols|symbolsShifted"
+            >
+                <Spacer
+                    latin:keyXPos="15.0%p"
+                    latin:keyWidth="10.5%p" />
+            </case>
+            <case
+                latin:mode="email|url"
+            >
+                <Key
+                    latin:keyStyle="comKeyStyle"
+                    latin:keyXPos="15.0%p"
+                    latin:keyWidth="10.5%p" />
+            </case>
+            <default>
+                <Spacer
+                    latin:keyXPos="15.0%p"
+                    latin:keyWidth="10.5%p" />
+            </default>
+        </switch>
+        <switch>
+            <case
+                latin:languageSwitchKeyEnabled="true"
+            >
+                <Key
+                    latin:keyStyle="languageSwitchKeyStyle" />
+                <Key
+                    latin:keyStyle="spaceKeyStyle"
+                    latin:keyWidth="42.0%p" />
+            </case>
+            <!-- languageSwitchKeyEnabled="false" -->
+            <default>
+                <Key
+                    latin:keyStyle="spaceKeyStyle"
+                    latin:keyWidth="49.0%p" />
+            </default>
+        </switch>
+        <include
+            latin:keyXPos="-9.0%p"
+            latin:keyWidth="fillRight"
+            latin:keyboardLayout="@xml/key_shortcut" />
+    </Row>
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
new file mode 100644
index 0000000..d486b9d
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="symbols|symbolsShifted"
+        >
+            <include
+                latin:keyboardLayout="@xml/keys_pcqwerty_symbols1" />
+        </case>
+        <!-- keyboardLayoutSetElement="alphabet*" -->
+        <default>
+            <!-- U+00AC: "¬" NOT SIGN -->
+            <Key
+                latin:keyLabel="`"
+                latin:keyHintLabel="~"
+                latin:additionalMoreKeys="~"
+                latin:moreKeys="&#x00AC;"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <!-- U+00A1: "¡" NVERTED EXCLAMATION MARK -->
+            <Key
+                latin:keyLabel="1"
+                latin:keyHintLabel="!"
+                latin:additionalMoreKeys="!"
+                latin:moreKeys="&#x00A1;,!text/more_keys_for_symbols_1"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="2"
+                latin:keyHintLabel="\@"
+                latin:additionalMoreKeys="\@"
+                latin:moreKeys="!text/more_keys_for_symbols_2"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="3"
+                latin:keyHintLabel="#"
+                latin:additionalMoreKeys="#"
+                latin:moreKeys="!text/more_keys_for_symbols_3"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="4"
+                latin:keyHintLabel="$"
+                latin:additionalMoreKeys="$"
+                latin:moreKeys="!text/more_keys_for_symbols_4"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="5"
+                latin:keyHintLabel="%"
+                latin:additionalMoreKeys="\\%"
+                latin:moreKeys="!text/more_keys_for_symbols_5"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="6"
+                latin:keyHintLabel="^"
+                latin:additionalMoreKeys="^"
+                latin:moreKeys="!text/more_keys_for_symbols_6"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="7"
+                latin:keyHintLabel="&amp;"
+                latin:additionalMoreKeys="&amp;"
+                latin:moreKeys="!text/more_keys_for_symbols_7"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="8"
+                latin:keyHintLabel="*"
+                latin:additionalMoreKeys="*"
+                latin:moreKeys="!text/more_keys_for_symbols_8"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="9"
+                latin:keyHintLabel="("
+                latin:additionalMoreKeys="("
+                latin:moreKeys="!text/more_keys_for_symbols_9"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="0"
+                latin:keyHintLabel=")"
+                latin:additionalMoreKeys=")"
+                latin:moreKeys="!text/more_keys_for_symbols_0"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="-"
+                latin:keyHintLabel="_"
+                latin:moreKeys="_"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+            <Key
+                latin:keyLabel="="
+                latin:keyHintLabel="+"
+                latin:moreKeys="+"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/rows_pcqwerty.xml b/java/res/xml-sw600dp/rows_pcqwerty.xml
new file mode 100644
index 0000000..ff2f785
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_pcqwerty.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <Key
+            latin:keyStyle="tabKeyStyle"
+            latin:keyWidth="9.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty2" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <Key
+            latin:keyStyle="toSymbolKeyStyle"
+            latin:keyLabel="!text/label_to_symbol_key_pcqwerty"
+            latin:keyWidth="12.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty3" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="15.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty4" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley"
+            latin:keyXPos="-9.0%p"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_pcqwerty5" />
+</merge>
diff --git a/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml b/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml
new file mode 100644
index 0000000..046bce9
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <include
+        latin:keyboardLayout="@xml/key_styles_currency" />
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <Key
+            latin:keyStyle="tabKeyStyle"
+            latin:keyWidth="9.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty2" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <Key
+            latin:keyStyle="toAlphaKeyStyle"
+            latin:keyWidth="12.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty3" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="7.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_pcqwerty4"
+            latin:keyXPos="15.0%p" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley"
+            latin:keyXPos="-9.0%p"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_pcqwerty5" />
+</merge>