@@ -152,166 +152,160 @@ namespace xtd::forms::native {
152
152
153
153
template <typename control_t >
154
154
inline intptr control_wrapper<control_t >::convert_to_virtual_key(const wxKeyEvent& key_event) {
155
- intptr key_data = VK_NONE;
156
- if (key_event.GetUnicodeKey () != WXK_NONE && key_event.GetUnicodeKey () != WXK_DELETE)
157
- key_data = static_cast <intptr>(key_event.GetUnicodeKey ());
158
- else {
159
- switch (key_event.GetKeyCode ()) {
160
- case WXK_NONE:
155
+ if (key_event.GetUnicodeKey () != WXK_NONE && key_event.GetUnicodeKey () != WXK_DELETE) return static_cast <intptr>(key_event.GetUnicodeKey ());
161
156
#if defined(__WXOSX__)
162
- if ( key_event.GetRawKeyCode () == kVK_Function ) key_data = VK_FUNCTION;
157
+ if (key_event. GetKeyCode () == WXK_NONE && key_event.GetRawKeyCode () == kVK_Function ) return VK_FUNCTION;
163
158
#endif
164
- break ;
165
- case WXK_BACK: key_data = VK_BACK; break ;
166
- case WXK_TAB: key_data = VK_TAB; break ;
167
- case WXK_RETURN: key_data = VK_RETURN; break ;
168
- case WXK_ESCAPE: key_data = VK_ESCAPE; break ;
169
- case WXK_SPACE: key_data = VK_SPACE; break ;
170
- case WXK_DELETE: key_data = VK_DELETE; break ;
171
- case WXK_START: key_data = VK_LAUNCH_APP1; break ;
172
- case WXK_LBUTTON: key_data = VK_LBUTTON; break ;
173
- case WXK_RBUTTON: key_data = VK_RBUTTON; break ;
174
- case WXK_CANCEL: key_data = VK_CANCEL; break ;
175
- case WXK_MBUTTON: key_data = VK_MBUTTON; break ;
176
- case WXK_CLEAR: key_data = VK_CLEAR; break ;
177
- case WXK_SHIFT: key_data = VK_SHIFT; break ;
178
- case WXK_ALT: key_data = VK_MENU; break ;
159
+
160
+ switch (key_event.GetKeyCode ()) {
161
+ case WXK_NONE: return VK_NONE;
162
+ case WXK_BACK: return VK_BACK;
163
+ case WXK_TAB: return VK_TAB;
164
+ case WXK_RETURN: return VK_RETURN;
165
+ case WXK_ESCAPE: return VK_ESCAPE;
166
+ case WXK_SPACE: return VK_SPACE;
167
+ case WXK_DELETE: return VK_DELETE;
168
+ case WXK_START: return VK_LAUNCH_APP1;
169
+ case WXK_LBUTTON: return VK_LBUTTON;
170
+ case WXK_RBUTTON: return VK_RBUTTON;
171
+ case WXK_CANCEL: return VK_CANCEL;
172
+ case WXK_MBUTTON: return VK_MBUTTON;
173
+ case WXK_CLEAR: return VK_CLEAR;
174
+ case WXK_SHIFT: return VK_SHIFT;
175
+ case WXK_ALT: return VK_MENU;
179
176
#if defined(__WXOSX__)
180
- case WXK_RAW_CONTROL: key_data = key_event.GetRawKeyCode () == kVK_Control ? VK_LWIN : VK_RWIN; break ;
181
- case WXK_COMMAND: key_data = VK_CONTROL; break ;
177
+ case WXK_RAW_CONTROL: return key_event.GetRawKeyCode () == kVK_Control ? VK_LWIN : VK_RWIN;
178
+ case WXK_COMMAND: return VK_CONTROL;
182
179
#else
183
- case WXK_CONTROL: key_data = VK_CONTROL; break ;
180
+ case WXK_CONTROL: return VK_CONTROL;
184
181
#endif
185
- case WXK_MENU: key_data = VK_MENU; break ;
186
- case WXK_PAUSE: key_data = VK_PAUSE; break ;
187
- case WXK_CAPITAL: key_data = VK_CAPITAL; break ;
188
- case WXK_END: key_data = VK_END; break ;
189
- case WXK_HOME: key_data = VK_HOME; break ;
190
- case WXK_LEFT: key_data = VK_LEFT; break ;
191
- case WXK_UP: key_data = VK_UP; break ;
192
- case WXK_RIGHT: key_data = VK_RIGHT; break ;
193
- case WXK_DOWN: key_data = VK_DOWN; break ;
194
- case WXK_SELECT: key_data = VK_SELECT; break ;
195
- case WXK_PRINT: key_data = VK_PRINT; break ;
196
- case WXK_EXECUTE: key_data = VK_EXECUTE; break ;
197
- case WXK_SNAPSHOT: key_data = VK_SNAPSHOT; break ;
198
- case WXK_INSERT: key_data = VK_INSERT; break ;
199
- case WXK_HELP: key_data = VK_HELP; break ;
200
- case WXK_NUMPAD0: key_data = VK_NUMPAD0; break ;
201
- case WXK_NUMPAD1: key_data = VK_NUMPAD1; break ;
202
- case WXK_NUMPAD2: key_data = VK_NUMPAD2; break ;
203
- case WXK_NUMPAD3: key_data = VK_NUMPAD3; break ;
204
- case WXK_NUMPAD4: key_data = VK_NUMPAD4; break ;
205
- case WXK_NUMPAD5: key_data = VK_NUMPAD5; break ;
206
- case WXK_NUMPAD6: key_data = VK_NUMPAD6; break ;
207
- case WXK_NUMPAD7: key_data = VK_NUMPAD7; break ;
208
- case WXK_NUMPAD8: key_data = VK_NUMPAD8; break ;
209
- case WXK_NUMPAD9: key_data = VK_NUMPAD9; break ;
210
- case WXK_MULTIPLY: key_data = VK_MULTIPLY; break ;
211
- case WXK_ADD: key_data = VK_ADD; break ;
212
- case WXK_SEPARATOR: key_data = VK_SEPARATOR; break ;
213
- case WXK_DIVIDE: key_data = VK_DIVIDE; break ;
214
- case WXK_F1: key_data = VK_F1; break ;
215
- case WXK_F2: key_data = VK_F2; break ;
216
- case WXK_F3: key_data = VK_F3; break ;
217
- case WXK_F4: key_data = VK_F4; break ;
218
- case WXK_F5: key_data = VK_F5; break ;
219
- case WXK_F6: key_data = VK_F6; break ;
220
- case WXK_F7: key_data = VK_F7; break ;
221
- case WXK_F8: key_data = VK_F8; break ;
222
- case WXK_F9: key_data = VK_F9; break ;
223
- case WXK_F10: key_data = VK_F10; break ;
224
- case WXK_F11: key_data = VK_F11; break ;
225
- case WXK_F12: key_data = VK_F12; break ;
226
- case WXK_F13: key_data = VK_F13; break ;
227
- case WXK_F14: key_data = VK_F14; break ;
228
- case WXK_F15: key_data = VK_F15; break ;
229
- case WXK_F16: key_data = VK_F16; break ;
230
- case WXK_F17: key_data = VK_F17; break ;
231
- case WXK_F18: key_data = VK_F18; break ;
232
- case WXK_F19: key_data = VK_F19; break ;
233
- case WXK_F20: key_data = VK_F20; break ;
234
- case WXK_F21: key_data = VK_F21; break ;
235
- case WXK_F22: key_data = VK_F22; break ;
236
- case WXK_F23: key_data = VK_F23; break ;
237
- case WXK_F24: key_data = VK_F24; break ;
238
- case WXK_NUMLOCK: key_data = VK_NUMLOCK; break ;
239
- case WXK_SCROLL: key_data = VK_SCROLL; break ;
240
- case WXK_PAGEUP: key_data = VK_PAGEUP; break ;
241
- case WXK_PAGEDOWN: key_data = VK_PAGEDOWN; break ;
242
- // / --> num pad special keys
243
- case WXK_NUMPAD_SPACE: key_data = VK_SPACE; break ;
244
- case WXK_NUMPAD_TAB: key_data = VK_TAB; break ;
245
- case WXK_NUMPAD_ENTER: key_data = VK_RETURN; break ;
246
- case WXK_NUMPAD_F1: key_data = VK_F1; break ;
247
- case WXK_NUMPAD_F2: key_data = VK_F2; break ;
248
- case WXK_NUMPAD_F3: key_data = VK_F3; break ;
249
- case WXK_NUMPAD_F4: key_data = VK_F4; break ;
250
- case WXK_NUMPAD_HOME: key_data = VK_HOME; break ;
251
- case WXK_NUMPAD_LEFT: key_data = VK_LEFT; break ;
252
- case WXK_NUMPAD_UP: key_data = VK_UP; break ;
253
- case WXK_NUMPAD_RIGHT: key_data = VK_RIGHT; break ;
254
- case WXK_NUMPAD_DOWN: key_data = VK_DOWN; break ;
255
- case WXK_NUMPAD_PAGEUP: key_data = VK_PAGEUP; break ;
256
- case WXK_NUMPAD_PAGEDOWN: key_data = VK_PAGEDOWN; break ;
257
- case WXK_NUMPAD_END: key_data = VK_END; break ;
258
- case WXK_NUMPAD_BEGIN: key_data = VK_HOME; break ; // ???
259
- case WXK_NUMPAD_INSERT: key_data = VK_INSERT; break ;
260
- case WXK_NUMPAD_DELETE: key_data = VK_DELETE; break ;
261
- case WXK_NUMPAD_EQUAL: key_data = ' =' ; break ;
262
- // / <-- num pad special keys
263
- case WXK_NUMPAD_MULTIPLY: key_data = VK_MULTIPLY; break ;
264
- case WXK_NUMPAD_ADD: key_data = VK_ADD; break ;
265
- case WXK_NUMPAD_SEPARATOR: key_data = VK_SEPARATOR; break ;
266
- case WXK_NUMPAD_SUBTRACT: key_data = VK_SUBTRACT; break ;
267
- case WXK_NUMPAD_DECIMAL: key_data = VK_DECIMAL; break ;
268
- case WXK_NUMPAD_DIVIDE: key_data = VK_DIVIDE; break ;
269
- case WXK_WINDOWS_LEFT: key_data = xtd::environment::os_version ().is_macos () ? VK_CONTROL : VK_LWIN; break ;
270
- case WXK_WINDOWS_RIGHT: key_data = xtd::environment::os_version ().is_macos () ? VK_CONTROL : VK_RWIN; break ;
271
- case WXK_WINDOWS_MENU: key_data = VK_APPS; break ;
272
- // case WXK_RAW_CONTROL: key_data = xtd::forms::keys::control_key; break;
273
- case WXK_SPECIAL1: key_data = VK_OEM_1; break ;
274
- case WXK_SPECIAL2: key_data = VK_OEM_2; break ;
275
- case WXK_SPECIAL3: key_data = VK_OEM_3; break ;
276
- case WXK_SPECIAL4: key_data = VK_OEM_4; break ;
277
- case WXK_SPECIAL5: key_data = VK_OEM_5; break ;
278
- case WXK_SPECIAL6: key_data = VK_OEM_6; break ;
279
- case WXK_SPECIAL7: key_data = VK_OEM_7; break ;
280
- case WXK_SPECIAL8: key_data = VK_OEM_8; break ;
281
- case WXK_SPECIAL9: key_data = VK_OEM_AX; break ;
282
- case WXK_SPECIAL10: key_data = VK_OEM_102; break ;
283
- case WXK_SPECIAL11: key_data = VK_OEM_RESET; break ;
284
- case WXK_SPECIAL12: key_data = VK_OEM_JUMP; break ;
285
- case WXK_SPECIAL13: key_data = VK_OEM_PA1; break ;
286
- case WXK_SPECIAL14: key_data = VK_OEM_PA2; break ;
287
- case WXK_SPECIAL15: key_data = VK_OEM_PA3; break ;
288
- case WXK_SPECIAL16: key_data = VK_OEM_WSCTRL; break ;
289
- case WXK_SPECIAL17: key_data = VK_OEM_CUSEL; break ;
290
- case WXK_SPECIAL18: key_data = VK_OEM_ATTN; break ;
291
- case WXK_SPECIAL19: key_data = VK_OEM_FINISH; break ;
292
- case WXK_SPECIAL20: key_data = VK_OEM_COPY; break ;
293
- case WXK_BROWSER_BACK: key_data = VK_BROWSER_BACK; break ;
294
- case WXK_BROWSER_FORWARD: key_data = VK_BROWSER_FORWARD; break ;
295
- case WXK_BROWSER_REFRESH: key_data = VK_BROWSER_REFRESH; break ;
296
- case WXK_BROWSER_STOP: key_data = VK_BROWSER_STOP; break ;
297
- case WXK_BROWSER_SEARCH: key_data = VK_BROWSER_SEARCH; break ;
298
- case WXK_BROWSER_FAVORITES: key_data = VK_BROWSER_FAVORITES; break ;
299
- case WXK_BROWSER_HOME: key_data = VK_BROWSER_HOME; break ;
300
- case WXK_VOLUME_MUTE: key_data = VK_VOLUME_MUTE; break ;
301
- case WXK_VOLUME_DOWN: key_data = VK_VOLUME_DOWN; break ;
302
- case WXK_VOLUME_UP: key_data = VK_VOLUME_UP; break ;
303
- case WXK_MEDIA_NEXT_TRACK: key_data = VK_MEDIA_NEXT_TRACK; break ;
304
- case WXK_MEDIA_PREV_TRACK: key_data = VK_MEDIA_PREV_TRACK; break ;
305
- case WXK_MEDIA_STOP: key_data = VK_MEDIA_STOP; break ;
306
- case WXK_MEDIA_PLAY_PAUSE: key_data = VK_MEDIA_PLAY_PAUSE; break ;
307
- case WXK_LAUNCH_MAIL: key_data = VK_LAUNCH_MAIL; break ;
308
- case WXK_LAUNCH_APP1: key_data = VK_LAUNCH_APP1; break ;
309
- case WXK_LAUNCH_APP2: key_data = VK_LAUNCH_APP2; break ;
310
- default : break ;
311
- }
182
+ case WXK_MENU: return VK_MENU;
183
+ case WXK_PAUSE: return VK_PAUSE;
184
+ case WXK_CAPITAL: return VK_CAPITAL;
185
+ case WXK_END: return VK_END;
186
+ case WXK_HOME: return VK_HOME;
187
+ case WXK_LEFT: return VK_LEFT;
188
+ case WXK_UP: return VK_UP;
189
+ case WXK_RIGHT: return VK_RIGHT;
190
+ case WXK_DOWN: return VK_DOWN;
191
+ case WXK_SELECT: return VK_SELECT;
192
+ case WXK_PRINT: return VK_PRINT;
193
+ case WXK_EXECUTE: return VK_EXECUTE;
194
+ case WXK_SNAPSHOT: return VK_SNAPSHOT;
195
+ case WXK_INSERT: return VK_INSERT;
196
+ case WXK_HELP: return VK_HELP;
197
+ case WXK_NUMPAD0: return VK_NUMPAD0;
198
+ case WXK_NUMPAD1: return VK_NUMPAD1;
199
+ case WXK_NUMPAD2: return VK_NUMPAD2;
200
+ case WXK_NUMPAD3: return VK_NUMPAD3;
201
+ case WXK_NUMPAD4: return VK_NUMPAD4;
202
+ case WXK_NUMPAD5: return VK_NUMPAD5;
203
+ case WXK_NUMPAD6: return VK_NUMPAD6;
204
+ case WXK_NUMPAD7: return VK_NUMPAD7;
205
+ case WXK_NUMPAD8: return VK_NUMPAD8;
206
+ case WXK_NUMPAD9: return VK_NUMPAD9;
207
+ case WXK_MULTIPLY: return VK_MULTIPLY;
208
+ case WXK_ADD: return VK_ADD;
209
+ case WXK_SEPARATOR: return VK_SEPARATOR;
210
+ case WXK_DIVIDE: return VK_DIVIDE;
211
+ case WXK_F1: return VK_F1;
212
+ case WXK_F2: return VK_F2;
213
+ case WXK_F3: return VK_F3;
214
+ case WXK_F4: return VK_F4;
215
+ case WXK_F5: return VK_F5;
216
+ case WXK_F6: return VK_F6;
217
+ case WXK_F7: return VK_F7;
218
+ case WXK_F8: return VK_F8;
219
+ case WXK_F9: return VK_F9;
220
+ case WXK_F10: return VK_F10;
221
+ case WXK_F11: return VK_F11;
222
+ case WXK_F12: return VK_F12;
223
+ case WXK_F13: return VK_F13;
224
+ case WXK_F14: return VK_F14;
225
+ case WXK_F15: return VK_F15;
226
+ case WXK_F16: return VK_F16;
227
+ case WXK_F17: return VK_F17;
228
+ case WXK_F18: return VK_F18;
229
+ case WXK_F19: return VK_F19;
230
+ case WXK_F20: return VK_F20;
231
+ case WXK_F21: return VK_F21;
232
+ case WXK_F22: return VK_F22;
233
+ case WXK_F23: return VK_F23;
234
+ case WXK_F24: return VK_F24;
235
+ case WXK_NUMLOCK: return VK_NUMLOCK;
236
+ case WXK_SCROLL: return VK_SCROLL;
237
+ case WXK_PAGEUP: return VK_PAGEUP;
238
+ case WXK_PAGEDOWN: return VK_PAGEDOWN;
239
+ // / --> num pad special keys
240
+ case WXK_NUMPAD_SPACE: return VK_SPACE;
241
+ case WXK_NUMPAD_TAB: return VK_TAB;
242
+ case WXK_NUMPAD_ENTER: return VK_RETURN;
243
+ case WXK_NUMPAD_F1: return VK_F1;
244
+ case WXK_NUMPAD_F2: return VK_F2;
245
+ case WXK_NUMPAD_F3: return VK_F3;
246
+ case WXK_NUMPAD_F4: return VK_F4;
247
+ case WXK_NUMPAD_HOME: return VK_HOME;
248
+ case WXK_NUMPAD_LEFT: return VK_LEFT;
249
+ case WXK_NUMPAD_UP: return VK_UP;
250
+ case WXK_NUMPAD_RIGHT: return VK_RIGHT;
251
+ case WXK_NUMPAD_DOWN: return VK_DOWN;
252
+ case WXK_NUMPAD_PAGEUP: return VK_PAGEUP;
253
+ case WXK_NUMPAD_PAGEDOWN: return VK_PAGEDOWN;
254
+ case WXK_NUMPAD_END: return VK_END;
255
+ case WXK_NUMPAD_BEGIN: return VK_HOME; // ???
256
+ case WXK_NUMPAD_INSERT: return VK_INSERT;
257
+ case WXK_NUMPAD_DELETE: return VK_DELETE;
258
+ case WXK_NUMPAD_EQUAL: return ' =' ;
259
+ // / <-- num pad special keys
260
+ case WXK_NUMPAD_MULTIPLY: return VK_MULTIPLY;
261
+ case WXK_NUMPAD_ADD: return VK_ADD;
262
+ case WXK_NUMPAD_SEPARATOR: return VK_SEPARATOR;
263
+ case WXK_NUMPAD_SUBTRACT: return VK_SUBTRACT;
264
+ case WXK_NUMPAD_DECIMAL: return VK_DECIMAL;
265
+ case WXK_NUMPAD_DIVIDE: return VK_DIVIDE;
266
+ case WXK_WINDOWS_LEFT: return xtd::environment::os_version ().is_macos () ? VK_CONTROL : VK_LWIN;
267
+ case WXK_WINDOWS_RIGHT: return xtd::environment::os_version ().is_macos () ? VK_CONTROL : VK_RWIN;
268
+ case WXK_WINDOWS_MENU: return VK_APPS;
269
+ // case WXK_RAW_CONTROL: return xtd::forms::keys::control_key;
270
+ case WXK_SPECIAL1: return VK_OEM_1;
271
+ case WXK_SPECIAL2: return VK_OEM_2;
272
+ case WXK_SPECIAL3: return VK_OEM_3;
273
+ case WXK_SPECIAL4: return VK_OEM_4;
274
+ case WXK_SPECIAL5: return VK_OEM_5;
275
+ case WXK_SPECIAL6: return VK_OEM_6;
276
+ case WXK_SPECIAL7: return VK_OEM_7;
277
+ case WXK_SPECIAL8: return VK_OEM_8;
278
+ case WXK_SPECIAL9: return VK_OEM_AX;
279
+ case WXK_SPECIAL10: return VK_OEM_102;
280
+ case WXK_SPECIAL11: return VK_OEM_RESET;
281
+ case WXK_SPECIAL12: return VK_OEM_JUMP;
282
+ case WXK_SPECIAL13: return VK_OEM_PA1;
283
+ case WXK_SPECIAL14: return VK_OEM_PA2;
284
+ case WXK_SPECIAL15: return VK_OEM_PA3;
285
+ case WXK_SPECIAL16: return VK_OEM_WSCTRL;
286
+ case WXK_SPECIAL17: return VK_OEM_CUSEL;
287
+ case WXK_SPECIAL18: return VK_OEM_ATTN;
288
+ case WXK_SPECIAL19: return VK_OEM_FINISH;
289
+ case WXK_SPECIAL20: return VK_OEM_COPY;
290
+ case WXK_BROWSER_BACK: return VK_BROWSER_BACK;
291
+ case WXK_BROWSER_FORWARD: return VK_BROWSER_FORWARD;
292
+ case WXK_BROWSER_REFRESH: return VK_BROWSER_REFRESH;
293
+ case WXK_BROWSER_STOP: return VK_BROWSER_STOP;
294
+ case WXK_BROWSER_SEARCH: return VK_BROWSER_SEARCH;
295
+ case WXK_BROWSER_FAVORITES: return VK_BROWSER_FAVORITES;
296
+ case WXK_BROWSER_HOME: return VK_BROWSER_HOME;
297
+ case WXK_VOLUME_MUTE: return VK_VOLUME_MUTE;
298
+ case WXK_VOLUME_DOWN: return VK_VOLUME_DOWN;
299
+ case WXK_VOLUME_UP: return VK_VOLUME_UP;
300
+ case WXK_MEDIA_NEXT_TRACK: return VK_MEDIA_NEXT_TRACK;
301
+ case WXK_MEDIA_PREV_TRACK: return VK_MEDIA_PREV_TRACK;
302
+ case WXK_MEDIA_STOP: return VK_MEDIA_STOP;
303
+ case WXK_MEDIA_PLAY_PAUSE: return VK_MEDIA_PLAY_PAUSE;
304
+ case WXK_LAUNCH_MAIL: return VK_LAUNCH_MAIL;
305
+ case WXK_LAUNCH_APP1: return VK_LAUNCH_APP1;
306
+ case WXK_LAUNCH_APP2: return VK_LAUNCH_APP2;
307
+ default : return VK_NONE;
312
308
}
313
-
314
- return key_data;
315
309
}
316
310
317
311
template <typename control_t >
0 commit comments