📄 app_screen_obj.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 + -