📄 menupinyin.c
字号:
#include "Pinyinlib.h"
//----------------------------------------------------------------------------------------------------
// Pin Yin data file
// Author: Weiming Zhang
// Date: Apr 20,2003
// Include:
// variable: PY_SUBNODE *pCurPinYinSubnode;
// unsigned char CurPinYinNode;
// Function: unsigned char GetPYNode(unsigned char key)
// return: 0--no pinyin; 1--only 1 pinyin; 3--other pinyin afterwards;
// 5--other pinyin beforewards; 7--pinyin in previous and next subnodes
//----------------------------------------------------------------------------------------------------
#define PYKEY_CANCEL 0xFF
#define PYKEY_CROSS 0x23
#define PYKEY_C 0x71
#define PYKEY_UP 0x74
#define PYKEY_DOWN 0x75
PY_SUBNODE *pCurPinYinSubnode;
unsigned char CurPinYinNode;
extern rom unsigned char CurInputChars[8];
extern unsigned char CurInputCharsLen;
extern rom unsigned int *pLetterLine;
extern unsigned char HanZiSelNum;
extern PY_SUBNODE pynode[PY_ZPP+1];
extern PY_NODE pnnode[PN_986+1];
//return value:
//0--no pinyin; 1--only 1 pinyin; 3--other pinyin afterwards; 5--other pinyin beforewards; 7--pinyin in previous and next subnodes
unsigned char GetPYNode(unsigned char key)
{
unsigned char i;
unsigned char retval;
switch(key){
case PYKEY_CANCEL:
CurPinYinNode=PN_NULL;
pCurPinYinSubnode=(PY_SUBNODE *)0;
CurInputCharsLen=0;
break;
case PYKEY_C:
CurPinYinNode=pnnode[CurPinYinNode].father;
pCurPinYinSubnode=pnnode[CurPinYinNode].ptrpy;
if(CurInputCharsLen>0)
CurInputCharsLen--;
if(pCurPinYinSubnode!=(PY_SUBNODE *)0){
for(i=0;i<=6;i++){
if(pCurPinYinSubnode->py[i]==0x00) break;
CurInputChars[i]=pCurPinYinSubnode->py[i];
}
}
break;
case PYKEY_UP:
if(pCurPinYinSubnode!=(PY_SUBNODE *)0){
if(pCurPinYinSubnode->prev !=PY_SELF_ADDR){
pCurPinYinSubnode=pCurPinYinSubnode->prev;
for(i=0;i<=6;i++){
if(pCurPinYinSubnode->py[i]==0x00) break;
CurInputChars[i]=pCurPinYinSubnode->py[i];
}
}
}
break;
case PYKEY_DOWN:
if(pCurPinYinSubnode!=(PY_SUBNODE *)0){
if(pCurPinYinSubnode->next !=PY_SELF_ADDR){
pCurPinYinSubnode=pCurPinYinSubnode->next;
for(i=0;i<=6;i++){
if(pCurPinYinSubnode->py[i]==0x00) break;
CurInputChars[i]=pCurPinYinSubnode->py[i];
}
}
}
break;
case '#':
if(pCurPinYinSubnode!=(PY_SUBNODE *)0){
HanZiSelNum=0;
pLetterLine=(rom unsigned int *)(pCurPinYinSubnode->ptrUnicode);
for(i=0;i<255;i++){
if(pLetterLine[i]==0x0000) break;
HanZiSelNum++;
}
CurPinYinNode=PN_NULL;
pCurPinYinSubnode=(PY_SUBNODE *)0;
}
break;
default:
if(key>='2' && key<='9'){
if(pnnode[CurPinYinNode].son[key-0x32]!=PN_SELF){
CurInputCharsLen++;
CurPinYinNode=pnnode[CurPinYinNode].son[key-0x32];
pCurPinYinSubnode=pnnode[CurPinYinNode].ptrpy;
for(i=0;i<=6;i++){
if(pCurPinYinSubnode->py[i]==0x00) break;
CurInputChars[i]=pCurPinYinSubnode->py[i];
}
}
}
}
if(pCurPinYinSubnode!=(PY_SUBNODE *)0){
retval=1;
if(pCurPinYinSubnode->next!=PY_SELF_ADDR)
retval|=0x02;
if(pCurPinYinSubnode->prev!=PY_SELF_ADDR)
retval|=0x04;
}
else{
CurPinYinNode=PN_NULL;
retval=0;
}
return(retval);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -