initial commit
[profile/ivi/xorg-x11-server.git] / hw / xwin / winlayouts.h
1 /*
2  * Copyright (c) 2005 Alexander Gottwald
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  *
22  * Except as contained in this notice, the name(s) of the above copyright
23  * holders shall not be used in advertising or otherwise to promote the sale,
24  * use or other dealings in this Software without prior written authorization.
25  */
26 /* Definitions for various keyboard layouts from windows and their 
27  * XKB settings.
28  */
29
30 typedef struct 
31 {
32     unsigned int winlayout;
33     int winkbtype;
34     char *xkbmodel;
35     char *xkblayout;
36     char *xkbvariant;
37     char *xkboptions;
38     char *layoutname;
39 } WinKBLayoutRec, *WinKBLayoutPtr;
40
41 /*
42    This table is sorted by low byte of winlayout, then by next byte, etc.
43 */
44
45 WinKBLayoutRec winKBLayouts[] = 
46 {
47     {  0x404, -1, "pc105", "zh_TW",   NULL, NULL, "Chinese (Taiwan)"},
48     {  0x405, -1, "pc105", "cz",      NULL, NULL, "Czech"},
49     {0x10405, -1, "pc105", "cz_qwerty", NULL, NULL, "Czech (QWERTY)"},
50     {  0x406, -1, "pc105", "dk",      NULL, NULL, "Danish"},
51     {  0x407, -1, "pc105", "de",      NULL, NULL, "German (Germany)"},
52     {0x10407, -1, "pc105", "de",      NULL, NULL, "German (Germany, IBM)"},
53     {  0x807, -1, "pc105", "ch",      "de", NULL, "German (Switzerland)"},
54     {  0x409, -1, "pc105", "us",      NULL, NULL, "English (USA)"},
55     {0x10409, -1, "pc105", "dvorak",  NULL, NULL, "English (USA, Dvorak)"}, 
56     {0x20409, -1, "pc105", "us_intl", NULL, NULL, "English (USA, International)"}, 
57     {  0x809, -1, "pc105", "gb",      NULL, NULL, "English (United Kingdom)"},
58     { 0x1809, -1, "pc105", "ie",      NULL, NULL, "Irish"},
59     {  0x40a, -1, "pc105", "es",      NULL, NULL, "Spanish (Spain, Traditional Sort)"},
60     {  0x80a, -1, "pc105", "latam",   NULL, NULL, "Latin American"},
61     {  0x40b, -1, "pc105", "fi",      NULL, NULL, "Finnish"},
62     {  0x40c, -1, "pc105", "fr",      NULL, NULL, "French (Standard)"},
63     {  0x80c, -1, "pc105", "be",      NULL, NULL, "French (Belgian)"},
64     {  0xc0c, -1, "pc105", "ca",      "fr", NULL, "French (Canada)"},
65     { 0x100c, -1, "pc105", "ch",      "fr", NULL, "French (Switzerland)"},
66     {  0x40d, -1, "pc105", "il",      NULL, NULL, "Hebrew"},
67     {  0x40e, -1, "pc105", "hu",      NULL, NULL, "Hungarian"},
68     {  0x40f, -1, "pc105", "is",      NULL, NULL, "Icelandic"},
69     {  0x410, -1, "pc105", "it",      NULL, NULL, "Italian"},
70     {0x10410, -1, "pc105", "it",      NULL, NULL, "Italian (142)"},
71     {0xa0000410,-1, "macbook79","it",   "mac",NULL, "Italiano (Apple)"},
72     {  0x411,  7, "jp106", "jp",      NULL, NULL, "Japanese"},
73     {  0x413, -1, "pc105", "nl",      NULL, NULL, "Dutch"},
74     {  0x813, -1, "pc105", "be",      NULL, NULL, "Dutch (Belgian)"},  
75     {  0x414, -1, "pc105", "no",      NULL, NULL, "Norwegian"},
76     {  0x415, -1, "pc105", "pl",      NULL, NULL, "Polish (Programmers)"},
77     {  0x416, -1, "pc105", "br",      NULL, NULL, "Portuguese (Brazil, ABNT)"},
78     {0x10416, -1, "abnt2", "br",      NULL, NULL, "Portuguese (Brazil, ABNT2)"},
79     {  0x816, -1, "pc105", "pt",      NULL, NULL, "Portuguese (Portugal)"},
80     {  0x41a, -1, "pc105", "hr",      NULL, NULL, "Croatian"},
81     {  0x41d, -1, "pc105", "se",      NULL, NULL, "Swedish (Sweden)"},
82     {  0x424, -1, "pc105", "si",      NULL, NULL, "Slovenian"},
83     {  0x425, -1, "pc105", "ee",      NULL, NULL, "Estonian"},
84     {  0x452, -1, "pc105", "gb",      "intl", NULL, "United Kingdom (Extended)"},
85     {     -1, -1, NULL,    NULL,      NULL, NULL, NULL}
86 };
87
88 /* Listing of language codes from MSDN */
89 /*
90 Support ID       XKB        Language
91 ====================================================================
92    ?    0x0000              Language Neutral
93    ?    0x0400              Process or User Default Language
94    ?    0x0800              System Default Language
95         0x0401              Arabic (Saudi Arabia)
96         0x0801              Arabic (Iraq)
97         0x0c01              Arabic (Egypt)
98         0x1001              Arabic (Libya)
99         0x1401              Arabic (Algeria)
100         0x1801              Arabic (Morocco)
101         0x1c01              Arabic (Tunisia)
102         0x2001              Arabic (Oman)
103         0x2401              Arabic (Yemen)
104         0x2801              Arabic (Syria)
105         0x2c01              Arabic (Jordan)
106         0x3001              Arabic (Lebanon)
107         0x3401              Arabic (Kuwait)
108         0x3801              Arabic (U.A.E.)
109         0x3c01              Arabic (Bahrain)
110         0x4001              Arabic (Qatar)
111                             Arabic (102) AZERTY                                 
112         0x0402              Bulgarian
113         0x0403              Catalan
114         0x0404              Chinese (Taiwan)
115         0x0804              Chinese (PRC)
116         0x0c04              Chinese (Hong Kong SAR, PRC)
117         0x1004              Chinese (Singapore)
118         0x1404              Chinese (Macao SAR) (98/ME,2K/XP)
119    X    0x0405  cz          Czech
120    X            cz_qwerty   Czech (QWERTY)
121                             Czech (Programmers)
122    X    0x0406  dk          Danish
123    X    0x0407  de          German (Standard)
124    X    0x0807  de_CH       German (Switzerland)
125         0x0c07              German (Austria)
126         0x1007              German (Luxembourg)
127         0x1407              German (Liechtenstein)
128         0x0408              Greek
129    X    0x0409  us          English (United States)
130    X    0x0809  gb          English (United Kingdom)
131         0x0c09              English (Australian)
132         0x1009              English (Canadian)
133         0x1409              English (New Zealand)
134    X    0x1809  ie          English (Ireland)
135         0x1c09              English (South Africa)
136         0x2009              English (Jamaica)
137         0x2409              English (Caribbean)
138         0x2809              English (Belize)
139         0x2c09              English (Trinidad)
140         0x3009              English (Zimbabwe) (98/ME,2K/XP)
141         0x3409              English (Philippines) (98/ME,2K/XP)
142    X    0x040a  es          Spanish (Spain, Traditional Sort)
143         0x080a              Spanish (Mexican)
144         0x0c0a              Spanish (Spain, Modern Sort)
145         0x100a              Spanish (Guatemala)
146         0x140a              Spanish (Costa Rica)
147         0x180a              Spanish (Panama)
148         0x1c0a              Spanish (Dominican Republic)
149         0x200a              Spanish (Venezuela)
150         0x240a              Spanish (Colombia)
151         0x280a              Spanish (Peru)
152         0x2c0a              Spanish (Argentina)
153         0x300a              Spanish (Ecuador)
154         0x340a              Spanish (Chile)
155         0x380a              Spanish (Uruguay)
156         0x3c0a              Spanish (Paraguay)
157         0x400a              Spanish (Bolivia)
158         0x440a              Spanish (El Salvador)
159         0x480a              Spanish (Honduras)
160         0x4c0a              Spanish (Nicaragua)
161         0x500a              Spanish (Puerto Rico)
162    X    0x040b  fi          Finnish
163                             Finnish (with Sami)
164    X    0x040c  fr          French (Standard)
165    X    0x080c  be          French (Belgian)
166    .    0x0c0c              French (Canadian)
167                             French (Canadian, Legacy)
168                             Canadian (Multilingual)
169    X    0x100c  fr_CH       French (Switzerland)
170         0x140c              French (Luxembourg)
171         0x180c              French (Monaco) (98/ME,2K/XP)
172         0x040d              Hebrew
173    X    0x040e  hu          Hungarian
174    .    0x040f              Icelandic
175    X    0x0410  it          Italian (Standard)
176         0x0810              Italian (Switzerland)
177    X    0x0411  jp          Japanese
178         0x0412              Korean
179         0x0812              Korean (Johab) (95,NT)
180    .    0x0413              Dutch (Netherlands)
181    X    0x0813  be          Dutch (Belgium)
182    X    0x0414  no          Norwegian (Bokmal)
183         0x0814              Norwegian (Nynorsk)
184    .    0x0415              Polish
185    X    0x0416  br          Portuguese (Brazil)
186    X    0x0816  pt          Portuguese (Portugal)
187    .    0x0418              Romanian
188         0x0419              Russian
189    .    0x041a              Croatian
190    .    0x081a              Serbian (Latin)
191    .    0x0c1a              Serbian (Cyrillic)
192         0x101a              Croatian (Bosnia and Herzegovina)
193         0x141a              Bosnian (Bosnia and Herzegovina)
194         0x181a              Serbian (Latin, Bosnia, and Herzegovina)
195         0x1c1a              Serbian (Cyrillic, Bosnia, and Herzegovina)
196    .    0x041b              Slovak
197    .    0x041c              Albanian
198    X    0x041d  se          Swedish
199         0x081d              Swedish (Finland)
200         0x041e              Thai
201         0x041f              Turkish
202         0x0420              Urdu (Pakistan) (98/ME,2K/XP) 
203         0x0820              Urdu (India)
204         0x0421              Indonesian
205         0x0422              Ukrainian
206         0x0423              Belarusian
207    .    0x0424              Slovenian
208         0x0425              Estonian
209         0x0426              Latvian
210         0x0427              Lithuanian
211         0x0827              Lithuanian (Classic) (98)
212         0x0429              Farsi
213         0x042a              Vietnamese (98/ME,NT,2K/XP)
214         0x042b              Armenian. This is Unicode only. (2K/XP)
215                             Armenian Eastern
216                             Armenian Western
217         0x042c              Azeri (Latin)
218         0x082c              Azeri (Cyrillic)
219         0x042d              Basque
220         0x042f              Macedonian (FYROM)
221         0x0430              Sutu
222         0x0432              Setswana/Tswana (South Africa)
223         0x0434              isiXhosa/Xhosa (South Africa)
224         0x0435              isiZulu/Zulu (South Africa)
225         0x0436              Afrikaans
226         0x0437              Georgian. This is Unicode only. (2K/XP)
227    .    0x0438              Faeroese
228         0x0439              Hindi. This is Unicode only. (2K/XP)
229         0x043a              Maltese (Malta)
230         0x043b              Sami, Northern (Norway)
231         0x083b              Sami, Northern (Sweden)
232         0x0c3b              Sami, Northern (Finland)
233         0x103b              Sami, Lule (Norway)
234         0x143b              Sami, Lule (Sweden)
235         0x183b              Sami, Southern (Norway)
236         0x1c3b              Sami, Southern (Sweden)
237         0x203b              Sami, Skolt (Finland)
238         0x243b              Sami, Inari (Finland)
239         0x043e              Malay (Malaysian)
240         0x083e              Malay (Brunei Darussalam)
241         0x0440              Kyrgyz. (XP)
242         0x0441              Swahili (Kenya)
243         0x0443              Uzbek (Latin)
244         0x0843              Uzbek (Cyrillic)
245         0x0444              Tatar (Tatarstan)
246         0x0445              Bengali (India)
247                             Bengali (Inscript)
248         0x0446              Punjabi. This is Unicode only. (XP)
249         0x0447              Gujarati. This is Unicode only. (XP)
250         0x0449              Tamil. This is Unicode only. (2K/XP)
251         0x044a              Telugu. This is Unicode only. (XP)
252         0x044b              Kannada. This is Unicode only. (XP)
253         0x044c              Malayalam (India)
254         0x044e              Marathi. This is Unicode only. (2K/XP)
255         0x044f              Sanskrit. This is Unicode only. (2K/XP)
256         0x0450              Mongolian (XP)
257         0x0452              Welsh (United Kingdom)
258         0x0455              Burmese
259         0x0456              Galician (XP)
260         0x0457              Konkani. This is Unicode only. (2K/XP)
261         0x045a              Syriac. This is Unicode only. (XP)
262         0x0465              Divehi. This is Unicode only. (XP)
263                             Divehi (Phonetic)
264                             Divehi (Typewriter)
265         0x046b              Quechua (Bolivia)
266         0x086b              Quechua (Ecuador)
267         0x0c6b              Quechua (Peru)
268         0x046c              Sesotho sa Leboa/Northern Sotho (South Africa)
269         0x007f              LOCALE_INVARIANT. See MAKELCID.
270         0x0481              Maori (New Zealand)
271 */    
272
273