OSDN Git Service

Fix a bug where the choice of the default setting for an application
[xkeymacs/xkeymacs.git] / xkeymacs / dotxkeymacs.h
1 // DotXkeymacs.h: interface for the CDotXkeymacs class.\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_DOTXKEYMACS_H__0538C427_5733_47DA_B2C6_2E957EEFC59D__INCLUDED_)\r
6 #define AFX_DOTXKEYMACS_H__0538C427_5733_47DA_B2C6_2E957EEFC59D__INCLUDED_\r
7 \r
8 #if _MSC_VER > 1000\r
9 #pragma once\r
10 #endif // _MSC_VER > 1000\r
11 \r
12 typedef struct Language\r
13 {\r
14         WORD wLanguage;\r
15         LPCTSTR szLanguage;\r
16 } Language_t;\r
17 \r
18 static const Language_t Languages[] = {\r
19         { 0x0001, _T("Arabic") },\r
20         { 0x0004, _T("Chinese") },\r
21         { 0x0009, _T("English") },\r
22         { 0x0401, _T("Arabic (Saudi Arabia)") },\r
23         { 0x0402, _T("Bulgarian") },\r
24         { 0x0403, _T("Catalan") },\r
25         { 0x0404, _T("Chinese (Taiwan)") },\r
26         { 0x0405, _T("Czech") },\r
27         { 0x0406, _T("Danish") },\r
28         { 0x0407, _T("German (Germany)") },\r
29         { 0x0408, _T("Greek") },\r
30         { 0x0409, _T("English (United States)") },\r
31         { 0x040A, _T("Spanish (Traditional Sort)") },\r
32         { 0x040B, _T("Finnish") },\r
33         { 0x040C, _T("French (France)") },\r
34         { 0x040D, _T("Hebrew") },\r
35         { 0x040E, _T("Hungarian") },\r
36         { 0x040F, _T("Icelandic") },\r
37         { 0x0410, _T("Italian (Italy)") },\r
38         { 0x0411, _T("Japanese") },\r
39         { 0x0412, _T("Korean") },\r
40         { 0x0413, _T("Dutch (Netherlands)") },\r
41         { 0x0414, _T("Norwegian (Bokmal)") },\r
42         { 0x0415, _T("Polish") },\r
43         { 0x0416, _T("Portuguese (Brazil)") },\r
44         { 0x0417, _T("Rhaeto-Romanic") },\r
45         { 0x0418, _T("Romanian") },\r
46         { 0x0419, _T("Russian") },\r
47         { 0x041A, _T("Croatian") },\r
48         { 0x041B, _T("Slovak") },\r
49         { 0x041C, _T("Albanian") },\r
50         { 0x041D, _T("Swedish") },\r
51         { 0x041E, _T("Thai") },\r
52         { 0x041F, _T("Turkish") },\r
53         { 0x0420, _T("Urdu") },\r
54         { 0x0421, _T("Indonesian") },\r
55         { 0x0422, _T("Ukrainian") },\r
56         { 0x0423, _T("Belarusian") },\r
57         { 0x0424, _T("Slovenian") },\r
58         { 0x0425, _T("Estonian") },\r
59         { 0x0426, _T("Latvian") },\r
60         { 0x0427, _T("Lithuanian") },\r
61         { 0x0428, _T("Tajik") },\r
62         { 0x0429, _T("Farsi") },\r
63         { 0x042A, _T("Vietnamese") },\r
64         { 0x042B, _T("Armenian") },\r
65         { 0x042C, _T("Azeri (Latin)") },\r
66         { 0x042D, _T("Basque") },\r
67         { 0x042E, _T("Sorbian") },\r
68         { 0x042F, _T("Macedonian (FYROM)") },\r
69         { 0x0430, _T("Sutu") },\r
70         { 0x0431, _T("Tsonga") },\r
71         { 0x0432, _T("Tswana") },\r
72         { 0x0434, _T("Xhosa") },\r
73         { 0x0435, _T("Zulu") },\r
74         { 0x0436, _T("Afrikaans") },\r
75         { 0x0437, _T("Georgian") },\r
76         { 0x0438, _T("Faeroese") },\r
77         { 0x0439, _T("Hindi") },\r
78         { 0x043A, _T("Maltese") },\r
79         { 0x043C, _T("Gaelic") },\r
80         { 0x043D, _T("Yiddish") },\r
81         { 0x043E, _T("Malay (Malaysia)") },\r
82         { 0x043F, _T("Kazakh") },\r
83         { 0x0440, _T("Kyrgyz") },\r
84         { 0x0441, _T("Swahili") },\r
85         { 0x0442, _T("Turkmen") },\r
86         { 0x0443, _T("Uzbek (Latin)") },\r
87         { 0x0444, _T("Tatar") },\r
88         { 0x0445, _T("Bengali") },\r
89         { 0x0446, _T("Punjabi") },\r
90         { 0x0447, _T("Gujarati") },\r
91         { 0x0448, _T("Oriya") },\r
92         { 0x0449, _T("Tamil") },\r
93         { 0x044A, _T("Telugu") },\r
94         { 0x044B, _T("Kannada") },\r
95         { 0x044C, _T("Malayalam") },\r
96         { 0x044D, _T("Assamese") },\r
97         { 0x044E, _T("Marathi") },\r
98         { 0x044F, _T("Sanskrit") },\r
99         { 0x0450, _T("Mongolian") },\r
100         { 0x0456, _T("Galician") },\r
101         { 0x0457, _T("Konkani") },\r
102         { 0x0458, _T("Manipuri") },\r
103         { 0x0459, _T("Sindhi") },\r
104         { 0x045A, _T("Syriac") },\r
105         { 0x045B, _T("Sinhalese") },\r
106         { 0x045C, _T("Cherokee") },\r
107         { 0x045D, _T("Inuktitut") },\r
108         { 0x045E, _T("Amharic") },\r
109         { 0x045F, _T("Tamazight (Berber/Arabic)") },\r
110         { 0x0460, _T("Kashmiri (Arabic)") },\r
111         { 0x0461, _T("Nepali") },\r
112         { 0x0462, _T("Frisian") },\r
113         { 0x0463, _T("Pashto") },\r
114         { 0x0464, _T("Filipino") },\r
115         { 0x0465, _T("Dhivehi") },\r
116         { 0x0466, _T("Edo") },\r
117         { 0x0467, _T("Fulfulde") },\r
118         { 0x0468, _T("Hausa") },\r
119         { 0x0469, _T("Ibibio") },\r
120         { 0x046A, _T("Yoruba") },\r
121         { 0x0470, _T("Igbo") },\r
122         { 0x0471, _T("Kanuri") },\r
123         { 0x0472, _T("Oromo") },\r
124         { 0x0473, _T("Tigrigna (Ethiopia)") },\r
125         { 0x0475, _T("Hawaiian") },\r
126         { 0x0476, _T("Latin") },\r
127         { 0x0477, _T("Somali") },\r
128         { 0x0478, _T("Yi") },\r
129         { 0x0801, _T("Arabic (Iraq)") },\r
130         { 0x0804, _T("Chinese (PRC)") },\r
131         { 0x0807, _T("German (Switzerland)") },\r
132         { 0x0809, _T("English (United Kingdom)") },\r
133         { 0x080A, _T("Spanish (Mexico)") },\r
134         { 0x080C, _T("French (Belgium)") },\r
135         { 0x0810, _T("Italian (Switzerland)") },\r
136         { 0x0813, _T("Dutch (Belgium)") },\r
137         { 0x0814, _T("Norwegian (Nynorsk)") },\r
138         { 0x0816, _T("Portuguese (Portugal)") },\r
139         { 0x0818, _T("Romanian (Moldova)") },\r
140         { 0x0819, _T("Russian (Moldova)") },\r
141         { 0x081A, _T("Serbian (Latin)") },\r
142         { 0x081D, _T("Swedish (Finland)") },\r
143         { 0x082C, _T("Azeri (Cyrillic)") },\r
144         { 0x0843, _T("Uzbek (Cyrillic)") },\r
145         { 0x085F, _T("Tamazight (Latin)") },\r
146         { 0x0873, _T("Tigrigna (Eritrea)") },\r
147         { 0x0C01, _T("Arabic (Egypt)") },\r
148         { 0x0C04, _T("Chinese (Hong Kong SAR)") },\r
149         { 0x0C07, _T("German (Austria)") },\r
150         { 0x0C09, _T("English (Australia)") },\r
151         { 0x0C0A, _T("Spanish (International Sort)") },\r
152         { 0x0C0C, _T("French (Canada)") },\r
153         { 0x0C1A, _T("Serbian (Cyrillic)") },\r
154         { 0x1001, _T("Arabic (Libya)") },\r
155         { 0x1004, _T("Chinese (Singapore)") },\r
156         { 0x1007, _T("German (Luxembourg)") },\r
157         { 0x1009, _T("English (Canada)") },\r
158         { 0x100A, _T("Spanish (Guatemala)") },\r
159         { 0x100C, _T("French (Switzerland)") },\r
160         { 0x1401, _T("Arabic (Algeria)") },\r
161         { 0x1407, _T("German (Liechtenstein)") },\r
162         { 0x1409, _T("English (New Zealand)") },\r
163         { 0x140A, _T("Spanish (Costa Rica)") },\r
164         { 0x140C, _T("French (Luxembourg)") },\r
165         { 0x1801, _T("Arabic (Morocco)") },\r
166         { 0x1809, _T("English (Ireland)") },\r
167         { 0x180A, _T("Spanish (Panama)") },\r
168         { 0x1C01, _T("Arabic (Tunisia)") },\r
169         { 0x1C09, _T("English (South Africa)") },\r
170         { 0x1C0A, _T("Spanish (Dominican Republic)") },\r
171         { 0x2001, _T("Arabic (Oman)") },\r
172         { 0x2009, _T("English (Jamaica)") },\r
173         { 0x200A, _T("Spanish (Venezuela)") },\r
174         { 0x2401, _T("Arabic (Yemen)") },\r
175         { 0x240A, _T("Spanish (Colombia)") },\r
176         { 0x2801, _T("Arabic (Syria)") },\r
177         { 0x2809, _T("English (Belize)") },\r
178         { 0x280A, _T("Spanish (Peru)") },\r
179         { 0x2C01, _T("Arabic (Jordan)") },\r
180         { 0x2C09, _T("English (Trinidad)") },\r
181         { 0x2C0A, _T("Spanish (Argentina)") },\r
182         { 0x3001, _T("Arabic (Lebanon)") },\r
183         { 0x300A, _T("Spanish (Ecuador)") },\r
184         { 0x3401, _T("Arabic (Kuwait)") },\r
185         { 0x340A, _T("Spanish (Chile)") },\r
186         { 0x3801, _T("Arabic (U.A.E.)") },\r
187         { 0x380A, _T("Spanish (Uruguay)") },\r
188         { 0x3C01, _T("Arabic (Bahrain)") },\r
189         { 0x3C0A, _T("Spanish (Paraguay)") },\r
190         { 0x4001, _T("Arabic (Qatar)") },\r
191         { 0x400A, _T("Spanish (Bolivia)") },\r
192         { 0x440A, _T("Spanish (El Salvador)") },\r
193         { 0x480A, _T("Spanish (Honduras)") },\r
194         { 0x4C0A, _T("Spanish (Nicaragua)") },\r
195         { 0x500A, _T("Spanish (Puerto Rico)") },\r
196 };\r
197         \r
198 class CDotXkeymacs  \r
199 {\r
200 public:\r
201         static void RemoveKey(const int nApplicationID, const int nCommandType, const int nKey);\r
202         static void RemoveKey(const int nIndex, const int nApplicationID, const int nCommandType, const int nKey);\r
203         static CString GetFunctionDefinition(int nIndex);\r
204         static int GetIndex(int nApplicationID, int nCommandType, int nKey);\r
205         static void GetKey(int nIndex, int nApplicationID, int nKeyID, int *pCommandType, int *pKey);\r
206         static int GetKeyNumber(int nIndex, int nApplicationID);\r
207         static int GetIndex(CString szSymbol);\r
208         static void SetKey(int nIndex, int nApplicationID, int nCommandType, int nKey);\r
209         static void ClearKey(int nIndex, int nApplicationID);\r
210         static CString GetFunctionDefinition(CString szSymbol);\r
211         static CString GetFunctionSymbol(int nIndex);\r
212         static int GetFunctionNumber();\r
213         static void Load();\r
214         CDotXkeymacs();\r
215         virtual ~CDotXkeymacs();\r
216 \r
217 private:\r
218         static LPCTSTR GetLanguage();\r
219         static const TCHAR m_szExt[];\r
220         static int m_nIndex[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
221         static void ClearFunctionDefinition();\r
222         static CString GetDefinition(CString szFunctionDefinition);\r
223         static CString GetSymbol(CString szFunctionDefinition);\r
224         static BOOL IsFunctionDefinition(CString szFunctionDefinition);\r
225         static CObList m_oFunctionDefinition;\r
226         static void LoadUserData(LPCTSTR lpszFileName);\r
227         static void LoadMainData(LPCTSTR lpszFileName);\r
228         static void Load(LPCTSTR lpszFileName);\r
229 };\r
230 \r
231 #endif // !defined(AFX_DOTXKEYMACS_H__0538C427_5733_47DA_B2C6_2E957EEFC59D__INCLUDED_)\r