15.03.2015 Views

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Setup Design Guide<br />

DRAFT<br />

// of a printable name of the language for use when prompting the<br />

// user. The language printed is to be the primary language.<br />

//<br />

//<br />

// String attributes<br />

//<br />

#define LANG_RIGHT_TO_LEFT 0x00000001<br />

LANG_RIGHT_TO_LEFT: If on, the language is intended to be printed right to left. The default (off)<br />

is to print left to right.<br />

//<br />

// StringPointers Are relative offsets from the beginning of the<br />

// package to each corresponding string. This<br />

// list of pointers will be null-terminated.<br />

//<br />

typedef struct {<br />

EFI_HII_PACK_HEADER Header;<br />

RELOFST LanguageNameString;<br />

RELOFST PrintableLanguageName;<br />

UINT32 Attributes;<br />

RELOFST StringsPointers[1];<br />

STRING Strings[1];<br />

} EFI_HII_STRING_PACK;<br />

//<br />

// Glyph Attributes<br />

//<br />

#define GLYPH_NON_SPACING 1<br />

#define GLYPH_NON_BREAKING 2<br />

Unicode defines several non-spacing characters which are generally used to implement uncommon<br />

accents, etc (as in Vietnamese). The idea is to ‘or’ the non-spacing character over the succeeding<br />

character.<br />

typedef struct {<br />

CHAR16<br />

UnicodeWeight;<br />

UINT8<br />

Attributes;<br />

UINT8<br />

GlyphCol1[19];<br />

} EFI_NARROW_GLYPH;<br />

typedef struct {<br />

CHAR16 UnicodeWeight;<br />

UINT8<br />

Attributes;<br />

UINT8<br />

GlyphCol1[19], GlyphCol2[19];<br />

UINT8<br />

Pad[3];<br />

} EFI_WIDE_GLYPH;<br />

49

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

Saved successfully!

Ooh no, something went wrong!