#ifndef _keyboard1_h
#define _keyboard1_h
#include "sys.h"
#include "delay.h"
//#include "uart.h"
#include "inputHZ.h"
//#include "if_port.h"
#include "LT768_Lib.h"
#include "type.h"
//#include "w25n01.h"


//typedef struct
//{
//	u16 w;
//	u16 h;
//	u32 addr;
//	u32 len;
//}Picture_Info;

typedef enum
{
	key_none,   //无事件
	key_down,   //按下
	key_long,   //长按
	key_up,     //释放
}TP_State;

typedef enum
{
	English,    //英文输入
	Chinese,    //中文输入
	Numbers,    //数字输入
	Symbol,     //符号输入
}KEY_B_FUNC;


typedef enum
{
	Small,     //英文小写
	Big,	   //英文大写
}ENG_Type;


typedef struct
{
	u16  x;         //输入开始的X轴坐标
	u16  y;         //输入开始的Y轴坐标
	u16  start;     //开始的X轴坐标
	u16  end;       //最大的X轴坐标
	u8   cnt;       //输入字符计数
	u8   info[100]; //要显示的字符串
}INPUT_Info;

typedef struct
{
	u16  x1;	//键盘中按键的左上角X坐标
	u16  y1;	//键盘中按键的左上角Y坐标
	u16  x2;	//键盘中按键的右下角X坐标
	u16  y2;	//键盘中按键的右下角Y坐标
	char *c;	//键盘中按键对应的文本信息
}KEY_B_Pos;

typedef struct
{
	TP_State   state;       //触摸状态
	u8         id;          //键盘中按键的ID
	u8         cnt;         //触摸计数
	u8         sum;         //键盘中按键的总数
	ENG_Type   type;        //英文大小写类型   0：小写   1：大写
	KEY_B_FUNC func;        //键盘中的功能
	u16        index;       //显示的候选中文在 对应数组中的偏移位置，主要是换页用
	const KEY_B_Pos *pos;   //键盘中的位置信息及数据
	INPUT_Info input;
}KEY_B_Info;

 
extern KEY_B_Info gKB;


void LT_InitKeyBoard(void);
void ShowChinese(u8 id,u8 *buf);
void ShowEnglish(u8 id,u8 *buf);
void ShowSymbol(u8 id,u8 *buf);
void ShowNumbers(u8 id,u8 *buf);
u8 KeyBoard_Demo(void);

#endif
