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

📄 app_screen_obj.c

📁 just uploading the file to get a new downlad for AD7843
💻 C
字号:
#include "app_config.h"

extern so_obj_t so_obj[MAX_SCR_OBJ];

#include "pic_key.h"
#include "pic_num.h"

#define KEY_BLUE	0
#define KEY_GREEN	1
#define KEY_RED		2

unsigned char key_color = KEY_BLUE;
unsigned char current_key;

#define SO_KEY1		0
#define SO_KEY2		1
#define SO_KEY3		2
#define SO_KEY4		3
#define SO_KEY5		4
#define SO_KEY6		5
#define SO_KEY7		6
#define SO_KEY8		7
#define SO_KEY9		8
#define SO_KEY0		9
#define SO_KEYENT	10
#define SO_KEYDEL	11

void key_task100ms(void)
{
}

void key_draw(void)
{
	//size of key is 48x48
	TSLCDShowPic2(so_obj[current_key].horigin + 6,
			so_obj[current_key].horigin + 53,
			so_obj[current_key].vorigin + 6,
			so_obj[current_key].vorigin + 53,
			pic_key + (key_color*2 + (1-so_obj[current_key].val))*(48*48),TS_MODE_NORMAL);

	//size of number is 44x21
	TSLCDShowPic2(so_obj[current_key].horigin + 8,
			so_obj[current_key].horigin + 51,
			so_obj[current_key].vorigin + 20,
			so_obj[current_key].vorigin + 40,
			pic_num + (current_key)*(44*21),TS_MODE_NORMAL);
}

unsigned char key_is_white(so_pos_t lhpos,so_pos_t lvpos)
{
	return (0);
}

void key1_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('1');
			current_key = SO_KEY1;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY1;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key2_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('2');
			current_key = SO_KEY2;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY2;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key3_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('3');
			current_key = SO_KEY3;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY3;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key4_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('4');
			current_key = SO_KEY4;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY4;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key5_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('5');
			current_key = SO_KEY5;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY5;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key6_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('6');
			current_key = SO_KEY6;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY6;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key7_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('7');
			current_key = SO_KEY7;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY7;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key8_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('8');
			current_key = SO_KEY8;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY8;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key9_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('9');
			current_key = SO_KEY9;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY9;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void key0_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych('0');
			current_key = SO_KEY0;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEY0;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}
}

void keyent_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	unsigned char i;
	switch (p_stat)
	{
		case PST_DOWN :
			saystr("\r\n");
			current_key = SO_KEYENT;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEYENT;
			so_obj[current_key].val = 1;

			key_color++;
			if (key_color > KEY_RED)
			{
				key_color = KEY_BLUE;
			}
			for (i=0;i<12;i++)
			{	
				current_key = i;
				key_draw();
			}
			break;
	}
}

void keydel_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		case PST_DOWN :
			saych(0x08); 		//Back Space
			saych(0x20); 		//Space
			saych(0x08); 		//Back Space
			current_key = SO_KEYDEL;
			so_obj[current_key].val = 0;
			key_draw();
			break;
		case PST_UP :
			current_key = SO_KEYDEL;
			so_obj[current_key].val = 1;
			key_draw();
			break;
	}

}

void KeyPadScreenInit(void)
{
	unsigned char i;

	TSLCDFillRect(0,TS_SIZE_X-1,0,TS_SIZE_Y-1,TS_COL_BLACK,TS_MODE_NORMAL);

	for (i=0;i<12;i++)	
	{
		so_obj[i].hsize = 60; //bigger than image
		so_obj[i].vsize = 60;
		so_obj[i].stat = SO_ST_ON;
		so_obj[i].val = 1;
		so_obj[i].draw = key_draw;
		so_obj[i].task100ms = key_task100ms;
		so_obj[i].is_white = key_is_white;
	}

	so_obj[SO_KEY1].do_ = key1_do;
	so_obj[SO_KEY2].do_ = key2_do;
	so_obj[SO_KEY3].do_ = key3_do;
	so_obj[SO_KEY4].do_ = key4_do;
	so_obj[SO_KEY5].do_ = key5_do;
	so_obj[SO_KEY6].do_ = key6_do;
	so_obj[SO_KEY7].do_ = key7_do;
	so_obj[SO_KEY8].do_ = key8_do;
	so_obj[SO_KEY9].do_ = key9_do;
	so_obj[SO_KEY0].do_ = key0_do;
	so_obj[SO_KEYENT].do_ = keyent_do;
	so_obj[SO_KEYDEL].do_ = keydel_do;

#ifdef TS_ORN_PORTRAIT
	so_obj[SO_KEY1].horigin = 18;
	so_obj[SO_KEY1].vorigin = 19;

	so_obj[SO_KEY2].horigin = 90;
	so_obj[SO_KEY2].vorigin = 19;

	so_obj[SO_KEY3].horigin = 162;
	so_obj[SO_KEY3].vorigin = 19;

	so_obj[SO_KEY4].horigin = 18;
	so_obj[SO_KEY4].vorigin = 92;

	so_obj[SO_KEY5].horigin = 90;
	so_obj[SO_KEY5].vorigin = 92;

	so_obj[SO_KEY6].horigin = 162;
	so_obj[SO_KEY6].vorigin = 92;

	so_obj[SO_KEY7].horigin = 18;
	so_obj[SO_KEY7].vorigin = 165;

	so_obj[SO_KEY8].horigin = 90;
	so_obj[SO_KEY8].vorigin = 165;

	so_obj[SO_KEY9].horigin = 162;
	so_obj[SO_KEY9].vorigin = 165;

	so_obj[SO_KEY0].horigin = 90;
	so_obj[SO_KEY0].vorigin = 238;

	so_obj[SO_KEYENT].horigin = 162;
	so_obj[SO_KEYENT].vorigin = 238;

	so_obj[SO_KEYDEL].horigin = 18;
	so_obj[SO_KEYDEL].vorigin = 238;
#else
	so_obj[SO_KEY1].vorigin = 18;
	so_obj[SO_KEY1].horigin = 19;

	so_obj[SO_KEY2].vorigin = 90;
	so_obj[SO_KEY2].horigin = 19;

	so_obj[SO_KEY3].vorigin = 162;
	so_obj[SO_KEY3].horigin = 19;

	so_obj[SO_KEY4].vorigin = 18;
	so_obj[SO_KEY4].horigin = 92;

	so_obj[SO_KEY5].vorigin = 90;
	so_obj[SO_KEY5].horigin = 92;

	so_obj[SO_KEY6].vorigin = 162;
	so_obj[SO_KEY6].horigin = 92;

	so_obj[SO_KEY7].vorigin = 18;
	so_obj[SO_KEY7].horigin = 165;

	so_obj[SO_KEY8].vorigin = 90;
	so_obj[SO_KEY8].horigin = 165;

	so_obj[SO_KEY9].vorigin = 162;
	so_obj[SO_KEY9].horigin = 165;

	so_obj[SO_KEY0].vorigin = 90;
	so_obj[SO_KEY0].horigin = 238;

	so_obj[SO_KEYENT].vorigin = 162;
	so_obj[SO_KEYENT].horigin = 238;

	so_obj[SO_KEYDEL].vorigin = 18;
	so_obj[SO_KEYDEL].horigin = 238;
#endif

	for (i=0;i<12;i++)
	{	
		current_key = i;
		key_draw();
	}
}

⌨️ 快捷键说明

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