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

📄 afce_zi.h

📁 用于嵌入式系统的输入法程序 里面有完整的系统实现原码
💻 H
字号:
/***************************************************************************
 *
 *                    TPL GSM Phase 2 Application Layer
 *
 *                      Copyright (c) 1999 ZTE
 *
 ***************************************************************************
 *
 *  $Workfile:   afCE_zi.h
 *  $Revision:
 *      $Date:   June 2000
 *
 ***************************************************************************
 *
 *  Designed by    :
 *  Coded by       : mengbo
 *  Tested by      :
 *
 ***************************************************************************
 *
 * File Description
 * ----------------
 * Application Layer Foreground ChineseInput- edit handler
 *
 ****************************************************************************/



/***************************************************************************
 * Include Files
 ***************************************************************************/
#if !defined (AFCE_ZI_H)
#define       ACCEZI_H

#if !defined(AFCE_LCL_H)
#   include "afce_lcl.h"
#endif

#if !defined (AFGL_TYP_H)
#   include "afgl_typ.h"
#endif
/* Zi provided include files */
#include "zi8api.h"
/******************************************************************************
* macro
*******************************************************************************/
#define  HZ_SCRL_UP_PROMP   0xe725
#define  HZ_SCRL_DOWN_PROMP 0xe726
#define  PY_SCRL_UP_PROMP   0xe727
#define  PY_SCRL_DOWN_PROMP 0xe728
#define  PY_SCRL_UPDOWN_PROMP  0xe729

#define ZI8_BASE_ALPHA    0x00f0
#define ZI8_ALPHA_KEY1    1
#define ZI8_ALPHA_KEY2    2
#define ZI8_ALPHA_KEY3    3
#define ZI8_ALPHA_KEY4    4
#define ZI8_ALPHA_KEY5    5
#define ZI8_ALPHA_KEY6    6
#define ZI8_ALPHA_KEY7    7
#define ZI8_ALPHA_KEY8    8
#define ZI8_ALPHA_KEY9    9
#define ZI8_ALPHA_KEYSTAR 10
#define ZI8_ALPHA_KEY0    11
#define ZI8_ALPHA_KEYHASH 12

#define MAX_CANDIDATES_BUFFER_SIZE      9
#define MAX_WORD_LENGTH_SIZE            16
#define MAX_ELEMENT_BUFFER_SIZE         20

#define WILDKEY_MAX_NUM       10  /*wth added 2001-02-04*/

#define SCRATCH_SIZE 250

#define SIGNNUM  27
#define SIGNWIDTH  12
#define SIGNHEIGHT 20  
#define TOPOFFSET  10 
#define LEFTOFFSET 1
/******************************************************************************
* types
*******************************************************************************/
typedef enum EnterMethodTag
{
  METHOD_ENGLISH=0,
  METHOD_PINYIN,
  METHOD_BISHUN,
  METHOD_COMPONENT,
  METHOD_SENGLISH,

  NUM_OF_METHOD,
  METHOD_NULL
}
EnterMethod;

typedef struct HzScrlPrompTag
{
  Boolean    noPrevHz;
  Boolean    noNextHz;
}HzScrlPromp;

typedef struct PyHzRecordTag
{
  Int16    firstPyPosInLib;
  Int16    lastPyPosInLib;
  Int16    currentPyPosInLib;
}PyHzRecord;

typedef struct HzInfoTag
{
  Int16        beginInLib;
  Int16        sizeInLib;
  Int16        *libName_p;
  Int8         selHzMax;
  Int16        hzGroup;
  AgCharCode   currentSelHz[AF_HZ_NUM_PERLINE+1];   /*store the hz to select*/
  HzScrlPromp      hzScrlPromp;
}HzInfo;

/* ChineseInput Handler's local data structure */
typedef struct chiEditContextTag
{
  HandlerId        myHandlerId;      /* own handler Id */
  HandlerId        parentHandlerId;  /* parent handler Id */
  HandlerId        childHandlerId;   /* child handler Id */
  AfChineseInputMethod     chineseInputMethod;
  Boolean           associationOn;
  Boolean				radicalOn;
  AfChineseInputSigBody    dataFromParent;/*contain the data sent from the previous handler*/
  HzInfo           currentHzInfo;       /*contain the hanzi to select*/
  Int8             inputSerial;
  char             			inputValue[31];    /*contain the user input*/
  AgCharCode       			currentPyBsh[31];  /*contain the pinyin or stroke*/
  PyHzRecord       pyHzRecord;
  AfEditArea        editArea;         /*show current edit area*/
  Boolean          wordInput;
/*WJ 2001/5/30 add*/
  Int8                      keyTable[10];
/*WJ 2001/5/30 end*/
}
chiEditContext;

typedef struct AfSignContextTag
{
  HandlerId        myHandlerId;      /* own handler Id */
  HandlerId        parentHandlerId;  /* parent handler Id */
  Int8             currSignIndex;
    
}AfSignContext;

typedef struct InputContextTag
{
  HandlerId        myHandlerId;      /* own handler Id */
  HandlerId        parentHandlerId;  /* parent handler Id */
  HandlerId        childHandlerId;   /* child handler Id */
  AfInputLanguageState  inputLanguageState;
  AfChineseInputMethod     chineseInputMethod;
  Boolean           associationOn;
  Boolean	    radicalOn;
  AfChineseInputSigBody    dataFromParent;/*contain the data sent from the previous handler*/
  HzInfo           currentHzInfo;       /*contain the hanzi to select*/
  Int8             inputSerial;
  char             inputValue[31];    /*contain the user input*/
  AgCharCode       currentPyBsh[31];  /*contain the pinyin or stroke*/
  PyHzRecord       pyHzRecord;
  AfEditArea        editArea;         /*show current edit area*/
  Boolean          wordInput;
  Int8             keyTable[10];
  Int8             currSignIndex;
}
InputContext;
/***********************************************************************
* global variable
************************************************************************/
typedef enum  AfInputFlagTag 
{
    AG_INPUT_NULL,
    AG_INPUT_CHINESE,
    AG_INPUT_SIGN
}AfInputFlag;






/*extern Boolean aflcGetAssociation(void);*/

extern Boolean functionIsExist(void *func_p);
void afChineseInputRefresh (InputContext   *chiContext_p);

void afChineseInputEvents ( InputContext   *chiContext_p,
                      SignalBuffer  *signalBuffer_p);

void afChineseHandleEvents(InputContext  *chiContext_p,
               AgshEventInd     *eventInd_p );

Boolean afGetPyHzInfo(InputContext  *chiContext_p);

Boolean afGetBhHzInfo(InputContext  *chiContext_p);

Boolean afGetStrokeHzInfo(InputContext  *chiContext_p);

Boolean afGetSmartEnInfo(InputContext  *chiContext_p);

void afConvertWmToPy(InputContext  *chiContext_p);

void afConvertWmToBh(InputContext  *chiContext_p);

void afConvertWmToCom(InputContext *chiContext_p);

void afConvertWmToEn(InputContext *chiContext_p);

void afSelHz(Int8 hzIndex,
				 InputContext  *chiContext_p);

Boolean afClearInput(InputContext *chiContext_p);

Boolean afDisplayLastPy(InputContext *chiContext_p);

Boolean afDisplayLastEn(InputContext *chiContext_p);    

Boolean afDisplayPreviousHzGroup(InputContext  *chiContext_p ); 

Boolean afDisplayNextPy(InputContext *chiContext_p);

Boolean afDisplayNextEn(InputContext *chiContext_p);

Boolean afDisplayNextHzGroup(InputContext *chiContext_p);

void afGetPrompInfo(InputContext  *chiContext_p,
                    AgCharCode      *prompString_p);

void afInitContext(AfChineseInputSigBody   *dataFromParent_p, InputContext   *chiContext_p);

void afUpdateEditHz(InputContext    *chiContext_p,
               Int16        		charUniCode );

Boolean afEnableWildKey(InputContext *chiContext_p); /*wth added 2001-02-04*/

ZI8UCHAR Zi8GetCandidates(PZI8GETPARAM pGetParam);

ZI8BOOL Zi8SetMaxLength(ZI8UCHAR length);

ZI8BOOL Zi8IsComponent(ZI8WCHAR Character);

void Zi8GetAlphaWord(ZI8UCHAR language, ZI8WCHAR wc,
							PZI8UCHAR szString, ZI8UCHAR size);
/*xuying*/
void Zi8GetAlphaWordW(ZI8UCHAR language, ZI8WCHAR wc,
							PZI8WCHAR szString, ZI8UCHAR size);
ZI8FUNCTION ZI8BOOL  Zi8SetMaxNamesInUse  ( ZI8USHORT usMaxSize );/*wth 2001-03-14*/	


void afSignInputRefresh(Int8    currSignIndex);	

Int8 afSignInputEvents(Int8    currSignIndex,  HandlerId        myHandlerId,
                       HandlerId        parentHandlerId,  SignalBuffer   *signalBuffer_p);
                       
/*void afInputRefresh (InputContext   *context_p);                       					*/

void afUpdateEnterMethod(InputContext *context_p);
Boolean afglExtendedAddUniCodeEvents(Int16            charUniCode,
                                  AfglDisplayDesc  *displayDesc_p);
                                  
extern void
afglHandleEditBufferOverflow (AfglDisplayDesc *displayDesc_p);       

                       
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -