Home | History | Annotate | Download | only in keyboard
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "mojo/examples/keyboard/keys.h"
      6 
      7 #include "base/macros.h"
      8 #include "ui/events/event_constants.h"
      9 #include "ui/events/keycodes/keyboard_codes.h"
     10 
     11 namespace mojo {
     12 namespace examples {
     13 namespace {
     14 
     15 const Key kQWERTYKeysRow1[] =
     16 {
     17   { ui::VKEY_Q, 1, 0, 'q' },
     18   { ui::VKEY_W, 1, 0, 'w' },
     19   { ui::VKEY_E, 1, 0, 'e' },
     20   { ui::VKEY_R, 1, 0, 'r' },
     21   { ui::VKEY_T, 1, 0, 't' },
     22   { ui::VKEY_Y, 1, 0, 'y' },
     23   { ui::VKEY_U, 1, 0, 'u' },
     24   { ui::VKEY_I, 1, 0, 'i' },
     25   { ui::VKEY_O, 1, 0, 'o' },
     26   { ui::VKEY_P, 1, 0, 'p' },
     27 };
     28 
     29 const Key kQWERTYKeysRow2[] =
     30 {
     31   { ui::VKEY_A, 1, 0, 'a' },
     32   { ui::VKEY_S, 1, 0, 's' },
     33   { ui::VKEY_D, 1, 0, 'd' },
     34   { ui::VKEY_F, 1, 0, 'f' },
     35   { ui::VKEY_G, 1, 0, 'g' },
     36   { ui::VKEY_H, 1, 0, 'h' },
     37   { ui::VKEY_J, 1, 0, 'j' },
     38   { ui::VKEY_K, 1, 0, 'k' },
     39   { ui::VKEY_L, 1, 0, 'l' },
     40 };
     41 
     42 const Key kQWERTYKeysRow3[] =
     43 {
     44   { SPECIAL_KEY_SHIFT, 1.5, 0, 0 },
     45   { ui::VKEY_Z, 1, 0, 'z' },
     46   { ui::VKEY_X, 1, 0, 'x' },
     47   { ui::VKEY_C, 1, 0, 'c' },
     48   { ui::VKEY_V, 1, 0, 'v' },
     49   { ui::VKEY_B, 1, 0, 'b' },
     50   { ui::VKEY_N, 1, 0, 'n' },
     51   { ui::VKEY_M, 1, 0, 'm' },
     52   { ui::VKEY_BACK, 1.5, 0, 0 },
     53 };
     54 
     55 const Key kQWERTYKeysRow4[] =
     56 {
     57   { SPECIAL_KEY_NUMERIC, 1.5, 0, 0 },
     58   { ui::VKEY_DIVIDE, 1, 0, '/' },
     59   { ui::VKEY_SPACE, 5, 0, ' ' },
     60   { ui::VKEY_DECIMAL, 1, 0, '.' },
     61   { ui::VKEY_RETURN, 1.5, 0, 0 },
     62 };
     63 
     64 const Row kQWERTYRow1 = {
     65   0,
     66   kQWERTYKeysRow1,
     67   arraysize(kQWERTYKeysRow1),
     68 };
     69 
     70 const Row kQWERTYRow2 = {
     71   .5,
     72   kQWERTYKeysRow2,
     73   arraysize(kQWERTYKeysRow2),
     74 };
     75 
     76 const Row kQWERTYRow3 = {
     77   0,
     78   kQWERTYKeysRow3,
     79   arraysize(kQWERTYKeysRow3),
     80 };
     81 
     82 const Row kQWERTYRow4 = {
     83   0,
     84   kQWERTYKeysRow4,
     85   arraysize(kQWERTYKeysRow4),
     86 };
     87 
     88 const Key kNumericKeysRow1[] =
     89 {
     90   { ui::VKEY_1, 1, 0, 0 },
     91   { ui::VKEY_2, 1, 0, 0 },
     92   { ui::VKEY_3, 1, 0, 0 },
     93   { ui::VKEY_4, 1, 0, 0 },
     94   { ui::VKEY_5, 1, 0, 0 },
     95   { ui::VKEY_6, 1, 0, 0 },
     96   { ui::VKEY_7, 1, 0, 0 },
     97   { ui::VKEY_8, 1, 0, 0 },
     98   { ui::VKEY_9, 1, 0, 0 },
     99   { ui::VKEY_0, 1, 0, 0 },
    100 };
    101 
    102 const Key kNumericKeysRow2[] =
    103 {
    104   // @#$%&-+()
    105   { ui::VKEY_2, 1, ui::EF_SHIFT_DOWN, '@' },
    106   { ui::VKEY_3, 1, ui::EF_SHIFT_DOWN, '#' },
    107   { ui::VKEY_4, 1, ui::EF_SHIFT_DOWN, '$' },
    108   { ui::VKEY_5, 1, ui::EF_SHIFT_DOWN, '%' },
    109   { ui::VKEY_7, 1, ui::EF_SHIFT_DOWN, '&' },
    110   { ui::VKEY_SUBTRACT, 1, 0, '-' },
    111   { ui::VKEY_ADD, 1, 0, '+' },
    112   { ui::VKEY_9, 1, ui::EF_SHIFT_DOWN, '(' },
    113   { ui::VKEY_0, 1, ui::EF_SHIFT_DOWN, ')' },
    114 };
    115 
    116 const Key kNumericKeysRow3[] =
    117 {
    118   // *"':;!? backspace
    119   { ui::VKEY_MULTIPLY, 1, 0, '*' },
    120   { ui::VKEY_OEM_7, 1, ui::EF_SHIFT_DOWN, '"' },
    121   { ui::VKEY_OEM_7, 1, 0, '\'' },
    122   { ui::VKEY_OEM_1, 1, ui::EF_SHIFT_DOWN, ':' },
    123   { ui::VKEY_OEM_1, 1, 0, ';' },
    124   { ui::VKEY_1, 1, ui::EF_SHIFT_DOWN, '!' },
    125   { ui::VKEY_OEM_2, 1, ui::EF_SHIFT_DOWN, '?' },
    126   { ui::VKEY_BACK, 1.5, 0, 0 },
    127 };
    128 
    129 const Key kNumericKeysRow4[] =
    130 {
    131   // ABC _ / space (3) ,.enter
    132   { SPECIAL_KEY_ALPHA, 1.5, 0, 0 },
    133   { ui::VKEY_OEM_MINUS, 1, ui::EF_SHIFT_DOWN, '_' },
    134   { ui::VKEY_OEM_2, 1, 0, '/' },
    135   { ui::VKEY_SPACE, 3, 0, ' ' },
    136   { ui::VKEY_OEM_COMMA, 1, 0, ',' },
    137   { ui::VKEY_OEM_PERIOD, 1, 0, '.' },
    138   { ui::VKEY_RETURN, 1.5, 0, 0 },
    139 };
    140 
    141 const Row kNumericRow1 = {
    142   0,
    143   kNumericKeysRow1,
    144   arraysize(kNumericKeysRow1),
    145 };
    146 
    147 const Row kNumericRow2 = {
    148   .5,
    149   kNumericKeysRow2,
    150   arraysize(kNumericKeysRow2),
    151 };
    152 
    153 const Row kNumericRow3 = {
    154   1.5,
    155   kNumericKeysRow3,
    156   arraysize(kNumericKeysRow3),
    157 };
    158 
    159 const Row kNumericRow4 = {
    160   0,
    161   kNumericKeysRow4,
    162   arraysize(kNumericKeysRow4),
    163 };
    164 
    165 }  // namespace
    166 
    167 std::vector<const Row*> GetQWERTYRows() {
    168   std::vector<const Row*> rows;
    169   rows.push_back(&kQWERTYRow1);
    170   rows.push_back(&kQWERTYRow2);
    171   rows.push_back(&kQWERTYRow3);
    172   rows.push_back(&kQWERTYRow4);
    173   return rows;
    174 }
    175 
    176 std::vector<const Row*> GetNumericRows() {
    177   std::vector<const Row*> rows;
    178   rows.push_back(&kNumericRow1);
    179   rows.push_back(&kNumericRow2);
    180   rows.push_back(&kNumericRow3);
    181   rows.push_back(&kNumericRow4);
    182   return rows;
    183 }
    184 
    185 }  // namespace examples
    186 }  // namespace mojo
    187