15.03.2015 Views

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Setup Design Guide<br />

DRAFT<br />

accent keys that do not advance the cursor and in essence are a type of modifier key in that they<br />

maintain some level of state.<br />

The way a person uses a dead key is that the dead key that maybe has the function of overlaying an<br />

umlaut (two dots) onto whatever the next character might be. The user presses the umlaut dead key and<br />

follows it with a capital A. This yields a “Ä”<br />

//<br />

// If it’s a dead key, we need to pass a list of physical key<br />

// names… each with a unicode, shifted, altgr, shiftedaltgr<br />

// value. Each key name will have a Modifier value of<br />

// DEAD_KEY_MODIFIER for first entry, and then the list of<br />

// DEAD_KEY_DEPENDENCY_MODIFIER physical key descriptions.<br />

// This eventually will lead to the next normal non-dead-key<br />

// definition.<br />

//<br />

// This requires defining an additional Modifier value of<br />

// DEAD_KEY_DEPENDENCY_MODIFIER to signify DEAD_KEY_MODIFIER<br />

// children definitions.<br />

//<br />

// The keyboard driver (consumer of the layouts) will know that<br />

// any key definitions with the DEAD_KEY_DEPENDENCY_MODIFIER<br />

// modifier do not redefine the value of the specified EFI_KEY.<br />

// They are simply used as a special case augmentation to the<br />

// original DEAD_KEY_MODIFIER.<br />

//<br />

// It is an error condition to define a DEAD_KEY_MODIFIER<br />

// without having all the DEAD_KEY_DEPENDENCY_MODIFIER<br />

// keys defined serially.<br />

//<br />

Layout = {<br />

EfiKeyE0, 0, 0, 0, 0, DEAD_KEY_MODIFIER,<br />

EfiKeyC1, 0x00E2, 0x00C2, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />

EfiKeyD3, 0x00EA, 0x00CA, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />

EfiKeyD8, 0x00EC, 0x00CC, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />

EfiKeyD9, 0x00F4, 0x00D4, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />

EfiKeyD7, 0x00FB, 0x00CB, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />

}<br />

In the above example, a key located at E0 is designated as a Dead Key. Using a common German<br />

keyboard layout as the example, at the E0 location a circumflex accent “^” is defined as a dead key.<br />

The valid keys that can be pressed after the dead key which will produce valid printable characters are<br />

the A, E, I, O, and U characters. These are located at C1, D3, D8, D9, and D7 respectively.<br />

The results of the Layout definition provided above would allow for the production of the following<br />

characters: âÂêÊîÎôÔûÛ.<br />

84

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!