📄 gbmmi.h
字号:
/*! \file GBMMI.h \brief GuoBi Man-Machine Interface (GBMMI) main include file. \date 2006-08-24\n \version 1\n \author gen.liu\n\n initial version\n \date 2006-08-25\n \version 2\n \author gen.liu\n\n doxygened initial version\n\n \date 2006-08-28\n \version 3\n \author gen.liu\n\n create library project\n add enum GBMMIReturn and add some values for it\n */#ifndef __GB_MMI_H__#define __GB_MMI_H__#include "GBfunc_def.h"#ifdef __GB_CHINESE_ENGINE__#include "EB.h"#ifdef __USE_DIALECT_DATA__#include "EB_dialect.h"#endif//__USE_DIALECT_DATA__#define GB_DATA_UNICODE16 1 /**< 中文引擎使用Unicode编码数据 */#define GB_DATA_GB 2 /**< 中文引擎使用GB编码数据 */#ifndef GB_DATA_CODE#define GB_DATA_CODE GB_DATA_UNICODE16#else#define GB_DATA_CODE GB_DATA_GB#endif#endif//__GB_CHINESE_ENGINE__#ifdef __GB_LATIN_ENGINE__#include <string.h>#include "GBLt.h"#include "GBLt_def.h"#endif#define __GB_MAX_CANDIDATES 10 /**@brief 候选项的最大数目 */#define __GB_MESSAGE_MAX_LEN 33 /**@brief 每个候选项最大的字符数32,最后一个字符结尾\0 */#define __GB_MAX_UPSCREEN 33 /**@brief 最大上屏字的长度,最后一个字符结尾\0 */#define __GB_MAX_INPUTLEN 32#define __GB_MAX_COMPLEN 5 /**@brief 快捷部首的最大个数 */#define __GB_MAX_SYLLABLES 10 /**@brief 音节的最大个数 */#define __GB_MAX_SH 32 /**@brief 自造词的提示信息最大长度*/#if !defined(__GB_CHINESE_ENGINE__) && !defined(__GB_LATIN_ENGINE__)#error "no engine selected!"#endif#include "GBtypes.h"#ifndef GBAPI#ifdef GBIMPORT#define GBAPI __declspec(dllimport)#else#define GBAPI extern#endif#endif#ifdef __cplusplusextern "C" {#endif /* __cplusplus *//** \enum GBLanguage \brief language codes supported */ enum __GBLanguage{ GBL_NULL = 0x00, GBL_Afrikaans = 0x36, GBL_Albanian = 0x1C, GBL_Arabic = 0x01, GBL_Basque = 0x2D, GBL_Belarusian = 0x23, GBL_Bulgarian = 0x02, GBL_Catalan = 0x03, GBL_Chinese = 0x04, GBL_Croatian = 0x1A, GBL_Czech = 0x05, GBL_Danish = 0x06, GBL_Dutch = 0x13, GBL_English = 0x09, GBL_Estonian = 0x25, GBL_Faeroese = 0x38, GBL_Farsi = 0x29, GBL_Finnish = 0x0B, GBL_French = 0x0C, GBL_Gaelic = 0x3C, GBL_German = 0x07, GBL_Greek = 0x08, GBL_Hebrew = 0x0D, GBL_Hindi = 0x39, GBL_Hungarian = 0x0E, GBL_Icelandic = 0x0F, GBL_Indonesian = 0x21, GBL_Italian = 0x10, GBL_Japanese = 0x11, GBL_Korean = 0x12, GBL_Latvian = 0x26, GBL_Lithuanian = 0x27, GBL_Macedonian = 0x2F, GBL_Malaysian = 0x3E, GBL_Maltese = 0x3A, GBL_Norwegian = 0x14, GBL_Polish = 0x15, GBL_Portuguese = 0x16, GBL_Romanian = 0x18, GBL_Russian = 0x19, GBL_Serbian = 0x1A, GBL_Slovak = 0x1B, GBL_Slovenian = 0x24, GBL_Sorbian = 0x2E, GBL_Spanish = 0x0A, GBL_Sutu = 0x30, GBL_Swedish = 0x1D, GBL_Thai = 0x1E, GBL_Tsonga = 0x31, GBL_Tswana = 0x32, GBL_Turkish = 0x1F, GBL_Ukrainian = 0x22, GBL_Urdu = 0x20, GBL_Vietnamese = 0x2A, GBL_Xhosa = 0x34, GBL_Yiddish = 0x3D, GBL_Zulu = 0x35, GBL_Uighur = 0x37, // 维吾尔语 GBL_Swahili = 0x0441 //坦桑尼亚语} ;typedef unsigned long GBLanguage;/** \enum GBInputMode \brief input modes supported */enum __GBMMIInputMode{ GBIM_Null,// chinese GBIM_Chn_Pinyin,///< PinYin of chinese GBIM_Chn_Stroke,///< Stroke of chinese GBIM_Chn_YinStroke,///< YinStroke(combination of PinYin and Stroke) of chinese GBIM_Chn_BoPoMoFo,///< BoPoMoFo of chinese GBIM_Chn_CangJie, ///// latin set languages GBIM_SmartLatin,///< Smart Latin GBIM_Character,///< character mode GBIM_Number,///< digital input mode GBIM_Character_LowCase,///< lowercase input mode GBIM_Character_UpCase,///< uppercase input mode GBIM_Korean, GBIM_Max} ;typedef unsigned long GBMMIInputMode;/** \struct __tag_GBChnInitData \brief initialize data structure of chinese engine \todo more stuff here */#ifdef __GB_CHINESE_ENGINE__typedef struct __tag_GBChnInitData{ GBUINT32 nCandDesireLenInWord ;///< desired candidates length in word GBUINT32 nInterpunctionDesireLen ;///< desired interpuntion length#if EBD_USE_DESIRE_COUNT > 0 GBUINT32 nCandDesireCount;#endif#ifdef _C166 const GBUINT32 _huge * pLDBData ;///< pointer to language database data GBUINT32 _huge * pUDBData ;///< pointer to user database data const GBUINT32 _huge * pDialectData ;///< dialect data#else const GBUINT32 * pLDBData ;///< pointer to language database data GBUINT32 * pUDBData ;///< pointer to user database data const GBUINT32 * pDialectData ;///< dialect data#endif//_C166 GBUINT32 nUDBDataLen ;///< user database data len fpEBShDataUpdate fpOnChnSelfMakeDataChanged ;///< 中文自造词以及调频数据更新通知函数} GBChnInitData;#endif //__GB_CHINESE_ENGINE__/** \struct __tag_GBLatinInitData \brief initialize data structure of latin engine \todo more stuff here */#ifdef __GB_LATIN_ENGINE__typedef struct __tag_GBLatinInitData{ GBLanguage nLanguageType ;///< language type \see GBLanguage GBUINT32 nCandDesireLenInWord ;///< desired candidates length in word GBUINT32 nCandDesireCountInWord ;///< desired candidates count in word#ifdef _C166 const GBUINT32 _huge * pLDBData ;///< pointer to language database data GBUINT32 _huge * pUDBData ;///< pointer to user database data #else const GBUINT32 * pLDBData ;///< pointer to language database data GBUINT32 * pUDBData ;///< pointer to user database data #endif GBUINT32 nUDBDataLen ;///<pointer to user database data len fpUpdateSelfHelpData fpOnLtSelfMakeDataChanged;/**< 英文自造词以及调频数据更新通知函数 */ //modified by abing on 20070705 //内部的 GBUINT16 okToBeginMakeWordStr[__GB_MAX_SH];//自造词的有关提示信息---"按OK开始自造词" GBUINT16 okToAddMakeWordStr[__GB_MAX_SH]; //自造词的有关提示信息---"按OK加入自造词"} GBLatinInitData ;#endif //__GB_LATIN_ENGINE__/** \struct __tag_GBInitData \brief common initialize data structure */typedef struct __tag_GBInitData{#ifdef __GB_CHINESE_ENGINE__ GBChnInitData chnInitData ;///< chinese engine initialize data#endif //__GB_CHINESE_ENGINE__#if __GB_USER_DEFINE_LAGEUAGE_COUNT > 0 GBLatinInitData * latinInitData;///< latin engine initialize data GBUINT32 nlatinCount;///< latin data Count#else GBLatinInitData latinInitData[__GB_LATIN_LANGUAGE_COUNT] ;///< latin engine initialize data#endif GBBOOL8 bUseLongPhress ;/**< 是否使用长按 */ GBBOOL8 bUpNumber ;/**< 是否支持数字无切换上屏 */ GBBOOL8 bChnEnConvert ;/**< 是否支持中英无切换输入 */ GBBOOL8 reserved; GBUINT16 sizGBMMIGlobals; GBUINT16 reserved2; } GBInitData ;#ifdef __GB_CHINESE_ENGINE__typedef long (*fpGBGetStringWidth)(const char *);typedef long (*fpGBGetWStringWidth)(const unsigned short *);typedef struct __tag_GBUIInfo{ GBUINT32 npreEditWidth ;///< 编辑栏的宽度 GBUINT32 nsyllableSplit ;///< 音节项之间的间距 fpGBGetStringWidth fpGetStrWidth;///< 获得char字符串宽度 fpGBGetWStringWidth fpGetWCharWidth ;///< 宽字符串的宽度}GBUIInfo;#endif/** \struct __tag_GBEvent \brief event structure */typedef struct __tag_GBEvent{ GBUINT32 nType ;///< event type \see GBEventType GBINT32 param1 ;///< parameter 1 GBINT32 param2 ;///< parameter 2} GBEvent ;/** \enum GBEventType \brief event types */enum GBEventType { GBET_In_Null, GBET_In_Init,///< Engine initialization ///< \param param1 : const \ref GBInitData * ///< \param param2 : language type. see \ref GBLanguage GBET_In_ChgInputMode,///< change input mode ///< \param param1 : new input mode desired. see \ref GBInputMode ///< \param param2 : language type. see \ref GBLanguage
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -