112 lines
2.4 KiB
C
112 lines
2.4 KiB
C
|
#ifndef MYWIN_INPUT_H__
|
|||
|
#define MYWIN_INPUT_H__
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//定义最大输入字符数
|
|||
|
#define INPUT_WORDS_MAXNUM 256
|
|||
|
|
|||
|
//定义输入法状态
|
|||
|
#define INPUT_MODE_PINYIN 0
|
|||
|
#define INPUT_MODE_BIG 1
|
|||
|
#define INPUT_MODE_MINI 2
|
|||
|
#define INPUT_MODE_NUM 3
|
|||
|
#define INPUT_MODE_SYMBOL 4
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
int x;
|
|||
|
int y;
|
|||
|
int x_size;
|
|||
|
int y_size;
|
|||
|
int press;
|
|||
|
char txt[10];
|
|||
|
}INPUT_ButtonStruct;
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
WIN_WindowStruct win;
|
|||
|
int pinyin_y; //拼音的显示坐标
|
|||
|
int button_ysize; //按键Y轴方向的尺寸
|
|||
|
int exit; //把此项设为1,输入法返回
|
|||
|
int press_x; //屏幕按下时的坐标
|
|||
|
int press_y;
|
|||
|
int press_down_index; //处于按下状态的键值索引
|
|||
|
int press_down_index_word; //处于按下状态的候选字索引
|
|||
|
int word_page; //候选字翻页
|
|||
|
int num_symbol_page; //数字字符翻页
|
|||
|
u8 *word_const; //候选字待选数组
|
|||
|
int inputMode; //输入法状态,0,拼音,1,大写,2,小写,3,数字,4,符号
|
|||
|
char inputPinyin[10]; //输入的拼音
|
|||
|
char candidateWord[3]; //候选字;
|
|||
|
INPUT_ButtonStruct word[10];//候选字按键
|
|||
|
char inputWords[INPUT_WORDS_MAXNUM]; //输入的字符
|
|||
|
INPUT_ButtonStruct button[37];
|
|||
|
}WIN_InputStruct;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//在堆中创建一个输入法
|
|||
|
WIN_InputStruct *WIN_CreatInput (WIN_WindowStruct *base,
|
|||
|
void (*msgLoop)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg),
|
|||
|
int x,int y,int x_size,int y_size);
|
|||
|
|
|||
|
//键盘切换至字母大写
|
|||
|
void INPUT_SetToAscBig (WIN_InputStruct *input);
|
|||
|
|
|||
|
//键盘切换至字母小写
|
|||
|
void INPUT_SetToAscMini (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
//键盘切换至数字
|
|||
|
void INPUT_SetToNum (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
//按键按下
|
|||
|
void INPUT_SetPressDown (WIN_InputStruct *input);
|
|||
|
|
|||
|
//按键抬起
|
|||
|
void INPUT_SetPressUp (WIN_InputStruct *input);
|
|||
|
|
|||
|
//添加拼音
|
|||
|
void INPUT_PinYinAppend (WIN_InputStruct *input);
|
|||
|
|
|||
|
//拼音截短
|
|||
|
void INPUT_PinYinCut (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
//输入字符截短
|
|||
|
void INPUT_WordCut (WIN_InputStruct *input);
|
|||
|
|
|||
|
//追加输入字符
|
|||
|
void INPUT_WordAppend (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
//查询候选字符
|
|||
|
void INPUT_FindWord (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//默认绘制函数
|
|||
|
void INPUT_DefaultPaint (WIN_InputStruct *input);
|
|||
|
|
|||
|
|
|||
|
//默认消息处理函数
|
|||
|
void INPUT_DefaultMsgLoop (WIN_InputStruct *input,WIN_MsgStruct *msg);
|
|||
|
|
|||
|
|
|||
|
//使用键盘输入一些数据
|
|||
|
int INPUT_KeyBoard (WIN_WindowStruct *win,char *txt,int len);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|