| // Copyright (C) 2026 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Use key mapping based on the 'KeyboardEvent.code' property vs the |
| // 'KeyboardEvent.key', because the former corresponds to the physical key |
| // position rather than the glyph printed on top of it, and is unaffected by |
| // the user's keyboard layout. |
| // For example, 'KeyW' always corresponds to the key at the physical location of |
| // the 'w' key on an English QWERTY keyboard, regardless of the user's keyboard |
| // layout, or at least the layout they have configured in their OS. |
| // Seeing as most users use the keys in the English QWERTY "WASD" position for |
| // controlling kb+mouse applications like games, it's a good bet that these are |
| // the keys most poeple are going to find natural for navigating the UI. |
| // See https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system |
| export enum KeyMapping { |
| KEY_PAN_LEFT = 'KeyA', |
| KEY_PAN_RIGHT = 'KeyD', |
| KEY_ZOOM_IN = 'KeyW', |
| KEY_ZOOM_OUT = 'KeyS', |
| } |