211 {
212
213
214 static const struct {
215 unsigned short fVK;
217 } gPair[] = {
218 { kVK_Delete, skui::Key::kBack },
219 { kVK_Return, skui::Key::kOK },
220 { kVK_UpArrow, skui::Key::kUp },
221 { kVK_DownArrow, skui::Key::kDown },
222 { kVK_LeftArrow, skui::Key::kLeft },
223 { kVK_RightArrow, skui::Key::kRight },
224 { kVK_Tab, skui::Key::kTab },
225 { kVK_PageUp, skui::Key::kPageUp },
226 { kVK_PageDown, skui::Key::kPageDown },
227 { kVK_Home, skui::Key::kHome },
228 { kVK_End, skui::Key::kEnd },
229 { kVK_ForwardDelete, skui::Key::kDelete },
230 { kVK_Escape, skui::Key::kEscape },
231 { kVK_Shift, skui::Key::kShift },
232 { kVK_RightShift, skui::Key::kShift },
233 { kVK_Control, skui::Key::kCtrl },
234 { kVK_RightControl, skui::Key::kCtrl },
235 { kVK_Option, skui::Key::kOption },
236 { kVK_RightOption, skui::Key::kOption },
237 { kVK_Command, skui::Key::kSuper },
238 { kVK_RightCommand, skui::Key::kSuper },
239 { kVK_ANSI_A, skui::Key::kA },
240 { kVK_ANSI_C, skui::Key::kC },
241 { kVK_ANSI_V, skui::Key::kV },
242 { kVK_ANSI_X, skui::Key::kX },
243 { kVK_ANSI_Y, skui::Key::kY },
244 { kVK_ANSI_Z, skui::Key::kZ },
245 };
246
247 for (size_t i = 0; i < std::size(gPair); i++) {
248 if (gPair[i].fVK == vk) {
249 return gPair[i].fKey;
250 }
251 }
252
253 return skui::Key::kNONE;
254}