Tomasito665

Example keyboard layouts with dead keys

Jul 21st, 2016
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.56 KB | None | 0 0
  1. struct KbdKeyChar {
  2.     char16_t character;
  3.     bool isDeadKey;
  4. };
  5.  
  6. // English (U.S)
  7. static const KbdKeyChar en_US[48][2] = {
  8.     // Digits row
  9.     /* <TLDE> */ {{'`'}, {'~'}},
  10.     /* <AE01> */ {{'1'}, {'!'}},
  11.     /* <AE02> */ {{'2'}, {'@'}},
  12.     /* <AE03> */ {{'3'}, {'#'}},
  13.     /* <AE04> */ {{'4'}, {'$'}},
  14.     /* <AE05> */ {{'5'}, {'%'}},
  15.     /* <AE06> */ {{'6'}, {'^'}},
  16.     /* <AE07> */ {{'7'}, {'&'}},
  17.     /* <AE08> */ {{'8'}, {'*'}},
  18.     /* <AE09> */ {{'9'}, {'('}},
  19.     /* <AE10> */ {{'0'}, {')'}},
  20.     /* <AE11> */ {{'-'}, {'_'}},
  21.     /* <AE12> */ {{'='}, {'+'}},
  22.  
  23.     // Upper row
  24.     /* <AD01> */ {{'q'}, {'Q'}},
  25.     /* <AD02> */ {{'w'}, {'W'}},
  26.     /* <AD03> */ {{'e'}, {'E'}},
  27.     /* <AD04> */ {{'r'}, {'R'}},
  28.     /* <AD05> */ {{'t'}, {'T'}},
  29.     /* <AD06> */ {{'y'}, {'Y'}},
  30.     /* <AD07> */ {{'u'}, {'U'}},
  31.     /* <AD08> */ {{'i'}, {'I'}},
  32.     /* <AD09> */ {{'o'}, {'O'}},
  33.     /* <AD10> */ {{'p'}, {'P'}},
  34.     /* <AD11> */ {{'['}, {'{'}},
  35.     /* <AD12> */ {{']'}, {'}'}},
  36.  
  37.     // Home row
  38.     /* <AC01> */ {{'a'}, {'A'}},
  39.     /* <AC02> */ {{'s'}, {'S'}},
  40.     /* <AC03> */ {{'d'}, {'D'}},
  41.     /* <AC04> */ {{'f'}, {'F'}},
  42.     /* <AC05> */ {{'g'}, {'G'}},
  43.     /* <AC06> */ {{'h'}, {'H'}},
  44.     /* <AC07> */ {{'j'}, {'J'}},
  45.     /* <AC08> */ {{'k'}, {'K'}},
  46.     /* <AC09> */ {{'l'}, {'L'}},
  47.     /* <AC10> */ {{';'}, {':'}},
  48.     /* <AC11> */ {{'\''}, {'\"'}},
  49.     /* <BKSL> */ {{'\\'}, {'|'}},
  50.  
  51.     // Lower row
  52.     /* <LSGT> */ {{'<'}, {'>'}},
  53.     /* <AB01> */ {{'z'}, {'Z'}},
  54.     /* <AB02> */ {{'x'}, {'X'}},
  55.     /* <AB03> */ {{'c'}, {'C'}},
  56.     /* <AB04> */ {{'v'}, {'V'}},
  57.     /* <AB05> */ {{'b'}, {'B'}},
  58.     /* <AB06> */ {{'n'}, {'N'}},
  59.     /* <AB07> */ {{'m'}, {'M'}},
  60.     /* <AB08> */ {{','}, {'<'}},
  61.     /* <AB09> */ {{'.'}, {'>'}},
  62.     /* <AB10> */ {{'/'}, {'?'}}
  63. };
  64.  
  65. // German
  66. static const KbdKeyChar de_DE[48][2] = {
  67.     // Digits row
  68.     /* <TLDE> */ {{u'\u0302', true}, {u'\u00b0'}},
  69.     /* <AE01> */ {{'1'}, {'!'}},
  70.     /* <AE02> */ {{'2'}, {'\"'}},
  71.     /* <AE03> */ {{'3'}, {u'\u00a7'}},
  72.     /* <AE04> */ {{'4'}, {'$'}},
  73.     /* <AE05> */ {{'5'}, {'%'}},
  74.     /* <AE06> */ {{'6'}, {'&'}},
  75.     /* <AE07> */ {{'7'}, {'/'}},
  76.     /* <AE08> */ {{'8'}, {'('}},
  77.     /* <AE09> */ {{'9'}, {')'}},
  78.     /* <AE10> */ {{'0'}, {'='}},
  79.     /* <AE11> */ {{u'\u00df'}, {'?'}},
  80.     /* <AE12> */ {{u'\u0301', true}, {u'\u0300', true}},
  81.  
  82.     // Upper row
  83.     /* <AD01> */ {{'q'}, {'Q'}},
  84.     /* <AD02> */ {{'w'}, {'W'}},
  85.     /* <AD03> */ {{'e'}, {'E'}},
  86.     /* <AD04> */ {{'r'}, {'R'}},
  87.     /* <AD05> */ {{'t'}, {'T'}},
  88.     /* <AD06> */ {{'z'}, {'Z'}},
  89.     /* <AD07> */ {{'u'}, {'U'}},
  90.     /* <AD08> */ {{'i'}, {'I'}},
  91.     /* <AD09> */ {{'o'}, {'O'}},
  92.     /* <AD10> */ {{'p'}, {'P'}},
  93.     /* <AD11> */ {{u'\u00fc'}, {u'\u00dc'}},
  94.     /* <AD12> */ {{'+'}, {'*'}},
  95.  
  96.     // Home row
  97.     /* <AC01> */ {{'a'}, {'A'}},
  98.     /* <AC02> */ {{'s'}, {'S'}},
  99.     /* <AC03> */ {{'d'}, {'D'}},
  100.     /* <AC04> */ {{'f'}, {'F'}},
  101.     /* <AC05> */ {{'g'}, {'G'}},
  102.     /* <AC06> */ {{'h'}, {'H'}},
  103.     /* <AC07> */ {{'j'}, {'J'}},
  104.     /* <AC08> */ {{'k'}, {'K'}},
  105.     /* <AC09> */ {{'l'}, {'L'}},
  106.     /* <AC10> */ {{u'\u00f6'}, {u'\u00d6'}},
  107.     /* <AC11> */ {{u'\u00e4'}, {u'\u00c4'}},
  108.     /* <BKSL> */ {{'#'}, {'\''}},
  109.  
  110.     // Lower row
  111.     /* <LSGT> */ {{'<'}, {'>'}},
  112.     /* <AB01> */ {{'y'}, {'Y'}},
  113.     /* <AB02> */ {{'x'}, {'X'}},
  114.     /* <AB03> */ {{'c'}, {'C'}},
  115.     /* <AB04> */ {{'v'}, {'V'}},
  116.     /* <AB05> */ {{'b'}, {'B'}},
  117.     /* <AB06> */ {{'n'}, {'N'}},
  118.     /* <AB07> */ {{'m'}, {'M'}},
  119.     /* <AB08> */ {{','}, {';'}},
  120.     /* <AB09> */ {{'.'}, {':'}},
  121.     /* <AB10> */ {{'-'}, {'_'}}
  122. };
  123.  
  124. // French
  125. static const KbdKeyChar fr_FR[48][2] = {
  126.     // Digits row
  127.     /* <TLDE> */ {{u'\u00b2'}, {'~'}},
  128.     /* <AE01> */ {{'&'}, {'1'}},
  129.     /* <AE02> */ {{u'\u00e9'}, {'2'}},
  130.     /* <AE03> */ {{'\"'}, {'3'}},
  131.     /* <AE04> */ {{'\''}, {'4'}},
  132.     /* <AE05> */ {{'('}, {'5'}},
  133.     /* <AE06> */ {{'-'}, {'6'}},
  134.     /* <AE07> */ {{u'\u00e8'}, {'7'}},
  135.     /* <AE08> */ {{'_'}, {'8'}},
  136.     /* <AE09> */ {{u'\u00e7'}, {'9'}},
  137.     /* <AE10> */ {{u'\u00e0'}, {'0'}},
  138.     /* <AE11> */ {{')'}, {u'\u00b0'}},
  139.     /* <AE12> */ {{'='}, {'+'}},
  140.  
  141.     // Upper row
  142.     /* <AD01> */ {{'a'}, {'A'}},
  143.     /* <AD02> */ {{'z'}, {'Z'}},
  144.     /* <AD03> */ {{'e'}, {'E'}},
  145.     /* <AD04> */ {{'r'}, {'R'}},
  146.     /* <AD05> */ {{'t'}, {'T'}},
  147.     /* <AD06> */ {{'y'}, {'Y'}},
  148.     /* <AD07> */ {{'u'}, {'U'}},
  149.     /* <AD08> */ {{'i'}, {'I'}},
  150.     /* <AD09> */ {{'o'}, {'O'}},
  151.     /* <AD10> */ {{'p'}, {'P'}},
  152.     /* <AD11> */ {{u'\u0302', true}, {u'\u0308', true}},
  153.     /* <AD12> */ {{'$'}, {u'\u00a3'}},
  154.  
  155.     // Home row
  156.     /* <AC01> */ {{'q'}, {'Q'}},
  157.     /* <AC02> */ {{'s'}, {'S'}},
  158.     /* <AC03> */ {{'d'}, {'D'}},
  159.     /* <AC04> */ {{'f'}, {'F'}},
  160.     /* <AC05> */ {{'g'}, {'G'}},
  161.     /* <AC06> */ {{'h'}, {'H'}},
  162.     /* <AC07> */ {{'j'}, {'J'}},
  163.     /* <AC08> */ {{'k'}, {'K'}},
  164.     /* <AC09> */ {{'l'}, {'L'}},
  165.     /* <AC10> */ {{'m'}, {'M'}},
  166.     /* <AC11> */ {{u'\u00f9'}, {'%'}},
  167.     /* <BKSL> */ {{'*'}, {u'\u00b5'}},
  168.  
  169.     // Lower row
  170.     /* <LSGT> */ {{'<'}, {'>'}},
  171.     /* <AB01> */ {{'w'}, {'W'}},
  172.     /* <AB02> */ {{'x'}, {'X'}},
  173.     /* <AB03> */ {{'c'}, {'C'}},
  174.     /* <AB04> */ {{'v'}, {'V'}},
  175.     /* <AB05> */ {{'b'}, {'B'}},
  176.     /* <AB06> */ {{'n'}, {'N'}},
  177.     /* <AB07> */ {{','}, {'?'}},
  178.     /* <AB08> */ {{';'}, {'.'}},
  179.     /* <AB09> */ {{':'}, {'/'}},
  180.     /* <AB10> */ {{'!'}, {u'\u00a7'}}
  181. };
  182.  
  183. // Russian
  184. static const KbdKeyChar ru_RU[48][2] = {
  185.     // Digits row
  186.     /* <TLDE> */ {{u'\u0451'}, {u'\u0401'}},
  187.     /* <AE01> */ {{'1'}, {'!'}},
  188.     /* <AE02> */ {{'2'}, {'\"'}},
  189.     /* <AE03> */ {{'3'}, {u'\u2116'}},
  190.     /* <AE04> */ {{'4'}, {';'}},
  191.     /* <AE05> */ {{'5'}, {'%'}},
  192.     /* <AE06> */ {{'6'}, {':'}},
  193.     /* <AE07> */ {{'7'}, {'?'}},
  194.     /* <AE08> */ {{'8'}, {'*'}},
  195.     /* <AE09> */ {{'9'}, {'('}},
  196.     /* <AE10> */ {{'0'}, {')'}},
  197.     /* <AE11> */ {{'-'}, {'_'}},
  198.     /* <AE12> */ {{'='}, {'+'}},
  199.  
  200.     // Upper row
  201.     /* <AD01> */ {{u'\u0439'}, {u'\u0419'}},
  202.     /* <AD02> */ {{u'\u0446'}, {u'\u0426'}},
  203.     /* <AD03> */ {{u'\u0443'}, {u'\u0423'}},
  204.     /* <AD04> */ {{u'\u043a'}, {u'\u041a'}},
  205.     /* <AD05> */ {{u'\u0435'}, {u'\u0415'}},
  206.     /* <AD06> */ {{u'\u043d'}, {u'\u041d'}},
  207.     /* <AD07> */ {{u'\u0433'}, {u'\u0413'}},
  208.     /* <AD08> */ {{u'\u0448'}, {u'\u0428'}},
  209.     /* <AD09> */ {{u'\u0449'}, {u'\u0429'}},
  210.     /* <AD10> */ {{u'\u0437'}, {u'\u0417'}},
  211.     /* <AD11> */ {{u'\u0445'}, {u'\u0425'}},
  212.     /* <AD12> */ {{u'\u044a'}, {u'\u042a'}},
  213.  
  214.     // Home row
  215.     /* <AC01> */ {{u'\u0444'}, {u'\u0424'}},
  216.     /* <AC02> */ {{u'\u044b'}, {u'\u042b'}},
  217.     /* <AC03> */ {{u'\u0432'}, {u'\u0412'}},
  218.     /* <AC04> */ {{u'\u0430'}, {u'\u0410'}},
  219.     /* <AC05> */ {{u'\u043f'}, {u'\u041f'}},
  220.     /* <AC06> */ {{u'\u0440'}, {u'\u0420'}},
  221.     /* <AC07> */ {{u'\u043e'}, {u'\u041e'}},
  222.     /* <AC08> */ {{u'\u043b'}, {u'\u041b'}},
  223.     /* <AC09> */ {{u'\u0434'}, {u'\u0414'}},
  224.     /* <AC10> */ {{u'\u0436'}, {u'\u0416'}},
  225.     /* <AC11> */ {{u'\u044d'}, {u'\u042d'}},
  226.     /* <BKSL> */ {{'\\'}, {'/'}},
  227.  
  228.     // Lower row
  229.     /* <LSGT> */ {{'/'}, {'|'}},
  230.     /* <AB01> */ {{u'\u044f'}, {u'\u042f'}},
  231.     /* <AB02> */ {{u'\u0447'}, {u'\u0427'}},
  232.     /* <AB03> */ {{u'\u0441'}, {u'\u0421'}},
  233.     /* <AB04> */ {{u'\u043c'}, {u'\u041c'}},
  234.     /* <AB05> */ {{u'\u0438'}, {u'\u0418'}},
  235.     /* <AB06> */ {{u'\u0442'}, {u'\u0422'}},
  236.     /* <AB07> */ {{u'\u044c'}, {u'\u042c'}},
  237.     /* <AB08> */ {{u'\u0431'}, {u'\u0411'}},
  238.     /* <AB09> */ {{u'\u044e'}, {u'\u042e'}},
  239.     /* <AB10> */ {{'.'}, {','}}
  240. };
Advertisement
Add Comment
Please, Sign In to add comment