Programming Chords

Chording refers to pressing and holding down a combination of controls. This technique is functionally similar to a keyboard accelerator on a desktop computer, such as CTRL+ALT+DEL or ALT+F4. The primary difference between a chord and a keyboard accelerator is that there is no on-screen cue, such as an underlined letter on a menu item, to signal the existence of a chord. Also, chords are not application-specific; that is, they cause the same effect regardless of what application currently has the focus. Because the choice and implementation of chords are defined by the driver provided by an OEM, you cannot alter their effects.

The following table shows a sample chord map. It may not be consistent with the driver on your Palm-size PC.

Navigation controls
Action sequence
Effect
Action and Exit Press and hold the Action control, and then press the Exit control. Toggles backlight
Exit and Action Press and hold the Exit control, and then press the Action control. Initiates calibration
Exit and ArrowUp Press and hold the Exit, and then press the ArrowUp control. Increases contrast
Exit and ArrowDown Press and hold the Exit control, and then press the ArrowDown control. Decreases contrast
Action and ArrowUp Press and hold the Action control, and then press the ArrowUp control. Implements Shift+Tab
Action and ArrowDown Press and hold the Action control, and then press the ArrowDown control. Implements Tab

In the previous sample, in order to implement a chord, the Action and Exit controls do not send out VK_ACTION and VK_RETURN messages until they are released. This is because the driver identifies the beginning of a chord by the VK_23 and VK_24 messages. Once the driver captures a VK_23 or VK_24 message, it looks at the next message. If it is an identical VK_23 or VK_24 message, the driver does not implement a chord. Instead, it passes both messages on to the current application. If the second message is the second half of the chord, such as VK_UP, the driver implements a chord. When the controls are released during chording, the driver does not send the WM_KEYDOWN and WM_KEYUP messages to the application. This prevents the user from deleting important data or changing the focus of the current application.