|
muteki
|
Common data structures and definitions for the UI subsystem. More...
Go to the source code of this file.
Data Structures | |
| struct | lcd_surface_s |
| Descriptor of an LCD drawing surface or hardware framebuffer. More... | |
| struct | lcd_cursor_s |
| Cursor states usually linked to an LCD descriptor. More... | |
| struct | ui_rect_s |
| Rectangle used to represent usable drawing area in an LCD descriptor. More... | |
| struct | lcd_draw_s |
| Drawing routine common states. More... | |
| struct | lcd_font_s |
| Font rendering routine common states. More... | |
| struct | lcd_lock_s |
| An extended part of the LCD descriptor that implements descriptor locking. More... | |
| struct | lcd_base_s |
| The LCD descriptor. More... | |
| struct | lcd_thread_safe_s |
| A thread-safe variant of the LCD descriptor used on some versions of Besta RTOS. More... | |
| struct | ui_multipress_event_s |
| Multipress/multitouch event. More... | |
| struct | ui_event_base_s |
| Structure for low level UI events. More... | |
| struct | ui_event_prime_s |
| Structure for low level UI events (Prime G1 extension). More... | |
| struct | ui_message_s |
| Event struct used by SendMessage(). More... | |
| struct | ui_component_s |
| Common part of all widgets and views. More... | |
Macros | |
| #define | ui_event_s ui_event_base_s |
| #define | lcd_s lcd_base_s |
| #define | RGB_FROM_U8(r, g, b) ((r & 0xff) << 16 | ((g & 0xff) << 8) | (b & 0xff)) |
| Convert separate RGB values to integer RGB representation. | |
Typedefs | |
| typedef struct lcd_surface_s | lcd_surface_t |
| typedef struct lcd_cursor_s | lcd_cursor_t |
| typedef struct ui_rect_s | ui_rect_t |
| typedef struct lcd_draw_s | lcd_draw_t |
| typedef struct lcd_font_s | lcd_font_t |
| typedef struct lcd_lock_s | lcd_lock_t |
| typedef struct lcd_base_s | lcd_base_t |
| typedef struct lcd_thread_safe_s | lcd_thread_safe_t |
| typedef struct ui_event_base_s | ui_event_base_t |
| typedef struct ui_event_prime_s | ui_event_prime_t |
| typedef struct ui_message_s | ui_message_t |
| typedef struct ui_component_s | ui_component_t |
| typedef struct ui_multipress_event_s | ui_multipress_event_t |
| typedef struct ui_event_base_s | ui_event_t |
| typedef struct lcd_base_s | lcd_t |
| typedef int(* | lcd_rotate_callback_t) (lcd_t *self, int rotation) |
| Callback type for handling canvas rotation. | |
Enumerations | |
| enum | print_flag_e { PRINT_NONE = 0 , PRINT_INVERT = 0x1 , PRINT_INVERT_ALT = 0x4 , PRINT_UNDERSCORE_ONLY = 0x40 } |
| Process flags for string and character printing. More... | |
| enum | print_str_flag_e { PRINT_STR_ENCODING_BIG5 = 0x100 , PRINT_STR_ENCODING_GB18030 = 0x200 , PRINT_STR_ENCODING_TIS_620 = 0x400 } |
| Process flags for string printing only. More... | |
| enum | str_align_e { STR_ALIGN_LEFT = 0 , STR_ALIGN_RIGHT , STR_ALIGN_CENTER } |
| String alignment types. More... | |
| enum | blit_flag_e { BLIT_NONE = 0 , BLIT_AND = 0x2 , BLIT_OR = 0x3 , BLIT_XOR = 0x4 , BLIT_TRANSPARENT = 0xe , BLIT_ALPHA_BLENDING = 0xf , BLIT_ALPHA_BLENDING_FAST = 0x10 } |
| Process flags for blit operations. More... | |
| enum | lcd_surface_pixfmt_e { LCD_SURFACE_PIXFMT_L1 = 1 , LCD_SURFACE_PIXFMT_L4 = 4 , LCD_SURFACE_PIXFMT_L8 = 8 , LCD_SURFACE_PIXFMT_RGB444 = 12 , LCD_SURFACE_PIXFMT_RGB565 = 16 , LCD_SURFACE_PIXFMT_RGB = 24 , LCD_SURFACE_PIXFMT_XRGB = 32 , LCD_SURFACE_PIXFMT_ARGB = 32 } |
| Valid pixel formats for LCD surfaces. More... | |
| enum | lcd_surface_encoding_e { LCD_SURFACE_ENCODING_HCA = 1 , LCD_SURFACE_ENCODING_RAW = 2 } |
| Valid pixel buffer encoding for LCD surfaces. More... | |
| enum | rotation_value_e { ROTATION_TOP_SIDE_FACING_UP = 0 , ROTATION_TOP_SIDE_FACING_LEFT , ROTATION_TOP_SIDE_FACING_DOWN , ROTATION_TOP_SIDE_FACING_RIGHT , ROTATION_QUERY = 0xfe , ROTATION_APPLY = 0xff } |
| Rotation values used by lcd_rotate_callback_t. More... | |
| enum | stroke_predefined_dash_e { DASH_NONE = 0 , DASH_8_8_16_0 , DASH_4 , DASH_0_4_16_4_4_4 , DASH_12_4_4_4_4_4 , DASH_1 , DASH_2 , DASH_16 , DASH_0_1_8_1_8_1_8_1_4_0 = 12 , DASH_4_1_8_1_7_1_9_1 , DASH_3_1_7_1_7_1_4_8 , DASH_3_1_7_1_7_1_7_1_4_0 , DASH_0_1_6_1_1_1_4_1_3_1_2_1_5_2_3_0 , DASH_3_2_5_1_2_1_3_1_4_1_1_1_6_1 , DASH_7_1_6_1_6_1_6_1_3_0 , DASH_3_1_6_1_6_1_6_1_7_0 , DASH_24_8 = 22 , DASH_CUSTOM = 0x100 } |
| Predefined dash patterns. More... | |
| enum | keycode_e { KEY_ESC = 0x01 , KEY_LEFT , KEY_UP , KEY_RIGHT , KEY_DOWN , KEY_PGUP , KEY_PGDN , KEY_CAPS = 0x0a , KEY_DEL = 0xc , KEY_ENTER = 0x0d , KEY_MENU = 0x11 , KEY_FUNC_MENU = 0x11 , KEY_FONT = 0x12 , KEY_SPACE = ' ' , KEY_EXCL = '!' , KEY_TAB = 0x22 , KEY_HASH = '#' , KEY_DOLLAR = '$' , KEY_PERCENT = '' , KEY_LPAREN = '(' , KEY_RPAREN = ')' , KEY_STAR = '*' , KEY_COMMA = ',' , KEY_DASH = '-' , KEY_DOT = '.' , KEY_0 = '0' , KEY_1 = '1' , KEY_2 = '2' , KEY_3 = '3' , KEY_4 = '4' , KEY_5 = '5' , KEY_6 = '6' , KEY_7 = '7' , KEY_8 = '8' , KEY_9 = '9' , KEY_QUESTION = '?' , KEY_AT = '@' , KEY_A = 'A' , KEY_B = 'B' , KEY_C = 'C' , KEY_D = 'D' , KEY_E = 'E' , KEY_F = 'F' , KEY_G = 'G' , KEY_H = 'H' , KEY_I = 'I' , KEY_J = 'J' , KEY_K = 'K' , KEY_L = 'L' , KEY_M = 'M' , KEY_N = 'N' , KEY_O = 'O' , KEY_P = 'P' , KEY_Q = 'Q' , KEY_R = 'R' , KEY_S = 'S' , KEY_T = 'T' , KEY_U = 'U' , KEY_V = 'V' , KEY_W = 'W' , KEY_X = 'X' , KEY_Y = 'Y' , KEY_Z = 'Z' , KEY_LANG_CHN = 0x80 , KEY_LANG_YUE = 0x81 , KEY_LANG_ENG = 0x82 , KEY_POWER = 0x83 , KEY_F1 = 0x84 , KEY_F2 , KEY_F3 , KEY_F4 , KEY_F5 , KEY_APP_REC = 0x89 , KEY_SHIFT = 0x8b , KEY_IME = 0x8e , KEY_LANG_JPN = 0x8f , KEY_SYMBOL = 0x91 , KEY_HOME = 0x93 , KEY_HOME_MENU = 0x93 , KEY_PRIME_MENU = 0x93 , KEY_TOGGLE_SC_TC = 0x94 , KEY_HELP = 0x95 , KEY_SAVE = 0x96 , KEY_APP_MP3_PLAYER = 0x98 , KEY_VOL_BACKLIGHT = 0x9c , KEY_SYLLABLE = 0x9e , KEY_ORIGINAL_INPUT = 0x9f , KEY_APP_MISC_3 = 0xa3 , KEY_APP_FLASHCARD = 0xa3 , KEY_APP_MISC_5 = 0xa5 , KEY_APP_DICT_JA_DAJIRIN = 0xa5 , KEY_APP_GAMES = 0xa5 , KEY_APP_MISC_6 = 0xa6 , KEY_APP_DICT_JA_SHINMEIKAI = 0xa6 , KEY_APP_ALBUM = 0xa6 , KEY_APP_MISC_7 = 0xa7 , KEY_APP_DICT_EN_LONGMAN = 0xa7 , KEY_APP_DICT_JA_EN_GENIUS = 0xa7 , KEY_APP_MISC_8 = 0xa8 , KEY_APP_DICT_EN_JA_GENIUS = 0xa8 , KEY_PRIME_APPS = 0xb1 , KEY_PRIME_PLOT , KEY_PRIME_NUM , KEY_PRIME_VIEW , KEY_PRIME_CAS , KEY_PRIME_ALPHA , KEY_PRIME_MINUS , KEY_PRIME_DECIMAL_POINT , KEY_PRIME_PLUS , KEY_FAV = 0xc0 , KEY_APP_VIDEO_PLAYER = 0xd0 , KEY_AUX_MENU = 0xd1 , KEY_APP_TRANSLATOR_EN_ZH = 0xd2 , KEY_APP_TRANSLATOR_ZH_EN = 0xd3 , KEY_APP_DICT_EN_PRO = 0xd4 , KEY_APP_DICT_ZH_EN_BESTA = 0xe8 , KEY_APP_DICT_JA_ZH_BESTA = 0xe9 , KEY_APP_DICT_ZH_JA_BESTA = 0xea , KEY_APP_DICT_EN_OXFORD = 0xf2 , KEY_APP_DICT_EN_ZH_BESTA = 0xf3 , KEY_EDIT = 0xf5 , KEY_SEARCH = 0xf6 , KEY_BACKLIGHT = 0xf8 , KEY_COMPARE = 0xf9 , KEY_VOL = 0xfa , KEY_BATTERY = 0xfb , KEY_CONTRAST = 0xfc , KEY_USB_INSERTION = 0xfe , KEY_REPEAT = 0xff , KEY_INS = 0x101 , KEY_SCROLL_WHEEL_EVENT = 0x102 , KEY_TTS = 0x104 , KEY_SHIFT_PGUP = 0xe047 , KEY_PRIME_HOME = 0xe047 , KEY_SHIFT_PGDN = 0xe04f } |
| List of available keycodes. More... | |
| enum | scroll_wheel_e { SCROLL_DOWN , SCROLL_UP } |
| Scroll wheel direction. More... | |
| enum | ui_event_type_e { UI_EVENT_TYPE_INVALID = 0 , UI_EVENT_TYPE_TOUCH_BEGIN = 1 , UI_EVENT_TYPE_TOUCH_MOVE = 2 , UI_EVENT_TYPE_TOUCH_END = 8 , UI_EVENT_TYPE_KEY = 16 , UI_EVENT_TYPE_KEY_UP = 0x100000 } |
| UI event types. More... | |
| enum | font_type_e { SANS_TINY_CJK_NORMAL = 0 , SANS_BOLD_TINY_CJK_NORMAL , SANS_ITALIC_TINY_CJK_REGULAR_NORMAL , SANS_BOLDITALIC_TINY_CJK_REGULAR_NORMAL , SERIF_SMALL_CJK , SERIF_BOLD_SMALL_CJK , SERIF_ITALIC_SMALL_CJK_REGULAR , SERIF_BOLDITALIC_SMALL_CJK_REGULAR , SERIF_CJK , SERIF_BOLD_CJK , SERIF_ITALIC_CJK_REGULAR , SERIF_BOLDITALIC_CJK_REGULAR , SERIF_LARGE_CJK , SERIF_BOLD_LARGE_CJK , SERIF_ITALIC_LARGE_CJK , SERIF_BOLDITALIC_LARGE_CJK , MONOSPACE_CJK , MONOSPACE_TINY_NOCJK , SERIF_CJK_18 , SERIF_BOLD_CJK_19 , SERIF_SMALL_CJK_20 , SANS_TINY_NOCJK , SANS_BOLD_TINY_NOCJK , SANS_ITALIC_TINY_NOCJK , SANS_BOLDITALIC_TINY_NOCJK , SERIF_SMALL_CJK_25 , SERIF_BOLD_SMALL_CJK_26 , SERIF_ITALIC_SMALL_CJK_REGULAR_27 , SERIF_BOLDITALIC_SMALL_CJK_REGULAR_28 , SERIF_CJK_29 , SERIF_BOLD_CJK_30 , SERIF_ITALIC_CJK_REGULAR_31 , SERIF_BOLDITALIC_CJK_REGULAR_32 , SERIF_HUGE_CJK_LARGE , SANS_HUGE_CJK_LARGE , SERIF_ITALIC_HUGE_CJK_LARGE , SANS_ITALIC_HUGE_CJK_LARGE } |
| Font types. More... | |
Common data structures and definitions for the UI subsystem.
| #define RGB_FROM_U8 | ( | r, | |
| g, | |||
| b | |||
| ) | ((r & 0xff) << 16 | ((g & 0xff) << 8) | (b & 0xff)) |
Convert separate RGB values to integer RGB representation.
| r | Red value. |
| g | Green value. |
| b | Blue value. |
| typedef int(* lcd_rotate_callback_t) (lcd_t *self, int rotation) |
Callback type for handling canvas rotation.
When rotation is set to ROTATION_QUERY, the current rotation value will be returned with no side effect. When rotation is set to ROTATION_APPLY, the canvas will rotate based on current value of lcd_t::rotation.
| self | The LCD descriptor this was called from. |
| rotation | New rotation. This value will be written to lcd_t::rotation and this callback will be called recursively with ROTATION_APPLY as the rotation value to actually apply the change. |
rotation when no magic value documented above was used. | enum blit_flag_e |
Process flags for blit operations.
'|'). | Enumerator | |
|---|---|
| BLIT_NONE | Nothing. This just copies the pixels as-is. |
| BLIT_AND | Perform AND operation between source line and destination line. This effectively does a bit-wise color masking of the destination surface. |
| BLIT_OR | Perform OR operation between source line and destination line. This effectively does a bit-wise painting onto the destination surface. Colors will also be mixed in a bit-wise fashion. |
| BLIT_XOR | Perform XOR operation between source line and destination line. This effectively does a bit-wise color inversion of the destination surface. |
| BLIT_TRANSPARENT | Honor transparent color settings on the current LCD canvas. This copies the pixels when it's not exactly the same as the transparent color of the current LCD canvas. |
| BLIT_ALPHA_BLENDING | Perform alpha blending (when supported). This is done without gamma correction. |
| BLIT_ALPHA_BLENDING_FAST | Perform alpha blending (when supported). This is similar to BLIT_ALPHA_BLENDING but instead of using alpha values per-pixel, it uses only the alpha value of the first pixel for the entire surface. This makes the process slightly faster if the entire image has the same alpha values for every pixel. |
| enum font_type_e |
Font types.
The naming follows the following format, joined with underscores (_):
<style>_[variant]_[size]_<cjk>_[cjkvariant]_[cjksize]_[index]
Where
style is one of SANS, SERIF or MONOSPACE.variant or cjkvariant is one of BOLD (equivalent to REGULAR for CJK), ITALIC, BOLDITALIC (equivalent to ITALIC for CJK) or REGULAR (omitted for variant). For cjkvariant, if it is the same as variant, it will be omitted.size or cjksize is one of TINY (8px height, not available for CJK), SMALL (12px), NORMAL (16px, omitted for size), LARGE (20px) or HUGE (22px, not available for CJK). For cjksize, if it is the same as size, it will be omitted.cjk is either CJK (supports CJK character rendering) or NOCJK (does not support CJK character rendering).index is the current index (only used when all the above fields collide). | enum keycode_e |
List of available keycodes.
Keycodes starting with KEY_PRIME_ are extended keycodes exclusive to HP Prime G1 (EA656).
| Enumerator | |
|---|---|
| KEY_MENU | Bring up the function menu of the current scene. Not to be confused with the function menu. |
| KEY_FUNC_MENU | Bring up the function menu of the current scene. Alias of KEY_MENU. |
| KEY_FONT | Change font size. |
| KEY_LANG_CHN | Trigger TTS in Mandarain Chinese. |
| KEY_LANG_YUE | Trigger TTS in Cantonese. |
| KEY_LANG_ENG | Trigger TTS in English. |
| KEY_POWER | Power button event. |
| KEY_APP_REC | Launch voice recorder. |
| KEY_IME | Switch input method. |
| KEY_LANG_JPN | Trigger TTS in Japanese. |
| KEY_SYMBOL | Activate the symbol selection input method. |
| KEY_HOME | Return to home menu. |
| KEY_HOME_MENU | Return to home menu. Alias of KEY_HOME |
| KEY_PRIME_MENU | The MENU key on HP Prime. Alias of KEY_HOME |
| KEY_TOGGLE_SC_TC | Toggle simplified/traditional Chinese. |
| KEY_HELP | Show in-app help. |
| KEY_SAVE | Save current change and exit. |
| KEY_APP_MP3_PLAYER | Launch MP3 player. |
| KEY_VOL_BACKLIGHT | Open the Volume + Backlight adjustment menu. |
| KEY_SYLLABLE | Dictionary: Pronounce the current word syllable-by-syllable. |
| KEY_ORIGINAL_INPUT | Dictionary and search: Go back to the first screen the user initiated a search (with input memorized). |
| KEY_APP_MISC_3 | Board-specific app launching shortcut. |
| KEY_APP_FLASHCARD | Launch the flashcard app. Available on CA743. |
| KEY_APP_MISC_5 | Board-specific app launching shortcut. |
| KEY_APP_DICT_JA_DAJIRIN | Launch Daijirin Japanese dictionary. Available on JA738. |
| KEY_APP_GAMES | Launch the Games app. Available on CA743. |
| KEY_APP_MISC_6 | Board-specific app launching shortcut. |
| KEY_APP_DICT_JA_SHINMEIKAI | Launch Shin-Meikai Japanese dictionary. Available on JA738. |
| KEY_APP_ALBUM | Launch the album app. Available on CA743. |
| KEY_APP_MISC_7 | Board-specific app launching shortcut. |
| KEY_APP_DICT_EN_LONGMAN | Launch Longman dictionary. Available on CA743. |
| KEY_APP_DICT_JA_EN_GENIUS | Launch Genius Japanese-English dictionary. Available on JA738. |
| KEY_APP_MISC_8 | Board-specific app launching shortcut. |
| KEY_APP_DICT_EN_JA_GENIUS | Launch Genius English-Japanese dictionary. Available on JA738. |
| KEY_FAV | Show the Favorites menu. |
| KEY_APP_VIDEO_PLAYER | Launch video player app. |
| KEY_AUX_MENU | Open the global auxilary menu on touchscreen-only devices. |
| KEY_APP_TRANSLATOR_EN_ZH | Open the English to Chinese translator app. |
| KEY_APP_TRANSLATOR_ZH_EN | Open the Chinese to English translator app. |
| KEY_APP_DICT_EN_PRO | Launch Besta professional vocabulary dictionary. |
| KEY_APP_DICT_ZH_EN_BESTA | Launch Besta Chinese-English dictionary. |
| KEY_APP_DICT_JA_ZH_BESTA | Launch Besta Japanese-Chinese dictionary. |
| KEY_APP_DICT_ZH_JA_BESTA | Launch Besta Chinese-Japanese dictionary. |
| KEY_APP_DICT_EN_OXFORD | Launch Oxford dictionary. |
| KEY_APP_DICT_EN_ZH_BESTA | Launch Besta English-Chinese dictionary. |
| KEY_EDIT | Show the edit menu (cut/copy/paste). |
| KEY_SEARCH | Launch the unified search app. |
| KEY_BACKLIGHT | Open the Backlight adjustment menu. May be an alias to KEY_VOL_BACKLIGHT. |
| KEY_COMPARE | Dictionary: Parrot the current word and compare the pronunciations. |
| KEY_VOL | Open the Volume adjustment menu. May be an alias to KEY_VOL_BACKLIGHT. |
| KEY_BATTERY | Display battery indicator popup. |
| KEY_CONTRAST | Open LCD backlight and contrast adjustment menu. |
| KEY_USB_INSERTION | Event on USB cable insertion. |
| KEY_REPEAT | Dictionary: Repeatedly read out the current word. |
| KEY_SCROLL_WHEEL_EVENT | Scroll wheel event. |
| KEY_TTS | Trigger TTS. Some models may have this key instead of the usual |
| enum lcd_surface_pixfmt_e |
Valid pixel formats for LCD surfaces.
All color values are assumed to be little endian.
| Enumerator | |
|---|---|
| LCD_SURFACE_PIXFMT_L1 | 1-bit index color. |
| LCD_SURFACE_PIXFMT_L4 | 4-bit index color. |
| LCD_SURFACE_PIXFMT_L8 | 8-bit index color. |
| LCD_SURFACE_PIXFMT_RGB444 | 12-bit RGB444. |
| LCD_SURFACE_PIXFMT_RGB565 | 16-bit RGB565. |
| LCD_SURFACE_PIXFMT_RGB | 24-bit RGB. |
| LCD_SURFACE_PIXFMT_XRGB | 32-bit XRGB. |
| LCD_SURFACE_PIXFMT_ARGB | 32-bit ARGB (alias of LCD_SURFACE_PIXFMT_XRGB). |
| enum print_flag_e |
Process flags for string and character printing.
| Enumerator | |
|---|---|
| PRINT_NONE | No extra process. |
| PRINT_INVERT | Invert colors. Within the bounding box of the glyphs to be rendered, the RGB pixel value is inverted. |
| PRINT_INVERT_ALT | Seems to be an alternative version of |
| PRINT_UNDERSCORE_ONLY | Draw underscores only.
|
| enum print_str_flag_e |
Process flags for string printing only.
| Enumerator | |
|---|---|
| PRINT_STR_ENCODING_BIG5 | Assume text encoding to be BIG5 instead of UTF-16.
|
| PRINT_STR_ENCODING_GB18030 | Assume text encoding to be GB18030 instead of UTF-16. |
| PRINT_STR_ENCODING_TIS_620 | Assume text encoding to be TIS-620 instead of UTF-16. |
| enum rotation_value_e |
Rotation values used by lcd_rotate_callback_t.
| enum scroll_wheel_e |
| enum str_align_e |
Predefined dash patterns.
The numbers here follows the SVG stroke-dasharray property format.
| Enumerator | |
|---|---|
| DASH_NONE | Solid line. |
| DASH_CUSTOM | Custom dash pattern. |
| enum ui_event_type_e |
UI event types.