MiniGUI API Reference (MiniGUI-Standalone)  v5.0.6
A mature and proven cross-platform GUI system for embedded and smart IoT devices
Macros | Enumerations
Abstract Character Types

MiniGUI uses a Uint32 value to store the type information of a character. More...

Macros

#define ACHARTYPE_EXTRACT_BASIC(t)   (((t) & ACHARTYPE_BASIC_MASK))
 Extract the basic type from an abstract character type. More...
 
#define ACHARTYPE_EXTRACT_CATEGORY(t)   (((t) & ACHARTYPE_CATEGORY_MASK) >> 16)
 Extract the UNICODE general category from an abstract character type. More...
 
#define ACHARTYPE_EXTRACT_BREAK(t)   (((t) & ACHARTYPE_BREAK_MASK) >> 24)
 Extract the UNICODE break class from an abstract character type. More...
 
#define ACHARTYPE_UNKNOWN   0
 Unknown abstract character type. More...
 
#define ACHAR_BASIC_CTRL1   0x0100
 
#define ACHAR_BASIC_BEL   0x0200
 
#define ACHAR_BASIC_BS   0x0300
 
#define ACHAR_BASIC_HT   0x0400
 
#define ACHAR_BASIC_LF   0x0500
 
#define ACHAR_BASIC_VT   0x0600
 
#define ACHAR_BASIC_FF   0x0700
 
#define ACHAR_BASIC_CR   0x0800
 
#define ACHAR_BASIC_CTRL2   0x0900
 
#define ACHAR_BASIC_SPACE   0x0A00
 
#define ACHAR_BASIC_ZEROWIDTH   0x0B00
 

Enumerations

enum  UCharGeneralCategory
 
enum  UCharBreakType
 
enum  ScriptType
 

Detailed Description

MiniGUI uses a Uint32 value to store the type information of a character.

MiniGUI uses the lower 16-bit integer for the basic type of an abstract character. The definition macros have ACHAR_BASIC_ as the prefix.

For a UNICODE character, MiniGUI uses the high 16-bit for the general UNICODE character categories and the possible line break classifications. The low byte for the general category, and the high byte for the break class.

Macro Definition Documentation

◆ ACHAR_BASIC_BEL

#define ACHAR_BASIC_BEL   0x0200

Bell

Definition at line 6591 of file gdi.h.

◆ ACHAR_BASIC_BS

#define ACHAR_BASIC_BS   0x0300

Backspace

Definition at line 6593 of file gdi.h.

◆ ACHAR_BASIC_CR

#define ACHAR_BASIC_CR   0x0800

Carriage Return

Definition at line 6603 of file gdi.h.

◆ ACHAR_BASIC_CTRL1

#define ACHAR_BASIC_CTRL1   0x0100

Control character (group 1)

Definition at line 6589 of file gdi.h.

◆ ACHAR_BASIC_CTRL2

#define ACHAR_BASIC_CTRL2   0x0900

Control character (group 2)

Definition at line 6605 of file gdi.h.

◆ ACHAR_BASIC_FF

#define ACHAR_BASIC_FF   0x0700

Form Feed

Definition at line 6601 of file gdi.h.

◆ ACHAR_BASIC_HT

#define ACHAR_BASIC_HT   0x0400

Horinzontal Tab

Definition at line 6595 of file gdi.h.

◆ ACHAR_BASIC_LF

#define ACHAR_BASIC_LF   0x0500

Line Feed

Definition at line 6597 of file gdi.h.

◆ ACHAR_BASIC_SPACE

#define ACHAR_BASIC_SPACE   0x0A00

Space

Definition at line 6607 of file gdi.h.

◆ ACHAR_BASIC_VT

#define ACHAR_BASIC_VT   0x0600

Vertical Tab

Definition at line 6599 of file gdi.h.

◆ ACHAR_BASIC_ZEROWIDTH

#define ACHAR_BASIC_ZEROWIDTH   0x0B00

Zero width character

Definition at line 6609 of file gdi.h.

◆ ACHARTYPE_EXTRACT_BASIC

#define ACHARTYPE_EXTRACT_BASIC (   t)    (((t) & ACHARTYPE_BASIC_MASK))

Extract the basic type from an abstract character type.

Definition at line 6559 of file gdi.h.

◆ ACHARTYPE_EXTRACT_BREAK

#define ACHARTYPE_EXTRACT_BREAK (   t)    (((t) & ACHARTYPE_BREAK_MASK) >> 24)

Extract the UNICODE break class from an abstract character type.

Definition at line 6573 of file gdi.h.

◆ ACHARTYPE_EXTRACT_CATEGORY

#define ACHARTYPE_EXTRACT_CATEGORY (   t)    (((t) & ACHARTYPE_CATEGORY_MASK) >> 16)

Extract the UNICODE general category from an abstract character type.

Definition at line 6566 of file gdi.h.

◆ ACHARTYPE_UNKNOWN

#define ACHARTYPE_UNKNOWN   0

Unknown abstract character type.

Definition at line 6580 of file gdi.h.

Enumeration Type Documentation

◆ ScriptType

enum ScriptType

ScriptType: The script type of a UNICODE character.

  • SCRIPT_INVALID_CODE: a value never returned from UCharGetScriptType()
  • SCRIPT_COMMON: a character used by multiple different scripts
  • SCRIPT_INHERITED: a mark glyph that takes its script from the base glyph to which it is attached
  • SCRIPT_ARABIC: Arabic
  • SCRIPT_ARMENIAN: Armenian
  • SCRIPT_BENGALI: Bengali
  • SCRIPT_BOPOMOFO: Bopomofo
  • SCRIPT_CHEROKEE: Cherokee
  • SCRIPT_COPTIC: Coptic
  • SCRIPT_CYRILLIC: Cyrillic
  • SCRIPT_DESERET: Deseret
  • SCRIPT_DEVANAGARI: Devanagari
  • SCRIPT_ETHIOPIC: Ethiopic
  • SCRIPT_GEORGIAN: Georgian
  • SCRIPT_GOTHIC: Gothic
  • SCRIPT_GREEK: Greek
  • SCRIPT_GUJARATI: Gujarati
  • SCRIPT_GURMUKHI: Gurmukhi
  • SCRIPT_HAN: Han
  • SCRIPT_HANGUL: Hangul
  • SCRIPT_HEBREW: Hebrew
  • SCRIPT_HIRAGANA: Hiragana
  • SCRIPT_KANNADA: Kannada
  • SCRIPT_KATAKANA: Katakana
  • SCRIPT_KHMER: Khmer
  • SCRIPT_LAO: Lao
  • SCRIPT_LATIN: Latin
  • SCRIPT_MALAYALAM: Malayalam
  • SCRIPT_MONGOLIAN: Mongolian
  • SCRIPT_MYANMAR: Myanmar
  • SCRIPT_OGHAM: Ogham
  • SCRIPT_OLD_ITALIC: Old Italic
  • SCRIPT_ORIYA: Oriya
  • SCRIPT_RUNIC: Runic
  • SCRIPT_SINHALA: Sinhala
  • SCRIPT_SYRIAC: Syriac
  • SCRIPT_TAMIL: Tamil
  • SCRIPT_TELUGU: Telugu
  • SCRIPT_THAANA: Thaana
  • SCRIPT_THAI: Thai
  • SCRIPT_TIBETAN: Tibetan
  • SCRIPT_CANADIAN_ABORIGINAL: Canadian Aboriginal
  • SCRIPT_YI: Yi
  • SCRIPT_TAGALOG: Tagalog
  • SCRIPT_HANUNOO: Hanunoo
  • SCRIPT_BUHID: Buhid
  • SCRIPT_TAGBANWA: Tagbanwa
  • SCRIPT_BRAILLE: Braille
  • SCRIPT_CYPRIOT: Cypriot
  • SCRIPT_LIMBU: Limbu
  • SCRIPT_OSMANYA: Osmanya
  • SCRIPT_SHAVIAN: Shavian
  • SCRIPT_LINEAR_B: Linear B
  • SCRIPT_TAI_LE: Tai Le
  • SCRIPT_UGARITIC: Ugaritic
  • SCRIPT_NEW_TAI_LUE: New Tai Lue
  • SCRIPT_BUGINESE: Buginese
  • SCRIPT_GLAGOLITIC: Glagolitic
  • SCRIPT_TIFINAGH: Tifinagh
  • SCRIPT_SYLOTI_NAGRI: Syloti Nagri
  • SCRIPT_OLD_PERSIAN: Old Persian
  • SCRIPT_KHAROSHTHI: Kharoshthi
  • SCRIPT_UNKNOWN: an unassigned code point
  • SCRIPT_BALINESE: Balinese
  • SCRIPT_CUNEIFORM: Cuneiform
  • SCRIPT_PHOENICIAN: Phoenician
  • SCRIPT_PHAGS_PA: Phags-pa
  • SCRIPT_NKO: N'Ko
  • SCRIPT_KAYAH_LI: Kayah Li.
  • SCRIPT_LEPCHA: Lepcha.
  • SCRIPT_REJANG: Rejang.
  • SCRIPT_SUNDANESE: Sundanese.
  • SCRIPT_SAURASHTRA: Saurashtra.
  • SCRIPT_CHAM: Cham.
  • SCRIPT_OL_CHIKI: Ol Chiki.
  • SCRIPT_VAI: Vai.
  • SCRIPT_CARIAN: Carian.
  • SCRIPT_LYCIAN: Lycian.
  • SCRIPT_LYDIAN: Lydian.
  • SCRIPT_AVESTAN: Avestan.
  • SCRIPT_BAMUM: Bamum.
  • SCRIPT_EGYPTIAN_HIEROGLYPHS: Egyptian Hieroglpyhs.
  • SCRIPT_IMPERIAL_ARAMAIC: Imperial Aramaic.
  • SCRIPT_INSCRIPTIONAL_PAHLAVI: Inscriptional Pahlavi.
  • SCRIPT_INSCRIPTIONAL_PARTHIAN: Inscriptional Parthian.
  • SCRIPT_JAVANESE: Javanese.
  • SCRIPT_KAITHI: Kaithi.
  • SCRIPT_LISU: Lisu.
  • SCRIPT_MEETEI_MAYEK: Meetei Mayek.
  • SCRIPT_OLD_SOUTH_ARABIAN: Old South Arabian.
  • SCRIPT_OLD_TURKIC: Old Turkic.
  • SCRIPT_SAMARITAN: Samaritan.
  • SCRIPT_TAI_THAM: Tai Tham.
  • SCRIPT_TAI_VIET: Tai Viet.
  • SCRIPT_BATAK: Batak.
  • SCRIPT_BRAHMI: Brahmi.
  • SCRIPT_MANDAIC: Mandaic.
  • SCRIPT_CHAKMA: Chakma.
  • SCRIPT_MEROITIC_CURSIVE: Meroitic Cursive.
  • SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs.
  • SCRIPT_MIAO: Miao.
  • SCRIPT_SHARADA: Sharada.
  • SCRIPT_SORA_SOMPENG: Sora Sompeng.
  • SCRIPT_TAKRI: Takri.
  • SCRIPT_BASSA_VAH: Bassa.
  • SCRIPT_CAUCASIAN_ALBANIAN: Caucasian Albanian.
  • SCRIPT_DUPLOYAN: Duployan.
  • SCRIPT_ELBASAN: Elbasan.
  • SCRIPT_GRANTHA: Grantha.
  • SCRIPT_KHOJKI: Kjohki.
  • SCRIPT_KHUDAWADI: Khudawadi, Sindhi.
  • SCRIPT_LINEAR_A: Linear A.
  • SCRIPT_MAHAJANI: Mahajani.
  • SCRIPT_MANICHAEAN: Manichaean.
  • SCRIPT_MENDE_KIKAKUI: Mende Kikakui.
  • SCRIPT_MODI: Modi.
  • SCRIPT_MRO: Mro.
  • SCRIPT_NABATAEAN: Nabataean.
  • SCRIPT_OLD_NORTH_ARABIAN: Old North Arabian.
  • SCRIPT_OLD_PERMIC: Old Permic.
  • SCRIPT_PAHAWH_HMONG: Pahawh Hmong.
  • SCRIPT_PALMYRENE: Palmyrene.
  • SCRIPT_PAU_CIN_HAU: Pau Cin Hau.
  • SCRIPT_PSALTER_PAHLAVI: Psalter Pahlavi.
  • SCRIPT_SIDDHAM: Siddham.
  • SCRIPT_TIRHUTA: Tirhuta.
  • SCRIPT_WARANG_CITI: Warang Citi.
  • SCRIPT_AHOM: Ahom.
  • SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs.
  • SCRIPT_HATRAN: Hatran.
  • SCRIPT_MULTANI: Multani.
  • SCRIPT_OLD_HUNGARIAN: Old Hungarian.
  • SCRIPT_SIGNWRITING: Signwriting.
  • SCRIPT_ADLAM: Adlam.
  • SCRIPT_BHAIKSUKI: Bhaiksuki.
  • SCRIPT_MARCHEN: Marchen.
  • SCRIPT_NEWA: Newa.
  • SCRIPT_OSAGE: Osage.
  • SCRIPT_TANGUT: Tangut.
  • SCRIPT_MASARAM_GONDI: Masaram Gondi.
  • SCRIPT_NUSHU: Nushu.
  • SCRIPT_SOYOMBO: Soyombo.
  • SCRIPT_ZANABAZAR_SQUARE: Zanabazar Square.
  • SCRIPT_DOGRA: Dogra.
  • SCRIPT_GUNJALA_GONDI: Gunjala Gondi.
  • SCRIPT_HANIFI_ROHINGYA: Hanifi Rohingya.
  • SCRIPT_MAKASAR: Makasar.
  • SCRIPT_MEDEFAIDRIN: Medefaidrin.
  • SCRIPT_OLD_SOGDIAN: Old Sogdian.
  • SCRIPT_SOGDIAN: Sogdian.
  • SCRIPT_ELYMAIC: Elymaic.
  • SCRIPT_NANDINAGARI: Nandinagari.
  • SCRIPT_NYIAKENG_PUACHUE_HMONGN: Nyiakeng Puachue Hmong.
  • SCRIPT_WANCHO: Wancho.

This enumeration identifies different writing systems. The values correspond to the names as defined in the Unicode standard.

Note that new types may be added in the future. Applications should be ready to handle unknown values. See Unicode Standard Annex #24: Script names.

Definition at line 7013 of file gdi.h.

◆ UCharBreakType

UCharBreakType: The break type of a UNICODE character.

  • UCHAR_BREAK_MANDATORY: Mandatory Break (BK)
  • UCHAR_BREAK_CARRIAGE_RETURN: Carriage Return (CR)
  • UCHAR_BREAK_LINE_FEED: Line Feed (LF)
  • UCHAR_BREAK_COMBINING_MARK: Attached Characters and Combining Marks (CM)
  • UCHAR_BREAK_SURROGATE: Surrogates (SG)
  • UCHAR_BREAK_ZERO_WIDTH_SPACE: Zero Width Space (ZW)
  • UCHAR_BREAK_INSEPARABLE: Inseparable (IN)
  • UCHAR_BREAK_NON_BREAKING_GLUE: Non-breaking ("Glue") (GL)
  • UCHAR_BREAK_CONTINGENT: Contingent Break Opportunity (CB)
  • UCHAR_BREAK_SPACE: Space (SP)
  • UCHAR_BREAK_AFTER: Break Opportunity After (BA)
  • UCHAR_BREAK_BEFORE: Break Opportunity Before (BB)
  • UCHAR_BREAK_BEFORE_AND_AFTER: Break Opportunity Before and After (B2)
  • UCHAR_BREAK_HYPHEN: Hyphen (HY)
  • UCHAR_BREAK_NON_STARTER: Nonstarter (NS)
  • UCHAR_BREAK_OPEN_PUNCTUATION: Opening Punctuation (OP)
  • UCHAR_BREAK_CLOSE_PUNCTUATION: Closing Punctuation (CL)
  • UCHAR_BREAK_QUOTATION: Ambiguous Quotation (QU)
  • UCHAR_BREAK_EXCLAMATION: Exclamation/Interrogation (EX)
  • UCHAR_BREAK_IDEOGRAPHIC: Ideographic (ID)
  • UCHAR_BREAK_NUMERIC: Numeric (NU)
  • UCHAR_BREAK_INFIX_SEPARATOR: Infix Separator (Numeric) (IS)
  • UCHAR_BREAK_SYMBOL: Symbols Allowing Break After (SY)
  • UCHAR_BREAK_ALPHABETIC: Ordinary Alphabetic and Symbol Characters (AL)
  • UCHAR_BREAK_PREFIX: Prefix (Numeric) (PR)
  • UCHAR_BREAK_POSTFIX: Postfix (Numeric) (PO)
  • UCHAR_BREAK_COMPLEX_CONTEXT: Complex Content Dependent (South East Asian) (SA)
  • UCHAR_BREAK_AMBIGUOUS: Ambiguous (Alphabetic or Ideographic) (AI)
  • UCHAR_BREAK_UNKNOWN: Unknown (XX)
  • UCHAR_BREAK_NEXT_LINE: Next Line (NL)
  • UCHAR_BREAK_WORD_JOINER: Word Joiner (WJ)
  • UCHAR_BREAK_HANGUL_L_JAMO: Hangul L Jamo (JL)
  • UCHAR_BREAK_HANGUL_V_JAMO: Hangul V Jamo (JV)
  • UCHAR_BREAK_HANGUL_T_JAMO: Hangul T Jamo (JT)
  • UCHAR_BREAK_HANGUL_LV_SYLLABLE: Hangul LV Syllable (H2)
  • UCHAR_BREAK_HANGUL_LVT_SYLLABLE: Hangul LVT Syllable (H3)
  • UCHAR_BREAK_CLOSE_PARANTHESIS: Closing Parenthesis (CP).
  • UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER: Conditional Japanese Starter (CJ).
  • UCHAR_BREAK_HEBREW_LETTER: Hebrew Letter (HL).
  • UCHAR_BREAK_REGIONAL_INDICATOR: Regional Indicator (RI).
  • UCHAR_BREAK_EMOJI_BASE: Emoji Base (EB).
  • UCHAR_BREAK_EMOJI_MODIFIER: Emoji Modifier (EM).
  • UCHAR_BREAK_ZERO_WIDTH_JOINER: Zero Width Joiner (ZWJ).

These are the possible line break classifications.

Since new unicode versions may add new types here, applications should be ready to handle unknown values. They may be regarded as UCHAR_BREAK_UNKNOWN.

See Unicode Line Breaking Algorithm.

Definition at line 6795 of file gdi.h.

◆ UCharGeneralCategory

UCharGeneralCategory: General category of a UNICODE character.

  • UCHAR_CATEGORY_CONTROL: General category "Other, Control" (Cc)
  • UCHAR_CATEGORY_FORMAT: General category "Other, Format" (Cf)
  • UCHAR_CATEGORY_UNASSIGNED: General category "Other, Not Assigned" (Cn)
  • UCHAR_CATEGORY_PRIVATE_USE: General category "Other, Private Use" (Co)
  • UCHAR_CATEGORY_SURROGATE: General category "Other, Surrogate" (Cs)
  • UCHAR_CATEGORY_LOWERCASE_LETTER: General category "Letter, Lowercase" (Ll)
  • UCHAR_CATEGORY_MODIFIER_LETTER: General category "Letter, Modifier" (Lm)
  • UCHAR_CATEGORY_OTHER_LETTER: General category "Letter, Other" (Lo)
  • UCHAR_CATEGORY_TITLECASE_LETTER: General category "Letter, Titlecase" (Lt)
  • UCHAR_CATEGORY_UPPERCASE_LETTER: General category "Letter, Uppercase" (Lu)
  • UCHAR_CATEGORY_SPACING_MARK: General category "Mark, Spacing" (Mc)
  • UCHAR_CATEGORY_ENCLOSING_MARK: General category "Mark, Enclosing" (Me)
  • UCHAR_CATEGORY_NON_SPACING_MARK: General category "Mark, Nonspacing" (Mn)
  • UCHAR_CATEGORY_DECIMAL_NUMBER: General category "Number, Decimal Digit" (Nd)
  • UCHAR_CATEGORY_LETTER_NUMBER: General category "Number, Letter" (Nl)
  • UCHAR_CATEGORY_OTHER_NUMBER: General category "Number, Other" (No)
  • UCHAR_CATEGORY_CONNECT_PUNCTUATION: General category "Punctuation, Connector" (Pc)
  • UCHAR_CATEGORY_DASH_PUNCTUATION: General category "Punctuation, Dash" (Pd)
  • UCHAR_CATEGORY_CLOSE_PUNCTUATION: General category "Punctuation, Close" (Pe)
  • UCHAR_CATEGORY_FINAL_PUNCTUATION: General category "Punctuation, Final quote" (Pf)
  • UCHAR_CATEGORY_INITIAL_PUNCTUATION: General category "Punctuation, Initial quote" (Pi)
  • UCHAR_CATEGORY_OTHER_PUNCTUATION: General category "Punctuation, Other" (Po)
  • UCHAR_CATEGORY_OPEN_PUNCTUATION: General category "Punctuation, Open" (Ps)
  • UCHAR_CATEGORY_CURRENCY_SYMBOL: General category "Symbol, Currency" (Sc)
  • UCHAR_CATEGORY_MODIFIER_SYMBOL: General category "Symbol, Modifier" (Sk)
  • UCHAR_CATEGORY_MATH_SYMBOL: General category "Symbol, Math" (Sm)
  • UCHAR_CATEGORY_OTHER_SYMBOL: General category "Symbol, Other" (So)
  • UCHAR_CATEGORY_LINE_SEPARATOR: General category "Separator, Line" (Zl)
  • UCHAR_CATEGORY_PARAGRAPH_SEPARATOR: General category "Separator, Paragraph" (Zp)
  • UCHAR_CATEGORY_SPACE_SEPARATOR: General category "Separator, Space" (Zs)

These are the possible character classifications from the Unicode specification. See Unicode Character Database.

Definition at line 6708 of file gdi.h.