📄 imein.h
字号:
/*************************************************************************/
/* */
/* Copyright (C) 2002 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: PrjIme.h */
/* MODULE NAME: 项目管理 */
/* DESCRIPTION: 输入法 */
/* */
/*************************************************************************/
/* DTAE AUTHOR VERSION REMARKS */
/* =========== ========== ========= ===================================*/
/* 2001-03-17 Michael Ver 1.00 创建 */
/* 2002-09-04 Michael Ver 2.00 Os3.2标准化 */
/* 2003-03-24 Qorse Ver 3.00 学生机(无笔点) */
/* 2004-12-18 Bingle Ver 4.00 笔点机 */
/*************************************************************************/
/*------ 防止被重复引用的预处理 ------*/
#ifndef __PRJIME_H__
#define __PRJIME_H__
/*------ 宏定义 ------*/
/*输入法处理状态*/
#define IM_INPUT_NULL 1
#define IM_INPUT_DOING 2
#define IM_INPUT_ZC 3
#define IM_INPUT_LX 4
#define IM_INPUT_ERROR 5
#define IM_INPUT_LXZC 6 //联想输入下的字词选择
#define IME_NEED_REFRESH 1
#define IME_NO_REFRESH 0
#define IME_MAXNUMBER 8 //输入法最多数目
#define IMBUHUATOTAL 27
#define HZ_PER_PAGE 9 /*每页容纳的汉字个数*/
#define PY_PER_PAGE 9
#define IME_CANDI_X 40
#define PY_CANDI_X 90
#define WB_CANDI_X 90
#define IME_CANDI_INTERVAL 26
//移到ime.h里
//#define IM_HEIGHT (SYSFONTWIDTH+1) /*输入框的高度*/
#define IM_OUTBUFF_LEN ((HZ_PER_PAGE+1)*3) /*备选汉字缓冲区大小*/
#define IM_INBUFF_LEN 10 /*用户输入缓冲区大小*/
/*符号输入法*/
#define SY_SKEYDATANUM 42
#define YB_SKEYDATANUM 12
/*英数*/
#define IME_ENGLISH_TIMERID 0x9732 /*拼音输入法的TimerID*/
//#define IME_CANDI_X 40
//#define PY_CANDI_X 90
//#define WB_CANDI_X 90
/*拼音*/
#define IMPY_INPUT_LEN 7
#define IMPY_INDEX_LEN (IMPY_INPUT_LEN + 2)
#define GBKPY_INDEX_NUM 1820
#define JAPAN_INDEX_NUM 493
/*五笔*/
#define IMWB_INPUT_LEN 4
#define IM_WORD_MAX 109
#define IMWB_INDEX_NUM 6768
#define IMWB_DATA_ADDR WUBI_ADDRESS
#define IMWB_INDEX_LEN (IMWB_INPUT_LEN+2)
#define IMWB_FIRSTLEVEL_OFF 0x5FA6
#define IMWB_SECONDLEVEL_OFF 0x0000
#define IMWB_THIRDLEVEL_OFF 0x5FD8
#define IMWB_SECONDINDEX_OFF 0x04E2
#define IMWB_SECONDSAME_OFF 0x09C2
#define IMWB_THIRDORDER_OFF 0x3E9A
#define IMWB_FOURTHORDER_OFF 0x4F20
/*宏定义*/
#define FOR_IME_ALL
#define FOR_IME_ENGLISH
#define FOR_IME_PINYIN
#define FOR_IME_WUBI
#define FOR_IME_BIHUA
#define FOR_IME_BUSHOU
#define FOR_IME_NANJIAN
#define FOR_IME_SYMBOL
#define FOR_ED132_133_PRJ
#define FOR_ED135_PRJ
/*------ 函数声明 ------*/
//function assert for file ImeComm.c
INT _ImDichSearch(UINT startNum, UINT endNum, INT (*searchFunc)(UINT));
VOID __IMEGetChar(UINT *pEvent, UINT *pParam);
VOID __ImeConvertCase(UINT *pEvent, UINT *pParam);
BOOL _ImGetAssociation(UINT16 code);
BOOL _imLeftRight(UINT *pEvent, UINT *pParam);
BOOL _IMEGetSelectWord(UINT *pEvent, UINT *pParam);
BOOL _imOutputData(UINT16 index, UINT16 *getedzi, UINT *pEvent);
//----------------------------------------------------
BOOL _imBihuaGetData(void); //笔画输入法取数据函数
void ImGetBiShouDataAddr(void); //GET部首数据的地址
BOOL _imBushouGetData(void); //部首输入法取数据函数
void _imNanjianGetData(void); // GET难检数据
//----------------------------------------------------
BOOL _PyWbGetData(UINT uType);
BOOL __ImPyGetWord(VOID);
BOOL __ImGBKGetWord(VOID);
void _PinyinDrawGraph();
BOOL _ImWbGetWord(void);
BOOL _ImWbOneTwoCode();
BOOL _ImWbThreeCode();
BOOL _ImWbFourCode();
UINT16 _ImGetCodeNum(UINT16 xCode);
UINT8 _ImGetOrderValue(UINT16 xOff);
void _imDrawArrow(void);
VOID __ImeDrawInputBoxHead(UINT uType);
VOID ImeDrawIndexNum(UINT8 index,UINT uType);
VOID _ImeDrawGraph(UINT uType);
VOID ImeDrawSplit();
extern const UINT8 * const ime_InputBoxHead[];
//----------------------------------------------------
BOOL _ImeInitialize(MIMEManager *pImeManager, UINT uInitMode);
VOID __InitialIME();
VOID __ResetIME();
VOID _IMEDrawGraph(UINT uType);
void _ImeSwitchPendown(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam,UINT uType);
void ImGetBiShouDataAddr(void);
BOOL HwInitial(VOID);
VOID HwTerminate(VOID);
VOID CallImeSymbol(UINT uImeType);
INT _EnglishHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _SymBolHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _GBKHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _WuBiHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _HandWriteHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _BuShouHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _BiHuaHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
INT _NanJianHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
//UINT32 _IMERiWenHandleEvent(IMEGUI_STRUCT *pApGui, UINT *pEvent, UINT *pParam);
extern UINT8 g_pIMEOutBuffer[IM_OUTBUFF_LEN];
extern UINT8 g_pIMEInBuffer[IM_INBUFF_LEN];
extern UINT8 g_pIMEOutWordBuf[3];
extern UINT g_pIMEInputednum;
extern HTIMER g_pIMETimer;
extern MInputBox g_mInputBox;
extern BOOL g_bHandWriteActive;
extern UINT16 g_pIMEAssocNum;
extern UINT16 g_pIMECandiPos;
extern UINT16 g_pIMEWordNum;
extern UINT8 *g_pIMEDataAddr;
extern UINT8 g_pIMEWordTypeNum;
extern UINT8 g_pIMElasttype;
extern UINT8 g_IMEShowFlag[IME_MAXNUMBER];
extern BOOL g_bSecond;
extern int g_nPressedKey;
//ping wubu using variable
extern UINT8 g_byPYShengPressed;
extern UINT8 g_pIMEPyIndexBuffer[IM_INBUFF_LEN];
extern UINT8 g_pIMEWordBuffer[IM_WORD_MAX*2]; //IM_WORD_MAX*2
extern UINT16 g_pIMECurIndex;
extern UINT16 g_pIMEWbOrderNum;
extern UINT16 g_pIMEWordIndexNum; //用于五笔取数据
//bushou using variable
extern UINT8 *g_pBushouAddr;
extern UINT16 g_pIMEBushouWordLen,g_pIMEBushouWordIndex;
extern UINT16 g_pIMEBushou_bhbh,g_pIMEBushou_bsb,g_pIMEBushou_bs,g_pIMEBushou_bh;
extern UINT16 g_pIMEBushou_hz,g_pIMEBushouState; /*用于部首和难检*/
#define IME_ICON_NULL 0
#define IMECATALOG_ITEM_NUM IME_MAXNUMBER
#define IME_SELECTED_ICON IDB_IME_SELECTED
#define IME_NOSELECTED_ICON IDB_IME_NO
//画目录界面一些点线的坐标定位
#define IMECATALOG_ITEM_ICON_STARTX 170
#define IMECATALOG_ITEM_ICON_STARTY 100
#define IMECATALOG_ITEM_TEXT_STARTX 190
#define IMECATALOG_ITEM_TEXT_STARTY 97
#define IMECATALOG_HINT_TEXT_STARTX 190
#define IMECATALOG_HINT_TEXT_STARTY 54
#define IMECATALOG_ITEMICON_X_INTERVAL 90
#define IMECATALOG_ITEMICON_Y_INTERVAL 30
#define IMECATALOG_ITEMTEXT_X_INTERVAL 90
#define IMECATALOG_ITEMTEXT_Y_INTERVAL 30
//------------
//------------
#define IME_LEFTLINE_LINE0_X1 120// 33
#define IME_LEFTLINE_LINE0_Y1 30// 12
#define IME_LEFTLINE_LINE0_X2 120// 33
#define IME_LEFTLINE_LINE0_Y2 280// 128
#define IME_LEFTLINE_LINE1_X1 121// 33
#define IME_LEFTLINE_LINE1_Y1 30// 12
#define IME_LEFTLINE_LINE1_X2 121// 33
#define IME_LEFTLINE_LINE1_Y2 280// 128
//------------
#define IME_UPLINE_LINE0_X1 121//34
#define IME_UPLINE_LINE0_Y1 30//11
#define IME_UPLINE_LINE0_X2 360//202
#define IME_UPLINE_LINE0_Y2 30//11
#define IME_UPLINE_LINE1_X1 121//36
#define IME_UPLINE_LINE1_Y1 31//13
#define IME_UPLINE_LINE1_X2 360//200
#define IME_UPLINE_LINE1_Y2 31//13
//------------
#define IME_RIGHTLINE_LINE0_X1 360//202
#define IME_RIGHTLINE_LINE0_Y1 30//12
#define IME_RIGHTLINE_LINE0_X2 360//202
#define IME_RIGHTLINE_LINE0_Y2 280//129
#define IME_RIGHTLINE_LINE1_X1 361//203
#define IME_RIGHTLINE_LINE1_Y1 30//13
#define IME_RIGHTLINE_LINE1_X2 361//203
#define IME_RIGHTLINE_LINE1_Y2 280//129
//------------
#define IME_DOWNLINE_LINE0_X1 121//34
#define IME_DOWNLINE_LINE0_Y1 280//129
#define IME_DOWNLINE_LINE0_X2 360//202
#define IME_DOWNLINE_LINE0_Y2 280//129
#define IME_DOWNLINE_LINE1_X1 121//35
#define IME_DOWNLINE_LINE1_Y1 281//130
#define IME_DOWNLINE_LINE1_X2 360//202
#define IME_DOWNLINE_LINE1_Y2 281//130
//-------虚线坐标定义
#define IME_UPDOTLINE_LINE0_X1 122//36
#define IME_UPDOTLINE_LINE0_Y1 34//15
#define IME_UPDOTLINE_LINE0_X2 359//200
#define IME_UPDOTLINE_LINE0_Y2 34//15
#define IME_UPDOTLINE_LINE1_X1 122//36
#define IME_UPDOTLINE_LINE1_Y1 36//17
#define IME_UPDOTLINE_LINE1_X2 359//200
#define IME_UPDOTLINE_LINE1_Y2 36//17
#define IME_UPDOTLINE_LINE2_X1 122//36
#define IME_UPDOTLINE_LINE2_Y1 38//19
#define IME_UPDOTLINE_LINE2_X2 359//200
#define IME_UPDOTLINE_LINE2_Y2 38//19
#define IME_UPDOTLINE_LINE3_X1 122//36
#define IME_UPDOTLINE_LINE3_Y1 40//21
#define IME_UPDOTLINE_LINE3_X2 359//200
#define IME_UPDOTLINE_LINE3_Y2 40//21
#define IME_MIDDOTLINE_LINE0_X1 142//44
#define IME_MIDDOTLINE_LINE0_Y1 62//47
#define IME_MIDDOTLINE_LINE0_X2 340//187
#define IME_MIDDOTLINE_LINE0_Y2 62//47
/*
#define IME_DOWNDOTLINE_LINE0_X1 36
#define IME_DOWNDOTLINE_LINE0_Y1 127
#define IME_DOWNDOTLINE_LINE0_X2 200
#define IME_DOWNDOTLINE_LINE0_Y2 127
#define IME_RIGHTDOTLINE_LINE0_X1 200
#define IME_RIGHTDOTLINE_LINE0_Y1 21
#define IME_RIGHTDOTLINE_LINE0_X2 200
#define IME_RIGHTDOTLINE_LINE0_Y2 127
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -