# Copyright (C) 2010 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.

#
# Key character map for a built-in generic virtual keyboard primarily used
# for instrumentation and testing purposes.
#

type FULL

### Basic QWERTY keys ###

key A {
    label:                              'A'
    base:                               'a'
    shift, capslock:                    'A'
    ctrl, alt, meta:                    none
}

key B {
    label:                              'B'
    base:                               'b'
    shift, capslock:                    'B'
    ctrl, alt, meta:                    none
}

key C {
    label:                              'C'
    base:                               'c'
    shift, capslock:                    'C'
    alt:                                '\u00e7'
    shift+alt:                          '\u00c7'
    ctrl, meta:                         none
}

key D {
    label:                              'D'
    base:                               'd'
    shift, capslock:                    'D'
    ctrl, alt, meta:                    none
}

key E {
    label:                              'E'
    base:                               'e'
    shift, capslock:                    'E'
    alt:                                '\u0301'
    ctrl, meta:                         none
}

key F {
    label:                              'F'
    base:                               'f'
    shift, capslock:                    'F'
    ctrl, alt, meta:                    none
}

key G {
    label:                              'G'
    base:                               'g'
    shift, capslock:                    'G'
    ctrl, alt, meta:                    none
}

key H {
    label:                              'H'
    base:                               'h'
    shift, capslock:                    'H'
    ctrl, alt, meta:                    none
}

key I {
    label:                              'I'
    base:                               'i'
    shift, capslock:                    'I'
    alt:                                '\u0302'
    ctrl, meta:                         none
}

key J {
    label:                              'J'
    base:                               'j'
    shift, capslock:                    'J'
    ctrl, alt, meta:                    none
}

key K {
    label:                              'K'
    base:                               'k'
    shift, capslock:                    'K'
    ctrl, alt, meta:                    none
}

key L {
    label:                              'L'
    base:                               'l'
    shift, capslock:                    'L'
    ctrl, alt, meta:                    none
}

key M {
    label:                              'M'
    base:                               'm'
    shift, capslock:                    'M'
    ctrl, alt, meta:                    none
}

key N {
    label:                              'N'
    base:                               'n'
    shift, capslock:                    'N'
    alt:                                '\u0303'
    ctrl, meta:                         none
}

key O {
    label:                              'O'
    base:                               'o'
    shift, capslock:                    'O'
    ctrl, alt, meta:                    none
}

key P {
    label:                              'P'
    base:                               'p'
    shift, capslock:                    'P'
    ctrl, alt, meta:                    none
}

key Q {
    label:                              'Q'
    base:                               'q'
    shift, capslock:                    'Q'
    ctrl, alt, meta:                    none
}

key R {
    label:                              'R'
    base:                               'r'
    shift, capslock:                    'R'
    ctrl, alt, meta:                    none
}

key S {
    label:                              'S'
    base:                               's'
    shift, capslock:                    'S'
    alt:                                '\u00df'
    ctrl, meta:                         none
}

key T {
    label:                              'T'
    base:                               't'
    shift, capslock:                    'T'
    ctrl, alt, meta:                    none
}

key U {
    label:                              'U'
    base:                               'u'
    shift, capslock:                    'U'
    alt:                                '\u0308'
    ctrl, meta:                         none
}

key V {
    label:                              'V'
    base:                               'v'
    shift, capslock:                    'V'
    ctrl, alt, meta:                    none
}

key W {
    label:                              'W'
    base:                               'w'
    shift, capslock:                    'W'
    ctrl, alt, meta:                    none
}

key X {
    label:                              'X'
    base:                               'x'
    shift, capslock:                    'X'
    ctrl, alt, meta:                    none
}

key Y {
    label:                              'Y'
    base:                               'y'
    shift, capslock:                    'Y'
    ctrl, alt, meta:                    none
}

key Z {
    label:                              'Z'
    base:                               'z'
    shift, capslock:                    'Z'
    ctrl, alt, meta:                    none
}

key 0 {
    label, number:                      '0'
    base:                               '0'
    shift:                              ')'
    ctrl, alt, meta:                    none
}

key 1 {
    label, number:                      '1'
    base:                               '1'
    shift:                              '!'
    ctrl, alt, meta:                    none
}

key 2 {
    label, number:                      '2'
    base:                               '2'
    shift:                              '@'
    ctrl, alt, meta:                    none
}

key 3 {
    label, number:                      '3'
    base:                               '3'
    shift:                              '#'
    ctrl, alt, meta:                    none
}

key 4 {
    label, number:                      '4'
    base:                               '4'
    shift:                              '$'
    ctrl, alt, meta:                    none
}

key 5 {
    label, number:                      '5'
    base:                               '5'
    shift:                              '%'
    ctrl, alt, meta:                    none
}

key 6 {
    label, number:                      '6'
    base:                               '6'
    shift:                              '^'
    ctrl, alt, meta:                    none
    alt+shift:                          '\u0302'
}

key 7 {
    label, number:                      '7'
    base:                               '7'
    shift:                              '&'
    ctrl, alt, meta:                    none
}

key 8 {
    label, number:                      '8'
    base:                               '8'
    shift:                              '*'
    ctrl, alt, meta:                    none
}

key 9 {
    label, number:                      '9'
    base:                               '9'
    shift:                              '('
    ctrl, alt, meta:                    none
}

key SPACE {
    label:                              ' '
    base:                               ' '
    ctrl, alt:                          none
    meta:                               fallback SEARCH
}

key ENTER {
    label:                              '\n'
    base:                               '\n'
    ctrl, alt, meta:                    none
}

key TAB {
    label:                              '\t'
    base:                               '\t'
    ctrl, alt:                          none
    meta:                               fallback APP_SWITCH
}

key COMMA {
    label, number:                      ','
    base:                               ','
    shift:                              '<'
    ctrl, alt, meta:                    none
}

key PERIOD {
    label, number:                      '.'
    base:                               '.'
    shift:                              '>'
    ctrl, alt, meta:                    none
}

key SLASH {
    label, number:                      '/'
    base:                               '/'
    shift:                              '?'
    ctrl, alt, meta:                    none
}

key GRAVE {
    label, number:                      '`'
    base:                               '`'
    shift:                              '~'
    alt:                                '\u0300'
    alt+shift:                          '\u0303'
    ctrl, meta:                         none
}

key MINUS {
    label, number:                      '-'
    base:                               '-'
    shift:                              '_'
    ctrl, alt, meta:                    none
}

key EQUALS {
    label, number:                      '='
    base:                               '='
    shift:                              '+'
    ctrl, alt, meta:                    none
}

key LEFT_BRACKET {
    label, number:                      '['
    base:                               '['
    shift:                              '{'
    ctrl, alt, meta:                    none
}

key RIGHT_BRACKET {
    label, number:                      ']'
    base:                               ']'
    shift:                              '}'
    ctrl, alt, meta:                    none
}

key BACKSLASH {
    label, number:                      '\\'
    base:                               '\\'
    shift:                              '|'
    ctrl, alt, meta:                    none
}

key SEMICOLON {
    label, number:                      ';'
    base:                               ';'
    shift:                              ':'
    ctrl, alt, meta:                    none
}

key APOSTROPHE {
    label, number:                      '\''
    base:                               '\''
    shift:                              '"'
    ctrl, alt, meta:                    none
}

### Numeric keypad ###

key NUMPAD_0 {
    label, number:                      '0'
    base:                               fallback INSERT
    numlock:                            '0'
    ctrl, alt, meta:                    none
}

key NUMPAD_1 {
    label, number:                      '1'
    base:                               fallback MOVE_END
    numlock:                            '1'
    ctrl, alt, meta:                    none
}

key NUMPAD_2 {
    label, number:                      '2'
    base:                               fallback DPAD_DOWN
    numlock:                            '2'
    ctrl, alt, meta:                    none
}

key NUMPAD_3 {
    label, number:                      '3'
    base:                               fallback PAGE_DOWN
    numlock:                            '3'
    ctrl, alt, meta:                    none
}

key NUMPAD_4 {
    label, number:                      '4'
    base:                               fallback DPAD_LEFT
    numlock:                            '4'
    ctrl, alt, meta:                    none
}

key NUMPAD_5 {
    label, number:                      '5'
    base:                               fallback DPAD_CENTER
    numlock:                            '5'
    ctrl, alt, meta:                    none
}

key NUMPAD_6 {
    label, number:                      '6'
    base:                               fallback DPAD_RIGHT
    numlock:                            '6'
    ctrl, alt, meta:                    none
}

key NUMPAD_7 {
    label, number:                      '7'
    base:                               fallback MOVE_HOME
    numlock:                            '7'
    ctrl, alt, meta:                    none
}

key NUMPAD_8 {
    label, number:                      '8'
    base:                               fallback DPAD_UP
    numlock:                            '8'
    ctrl, alt, meta:                    none
}

key NUMPAD_9 {
    label, number:                      '9'
    base:                               fallback PAGE_UP
    numlock:                            '9'
    ctrl, alt, meta:                    none
}

key NUMPAD_LEFT_PAREN {
    label, number:                      '('
    base:                               '('
    ctrl, alt, meta:                    none
}

key NUMPAD_RIGHT_PAREN {
    label, number:                      ')'
    base:                               ')'
    ctrl, alt, meta:                    none
}

key NUMPAD_DIVIDE {
    label, number:                      '/'
    base:                               '/'
    ctrl, alt, meta:                    none
}

key NUMPAD_MULTIPLY {
    label, number:                      '*'
    base:                               '*'
    ctrl, alt, meta:                    none
}

key NUMPAD_SUBTRACT {
    label, number:                      '-'
    base:                               '-'
    ctrl, alt, meta:                    none
}

key NUMPAD_ADD {
    label, number:                      '+'
    base:                               '+'
    ctrl, alt, meta:                    none
}

key NUMPAD_DOT {
    label, number:                      '.'
    base:                               fallback FORWARD_DEL
    numlock:                            '.'
    ctrl, alt, meta:                    none
}

key NUMPAD_COMMA {
    label, number:                      ','
    base:                               ','
    ctrl, alt, meta:                    none
}

key NUMPAD_EQUALS {
    label, number:                      '='
    base:                               '='
    ctrl, alt, meta:                    none
}

key NUMPAD_ENTER {
    label:                              '\n'
    base:                               '\n' fallback ENTER
    ctrl, alt, meta:                    none fallback ENTER
}

### Special keys on phones ###

key AT {
    label, number:                      '@'
    base:                               '@'
}

key STAR {
    label, number:                      '*'
    base:                               '*'
}

key POUND {
    label, number:                      '#'
    base:                               '#'
}

key PLUS {
    label, number:                      '+'
    base:                               '+'
}

### Non-printing keys ###

key ESCAPE {
    base:                               fallback BACK
    meta:                               fallback HOME
    alt:                                fallback MENU
}
