mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-25 02:33:59 +08:00
342 lines
18 KiB
C
342 lines
18 KiB
C
|
|
/*
|
|
* Copyright (C) 2000-2007 Beijing Komoxo Inc.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef SE_MINIGUI_H
|
|
#define SE_MINIGUI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
#define SE_FONT_DYNAMIC_LOADING_SUPPORT
|
|
#define SE_PALETTE_AUTO_ADJUST
|
|
|
|
/* Script Easy integration API with minigui */
|
|
|
|
#ifndef SE_EXPORT
|
|
#define SE_EXPORT extern
|
|
#endif
|
|
|
|
typedef int sestatus;
|
|
typedef unsigned short seunichar16;
|
|
|
|
/*{{ status_code_definition {{*/
|
|
|
|
#define SE_STATUS_OK 0
|
|
|
|
#define SE_STATUS_VISIBLE 1
|
|
#define SE_STATUS_INVISIBLE 2
|
|
#define SE_STATUS_OUTSIDE 3
|
|
#define SE_STATUS_NO_TEXT 4
|
|
#define SE_STATUS_OUT_OF_START 5
|
|
#define SE_STATUS_OUT_OF_END 6
|
|
|
|
#define SE_STATUS_INVALID_PARAMETER -1
|
|
#define SE_STATUS_INVALID_DEVICE_CONTEXT -2
|
|
#define SE_STATUS_TEXT_ILL_FORMED -3
|
|
#define SE_STATUS_MARKUP_ILL_FORMED -4
|
|
#define SE_STATUS_TEXT_TOO_LONG -5
|
|
#define SE_STATUS_NO_FONT -6
|
|
#define SE_STATUS_NOT_INITIALIZED -7
|
|
|
|
/*}} status_code_definition }}*/
|
|
|
|
typedef unsigned int (*SeFontAccessFunc)(
|
|
void* name,
|
|
void* buffer,
|
|
unsigned int offset,
|
|
unsigned int size);
|
|
|
|
typedef struct
|
|
{
|
|
int language;
|
|
const void* language_data;
|
|
const void* font_table;
|
|
const void* logical_font_table;
|
|
SeFontAccessFunc font_access_callback;
|
|
void* mem_pool;
|
|
int mem_pool_size;
|
|
void* cache_mem_pool;
|
|
int cache_mem_pool_size;
|
|
} SeInitInfo;
|
|
|
|
sestatus se_minigui_initialize(const SeInitInfo* init_info);
|
|
sestatus se_minigui_cleanup(void);
|
|
sestatus se_minigui_set_chip_param(void* chip_param);
|
|
sestatus se_minigui_set_cache(void* cache_mem_pool, int cache_mem_pool_size);
|
|
|
|
/*{{ SeLogFont_constants {{*/
|
|
#define SE_LOGFONT_BOLD 0x01
|
|
#define SE_LOGFONT_ITALIC 0x02
|
|
#define SE_LOGFONT_UNDERLINE 0x04
|
|
#define SE_LOGFONT_STRIKETHROUGH 0x08
|
|
#define SE_LOGFONT_PREFERRED 0x10
|
|
#define SE_LOGFONT_MONO 0x20
|
|
/*}} SeLogFont_constants }}*/
|
|
|
|
/*{{ SeLogFont_type {{*/
|
|
typedef struct
|
|
{
|
|
unsigned short size;
|
|
unsigned char attr;
|
|
unsigned char id;
|
|
} SeLogFont;
|
|
/*}} SeLogFont_type }}*/
|
|
|
|
int se_minigui_get_char_width (SeLogFont *logfont, seunichar16 wc);
|
|
|
|
int se_minigui_get_font_ascent (SeLogFont *logfont);
|
|
|
|
int se_minigui_get_font_descent (SeLogFont *logfont);
|
|
|
|
const void *se_minigui_get_char_pixmap(
|
|
const SeLogFont *logfont,
|
|
const seunichar16 wc,
|
|
int *pitch);
|
|
|
|
int se_minigui_get_char_bbox(
|
|
SeLogFont *logfont,
|
|
seunichar16 wc,
|
|
int *px,
|
|
int *py,
|
|
int *pwidth,
|
|
int *pheight);
|
|
|
|
void se_minigui_get_char_advance(
|
|
SeLogFont *logfont,
|
|
seunichar16 wc,
|
|
int *px,
|
|
int *py);
|
|
|
|
/*{{ language_code_constants {{*/
|
|
#define SE_LANG_AA 0 /* Afar */
|
|
#define SE_LANG_AB 1 /* Abkhazia */
|
|
#define SE_LANG_AF 2 /* Afrikaans */
|
|
#define SE_LANG_AM 3 /* Amharic */
|
|
#define SE_LANG_AR 4 /* Arabic */
|
|
#define SE_LANG_AS 5 /* Assamese */
|
|
#define SE_LANG_AST 6 /* Asturian */
|
|
#define SE_LANG_AVA 7 /* Avaric */
|
|
#define SE_LANG_AY 8 /* Aymara */
|
|
#define SE_LANG_AZ 9 /* Azerbaijani */
|
|
#define SE_LANG_AZ_IR 10 /* Azerbaijani in Iran */
|
|
#define SE_LANG_BA 11 /* Bashkir */
|
|
#define SE_LANG_BAM 12 /* Bambara */
|
|
#define SE_LANG_BE 13 /* Byelorussian */
|
|
#define SE_LANG_BG 14 /* Bulgarian */
|
|
#define SE_LANG_BH 15 /* Bihari (Devanagari script) */
|
|
#define SE_LANG_BHO 16 /* Bhojpuri (Devanagari script) */
|
|
#define SE_LANG_BI 17 /* Bislama */
|
|
#define SE_LANG_BIN 18 /* Edo or Bini */
|
|
#define SE_LANG_BN 19 /* Bengali (Bengali script) */
|
|
#define SE_LANG_BO 20 /* Tibetan */
|
|
#define SE_LANG_BR 21 /* Breton */
|
|
#define SE_LANG_BS 22 /* Bosnian */
|
|
#define SE_LANG_BUA 23 /* Buriat (Buryat) */
|
|
#define SE_LANG_CA 24 /* Catalan */
|
|
#define SE_LANG_CE 25 /* Chechen */
|
|
#define SE_LANG_CH 26 /* Chamorro */
|
|
#define SE_LANG_CHM 27 /* Mari (Lower & Upper Cheremis) */
|
|
#define SE_LANG_CHR 28 /* Cherokee */
|
|
#define SE_LANG_CO 29 /* Corsican */
|
|
#define SE_LANG_CS 30 /* Czech */
|
|
#define SE_LANG_CU 31 /* Old Church Slavonic */
|
|
#define SE_LANG_CV 32 /* Chuvash */
|
|
#define SE_LANG_CY 33 /* Welsh */
|
|
#define SE_LANG_DA 34 /* Danish */
|
|
#define SE_LANG_DE 35 /* German */
|
|
#define SE_LANG_DZ 36 /* Dzongkha */
|
|
#define SE_LANG_EL 37 /* Greek */
|
|
#define SE_LANG_EN 38 /* English */
|
|
#define SE_LANG_EO 39 /* Esperanto */
|
|
#define SE_LANG_ES 40 /* Spanish */
|
|
#define SE_LANG_ET 41 /* Estonian */
|
|
#define SE_LANG_EU 42 /* Basque */
|
|
#define SE_LANG_FA 43 /* Persian */
|
|
#define SE_LANG_FI 44 /* Finnish */
|
|
#define SE_LANG_FJ 45 /* Fijian */
|
|
#define SE_LANG_FO 46 /* Faroese */
|
|
#define SE_LANG_FR 47 /* French */
|
|
#define SE_LANG_FUL 48 /* Fulah (Fula) */
|
|
#define SE_LANG_FUR 49 /* Friulian */
|
|
#define SE_LANG_FY 50 /* Frisian */
|
|
#define SE_LANG_GA 51 /* Irish */
|
|
#define SE_LANG_GD 52 /* Scots Gaelic */
|
|
#define SE_LANG_GEZ 53 /* Ethiopic (Geez) */
|
|
#define SE_LANG_GL 54 /* Galician */
|
|
#define SE_LANG_GN 55 /* Guarani */
|
|
#define SE_LANG_GU 56 /* Gujarati */
|
|
#define SE_LANG_GV 57 /* Manx Gaelic */
|
|
#define SE_LANG_HA 58 /* Hausa */
|
|
#define SE_LANG_HAW 59 /* Hawaiian */
|
|
#define SE_LANG_HE 60 /* Hebrew */
|
|
#define SE_LANG_HI 61 /* Hindi (Devanagari script) */
|
|
#define SE_LANG_HO 62 /* Hiri Motu */
|
|
#define SE_LANG_HR 63 /* Croatian */
|
|
#define SE_LANG_HU 64 /* Hungarian */
|
|
#define SE_LANG_HY 65 /* Armenian */
|
|
#define SE_LANG_IA 66 /* Interlingua */
|
|
#define SE_LANG_IBO 67 /* Igbo (Ibo) */
|
|
#define SE_LANG_ID 68 /* Indonesian */
|
|
#define SE_LANG_IE 69 /* Interlingue */
|
|
#define SE_LANG_IK 70 /* Inupiaq (Inupiak, Eskimo) */
|
|
#define SE_LANG_IO 71 /* Ido */
|
|
#define SE_LANG_IS 72 /* Icelandic */
|
|
#define SE_LANG_IT 73 /* Italian */
|
|
#define SE_LANG_IU 74 /* Inuktitut */
|
|
#define SE_LANG_JA 75 /* Japaness */
|
|
#define SE_LANG_KA 76 /* Georgian */
|
|
#define SE_LANG_KAA 77 /* Kara-Kalpak (Karakalpak) */
|
|
#define SE_LANG_KI 78 /* Kikuyu */
|
|
#define SE_LANG_KK 79 /* Kazakh */
|
|
#define SE_LANG_KL 80 /* Greenlandic */
|
|
#define SE_LANG_KM 81 /* Khmer */
|
|
#define SE_LANG_KN 82 /* Kannada */
|
|
#define SE_LANG_KO 83 /* Korean */
|
|
#define SE_LANG_KOK 84 /* Kokani (Devanagari script) */
|
|
#define SE_LANG_KS 85 /* Kashmiri (Devanagari script) */
|
|
#define SE_LANG_KU 86 /* Kurdish */
|
|
#define SE_LANG_KU_IR 87 /* Kurdish in Iran */
|
|
#define SE_LANG_KUM 88 /* Kumyk */
|
|
#define SE_LANG_KV 89 /* Komi (Komi-Permyak/Komi-Siryan) */
|
|
#define SE_LANG_KW 90 /* Cornish */
|
|
#define SE_LANG_KY 91 /* Kirgiz */
|
|
#define SE_LANG_LA 92 /* Latin */
|
|
#define SE_LANG_LB 93 /* Luxembourgish (Letzeburgesch) */
|
|
#define SE_LANG_LEZ 94 /* Lezghian (Lezgian) */
|
|
#define SE_LANG_LN 95 /* Lingala */
|
|
#define SE_LANG_LO 96 /* Lao */
|
|
#define SE_LANG_LT 97 /* Lithuanian */
|
|
#define SE_LANG_LV 98 /* Latvian */
|
|
#define SE_LANG_MG 99 /* Malagasy */
|
|
#define SE_LANG_MH 100 /* Marshallese */
|
|
#define SE_LANG_MI 101 /* Maori */
|
|
#define SE_LANG_MK 102 /* Macedonian */
|
|
#define SE_LANG_ML 103 /* Malayalam */
|
|
#define SE_LANG_MN 104 /* Mongolian */
|
|
#define SE_LANG_MO 105 /* Moldavian */
|
|
#define SE_LANG_MR 106 /* Marathi (Devanagari script) */
|
|
#define SE_LANG_MT 107 /* Maltese */
|
|
#define SE_LANG_MY 108 /* Burmese (Myanmar) */
|
|
#define SE_LANG_NB 109 /* Norwegian Bokmal */
|
|
#define SE_LANG_NDS 110 /* Low Saxon */
|
|
#define SE_LANG_NE 111 /* Nepali (Devanagari script) */
|
|
#define SE_LANG_NL 112 /* Dutch */
|
|
#define SE_LANG_NN 113 /* Norwegian Nynorsk */
|
|
#define SE_LANG_NO 114 /* Norwegian */
|
|
#define SE_LANG_NY 115 /* Chichewa */
|
|
#define SE_LANG_OC 116 /* Occitan */
|
|
#define SE_LANG_OM 117 /* Oromo or Galla */
|
|
#define SE_LANG_OR 118 /* Oriya */
|
|
#define SE_LANG_OS 119 /* Ossetic */
|
|
#define SE_LANG_PA 120 /* Punjabi (Gurumukhi script) */
|
|
#define SE_LANG_PL 121 /* Polish */
|
|
#define SE_LANG_PS_AF 122 /* Pashto in Afghanistan */
|
|
#define SE_LANG_PS_PK 123 /* Pashto in Pakistan */
|
|
#define SE_LANG_PT 124 /* Portuguese */
|
|
#define SE_LANG_RM 125 /* Rhaeto-Romance */
|
|
#define SE_LANG_RO 126 /* Romanian */
|
|
#define SE_LANG_RU 127 /* Russian */
|
|
#define SE_LANG_SA 128 /* Sanskrit (Devanagari script) */
|
|
#define SE_LANG_SAH 129 /* Yakut */
|
|
#define SE_LANG_SCO 130 /* Scots */
|
|
#define SE_LANG_SE 131 /* North Sami */
|
|
#define SE_LANG_SEL 132 /* Selkup (Ostyak-Samoyed) */
|
|
#define SE_LANG_SH 133 /* Serbo-Croatian */
|
|
#define SE_LANG_SI 134 /* Sinhala (Sinhalese) */
|
|
#define SE_LANG_SK 135 /* Slovak */
|
|
#define SE_LANG_SL 136 /* Slovenian */
|
|
#define SE_LANG_SM 137 /* Samoan */
|
|
#define SE_LANG_SMA 138 /* South Sami */
|
|
#define SE_LANG_SMJ 139 /* Lule Sami */
|
|
#define SE_LANG_SMN 140 /* Inari Sami */
|
|
#define SE_LANG_SMS 141 /* Skolt Sami */
|
|
#define SE_LANG_SO 142 /* Somali */
|
|
#define SE_LANG_SQ 143 /* Albanian */
|
|
#define SE_LANG_SR 144 /* Serbian */
|
|
#define SE_LANG_SV 145 /* Swedish */
|
|
#define SE_LANG_SW 146 /* Swahili */
|
|
#define SE_LANG_SYR 147 /* Syriac */
|
|
#define SE_LANG_TA 148 /* Tamil */
|
|
#define SE_LANG_TE 149 /* Telugu */
|
|
#define SE_LANG_TG 150 /* Tajik */
|
|
#define SE_LANG_TH 151 /* Thai */
|
|
#define SE_LANG_TI_ER 152 /* Eritrean Tigrinya */
|
|
#define SE_LANG_TI_ET 153 /* Ethiopian Tigrinya */
|
|
#define SE_LANG_TIG 154 /* Tigre */
|
|
#define SE_LANG_TK 155 /* Turkmen */
|
|
#define SE_LANG_TL 156 /* Tagalog */
|
|
#define SE_LANG_TN 157 /* Tswana */
|
|
#define SE_LANG_TO 158 /* Tonga */
|
|
#define SE_LANG_TR 159 /* Turkish */
|
|
#define SE_LANG_TS 160 /* Tsonga */
|
|
#define SE_LANG_TT 161 /* Tatar */
|
|
#define SE_LANG_TW 162 /* Twi */
|
|
#define SE_LANG_TYV 163 /* Tuvinian */
|
|
#define SE_LANG_UG 164 /* Uighur */
|
|
#define SE_LANG_UK 165 /* Ukrainian */
|
|
#define SE_LANG_UR 166 /* Urdu */
|
|
#define SE_LANG_UZ 167 /* Uzbek */
|
|
#define SE_LANG_VEN 168 /* Venda */
|
|
#define SE_LANG_VI 169 /* Vietnamese */
|
|
#define SE_LANG_VO 170 /* Volapuk */
|
|
#define SE_LANG_VOT 171 /* Votic */
|
|
#define SE_LANG_WA 172 /* Walloon */
|
|
#define SE_LANG_WEN 173 /* Sorbian */
|
|
#define SE_LANG_WO 174 /* Wolof */
|
|
#define SE_LANG_XH 175 /* Xhosa */
|
|
#define SE_LANG_YAP 176 /* Yapese */
|
|
#define SE_LANG_YI 177 /* Yiddish */
|
|
#define SE_LANG_YO 178 /* Yoruba */
|
|
#define SE_LANG_ZH_CN 179 /* Chinese (simplified) */
|
|
#define SE_LANG_ZH_HK 180 /* Chinese (Hong Kong) */
|
|
#define SE_LANG_ZH_MO 181 /* Chinese (Macau) */
|
|
#define SE_LANG_ZH_SG 182 /* Chinese (Singapore) */
|
|
#define SE_LANG_ZH_TW 183 /* Chinese (traditional) */
|
|
#define SE_LANG_ZU 184 /* Zulu */
|
|
/*}} language_code_constants }}*/
|
|
|
|
|
|
/* Script Easy font description type definition */
|
|
|
|
typedef struct{
|
|
const char *font_name;
|
|
const int font_id;
|
|
} se_font_name_map;
|
|
|
|
typedef struct
|
|
{
|
|
int font_table_size;
|
|
int font_name_map_size;
|
|
const se_font_name_map *name_map;
|
|
const void **font_table;
|
|
const unsigned char *logical_font_table;
|
|
} se_font_description;
|
|
|
|
extern const se_font_description se_font_desc;
|
|
extern int se_minigui_mem_pool[];
|
|
extern int se_minigui_mem_pool_size;
|
|
extern int se_minigui_cache_mem_pool[];
|
|
extern int se_minigui_cache_mem_pool_size;
|
|
|
|
|
|
void se_minigui_init_fonts(void);
|
|
void se_minigui_destroy_fonts(void);
|
|
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
|
|
unsigned int se_minigui_read_font(
|
|
void* name,
|
|
void* buffer,
|
|
unsigned int offset,
|
|
unsigned int size);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* SE_MINIGUI_H */
|
|
|