Initial commit - from Precise source
[freerdp-ubuntu-pcb-backport.git] / include / freerdp / kbd / layouts.h
1 /**
2  * FreeRDP: A Remote Desktop Protocol Client
3  * XKB-based Keyboard Mapping to Microsoft Keyboard System
4  *
5  * Copyright 2009 Marc-Andre Moreau <marcandre.moreau@gmail.com>
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 /* Keyboard layout IDs used in the RDP protocol */
21
22 #ifndef __LAYOUT_IDS_H
23 #define __LAYOUT_IDS_H
24
25 #include <freerdp/api.h>
26 #include <freerdp/kbd/kbd.h>
27
28 /* Keyboard layout IDs */
29
30 #define KBD_ARABIC_101                          0x00000401
31 #define KBD_BULGARIAN                           0x00000402
32 #define KBD_CHINESE_TRADITIONAL_US              0x00000404
33 #define KBD_CZECH                               0x00000405
34 #define KBD_DANISH                              0x00000406
35 #define KBD_GERMAN                              0x00000407
36 #define KBD_GREEK                               0x00000408
37 #define KBD_US                                  0x00000409
38 #define KBD_SPANISH                             0x0000040A
39 #define KBD_FINNISH                             0x0000040B
40 #define KBD_FRENCH                              0x0000040C
41 #define KBD_HEBREW                              0x0000040D
42 #define KBD_HUNGARIAN                           0x0000040E
43 #define KBD_ICELANDIC                           0x0000040F
44 #define KBD_ITALIAN                             0x00000410
45 #define KBD_JAPANESE                            0x00000411
46 #define KBD_KOREAN                              0x00000412
47 #define KBD_DUTCH                               0x00000413
48 #define KBD_NORWEGIAN                           0x00000414
49 #define KBD_POLISH_PROGRAMMERS                  0x00000415
50 #define KBD_PORTUGUESE_BRAZILIAN_ABNT           0x00000416
51 #define KBD_ROMANIAN                            0x00000418
52 #define KBD_RUSSIAN                             0x00000419
53 #define KBD_CROATIAN                            0x0000041A
54 #define KBD_SLOVAK                              0x0000041B
55 #define KBD_ALBANIAN                            0x0000041C
56 #define KBD_SWEDISH                             0x0000041D
57 #define KBD_THAI_KEDMANEE                       0x0000041E
58 #define KBD_TURKISH_Q                           0x0000041F
59 #define KBD_URDU                                0x00000420
60 #define KBD_UKRAINIAN                           0x00000422
61 #define KBD_BELARUSIAN                          0x00000423
62 #define KBD_SLOVENIAN                           0x00000424
63 #define KBD_ESTONIAN                            0x00000425
64 #define KBD_LATVIAN                             0x00000426
65 #define KBD_LITHUANIAN_IBM                      0x00000427
66 #define KBD_FARSI                               0x00000429
67 #define KBD_VIETNAMESE                          0x0000042A
68 #define KBD_ARMENIAN_EASTERN                    0x0000042B
69 #define KBD_AZERI_LATIN                         0x0000042C
70 #define KBD_FYRO_MACEDONIAN                     0x0000042F
71 #define KBD_GEORGIAN                            0x00000437
72 #define KBD_FAEROESE                            0x00000438
73 #define KBD_DEVANAGARI_INSCRIPT                 0x00000439
74 #define KBD_MALTESE_47_KEY                      0x0000043A
75 #define KBD_NORWEGIAN_WITH_SAMI                 0x0000043B
76 #define KBD_KAZAKH                              0x0000043F
77 #define KBD_KYRGYZ_CYRILLIC                     0x00000440
78 #define KBD_TATAR                               0x00000444
79 #define KBD_BENGALI                             0x00000445
80 #define KBD_PUNJABI                             0x00000446
81 #define KBD_GUJARATI                            0x00000447
82 #define KBD_TAMIL                               0x00000449
83 #define KBD_TELUGU                              0x0000044A
84 #define KBD_KANNADA                             0x0000044B
85 #define KBD_MALAYALAM                           0x0000044C
86 #define KBD_MARATHI                             0x0000044E
87 #define KBD_MONGOLIAN_CYRILLIC                  0x00000450
88 #define KBD_UNITED_KINGDOM_EXTENDED             0x00000452
89 #define KBD_SYRIAC                              0x0000045A
90 #define KBD_NEPALI                              0x00000461
91 #define KBD_PASHTO                              0x00000463
92 #define KBD_DIVEHI_PHONETIC                     0x00000465
93 #define KBD_LUXEMBOURGISH                       0x0000046E
94 #define KBD_MAORI                               0x00000481
95 #define KBD_CHINESE_SIMPLIFIED_US               0x00000804
96 #define KBD_SWISS_GERMAN                        0x00000807
97 #define KBD_UNITED_KINGDOM                      0x00000809
98 #define KBD_LATIN_AMERICAN                      0x0000080A
99 #define KBD_BELGIAN_FRENCH                      0x0000080C
100 #define KBD_BELGIAN_PERIOD                      0x00000813
101 #define KBD_PORTUGUESE                          0x00000816
102 #define KBD_SERBIAN_LATIN                       0x0000081A
103 #define KBD_AZERI_CYRILLIC                      0x0000082C
104 #define KBD_SWEDISH_WITH_SAMI                   0x0000083B
105 #define KBD_UZBEK_CYRILLIC                      0x00000843
106 #define KBD_INUKTITUT_LATIN                     0x0000085D
107 #define KBD_CANADIAN_FRENCH_LEGACY              0x00000C0C
108 #define KBD_SERBIAN_CYRILLIC                    0x00000C1A
109 #define KBD_CANADIAN_FRENCH                     0x00001009
110 #define KBD_SWISS_FRENCH                        0x0000100C
111 #define KBD_BOSNIAN                             0x0000141A
112 #define KBD_IRISH                               0x00001809
113 #define KBD_BOSNIAN_CYRILLIC                    0x0000201A
114
115 /* Keyboard layout variant IDs */
116
117 #define KBD_ARABIC_102                                  0x00010401
118 #define KBD_BULGARIAN_LATIN                             0x00010402
119 #define KBD_CZECH_QWERTY                                0x00010405
120 #define KBD_GERMAN_IBM                                  0x00010407
121 #define KBD_GREEK_220                                   0x00010408
122 #define KBD_UNITED_STATES_DVORAK                        0x00010409
123 #define KBD_SPANISH_VARIATION                           0x0001040A
124 #define KBD_HUNGARIAN_101_KEY                           0x0001040E
125 #define KBD_ITALIAN_142                                 0x00010410
126 #define KBD_POLISH_214                                  0x00010415
127 #define KBD_PORTUGUESE_BRAZILIAN_ABNT2                  0x00010416
128 #define KBD_RUSSIAN_TYPEWRITER                          0x00010419
129 #define KBD_SLOVAK_QWERTY                               0x0001041B
130 #define KBD_THAI_PATTACHOTE                             0x0001041E
131 #define KBD_TURKISH_F                                   0x0001041F
132 #define KBD_LATVIAN_QWERTY                              0x00010426
133 #define KBD_LITHUANIAN                                  0x00010427
134 #define KBD_ARMENIAN_WESTERN                            0x0001042B
135 #define KBD_HINDI_TRADITIONAL                           0x00010439
136 #define KBD_MALTESE_48_KEY                              0x0001043A
137 #define KBD_SAMI_EXTENDED_NORWAY                        0x0001043B
138 #define KBD_BENGALI_INSCRIPT                            0x00010445
139 #define KBD_SYRIAC_PHONETIC                             0x0001045A
140 #define KBD_DIVEHI_TYPEWRITER                           0x00010465
141 #define KBD_BELGIAN_COMMA                               0x0001080C
142 #define KBD_FINNISH_WITH_SAMI                           0x0001083B
143 #define KBD_CANADIAN_MULTILINGUAL_STANDARD              0x00011009
144 #define KBD_GAELIC                                      0x00011809
145 #define KBD_ARABIC_102_AZERTY                           0x00020401
146 #define KBD_CZECH_PROGRAMMERS                           0x00020405
147 #define KBD_GREEK_319                                   0x00020408
148 #define KBD_UNITED_STATES_INTERNATIONAL                 0x00020409
149 #define KBD_THAI_KEDMANEE_NON_SHIFTLOCK                 0x0002041E
150 #define KBD_SAMI_EXTENDED_FINLAND_SWEDEN                0x0002083B
151 #define KBD_GREEK_220_LATIN                             0x00030408
152 #define KBD_UNITED_STATES_DVORAK_FOR_LEFT_HAND          0x00030409
153 #define KBD_THAI_PATTACHOTE_NON_SHIFTLOCK               0x0003041E
154 #define KBD_GREEK_319_LATIN                             0x00040408
155 #define KBD_UNITED_STATES_DVORAK_FOR_RIGHT_HAND         0x00040409
156 #define KBD_GREEK_LATIN                                 0x00050408
157 #define KBD_US_ENGLISH_TABLE_FOR_IBM_ARABIC_238_L       0x00050409
158 #define KBD_GREEK_POLYTONIC                             0x00060408
159 #define KBD_GERMAN_NEO                                  0xB0000407
160
161 /* Global Input Method Editor (IME) IDs */
162
163 #define KBD_CHINESE_TRADITIONAL_PHONETIC                        0xE0010404
164 #define KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002                    0xE0010411
165 #define KBD_KOREAN_INPUT_SYSTEM_IME_2000                        0xE0010412
166 #define KBD_CHINESE_SIMPLIFIED_QUANPIN                          0xE0010804
167 #define KBD_CHINESE_TRADITIONAL_CHANGJIE                        0xE0020404
168 #define KBD_CHINESE_SIMPLIFIED_SHUANGPIN                        0xE0020804
169 #define KBD_CHINESE_TRADITIONAL_QUICK                           0xE0030404
170 #define KBD_CHINESE_SIMPLIFIED_ZHENGMA                          0xE0030804
171 #define KBD_CHINESE_TRADITIONAL_BIG5_CODE                       0xE0040404
172 #define KBD_CHINESE_TRADITIONAL_ARRAY                           0xE0050404
173 #define KBD_CHINESE_SIMPLIFIED_NEIMA                            0xE0050804
174 #define KBD_CHINESE_TRADITIONAL_DAYI                            0xE0060404
175 #define KBD_CHINESE_TRADITIONAL_UNICODE                         0xE0070404
176 #define KBD_CHINESE_TRADITIONAL_NEW_PHONETIC                    0xE0080404
177 #define KBD_CHINESE_TRADITIONAL_NEW_CHANGJIE                    0xE0090404
178 #define KBD_CHINESE_TRADITIONAL_MICROSOFT_PINYIN_IME_3          0xE00E0804
179 #define KBD_CHINESE_TRADITIONAL_ALPHANUMERIC                    0xE00F0404
180
181 FREERDP_API rdpKeyboardLayout* get_keyboard_layouts(int types);
182 FREERDP_API const char* get_layout_name(uint32 keyboardLayoutID);
183
184 #endif