⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gbmmi.h

📁 某中文手写输入法公司的手写识别输入的实例源程序。
💻 H
📖 第 1 页 / 共 2 页
字号:
/*! \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 + -