📄 editbox.c
字号:
/****************************************************************
** *
** FILE : EditBox.c *
** *
** By : Cyb 2007.07.01 *
****************************************************************/
#define EDITBOX_GLOBALS
#include "includes.h"
#include "timetask.h"
#include "uart_drv.h"
#include "LedDrv.h"
#include "DisplayTask.h"
#include "Hardware.h"
#include "audio.h"
#include "_keyboard.h"
#include "voice.h"
#include "EditBox.h"
#define EDITBOX_DEBUG 1
static INT8U CLEAR = 0x00;
void EditBoxDeleteChar(EDITBOX *editbox)
{
if(editbox->editlen == 0)
{
return;
}
editbox->editlen--;
#if EDITBOX_DEBUG >0
PrintFromUART(DEBUG_UARTNo_DISPLAYTASK,"\n");
SendFromUART_MEM_HEX(DEBUG_UARTNo_DISPLAYTASK,editbox->editbuf,editbox->editlen);
#endif
}
void EditBox_HdlNumKey(EDITBOX *editbox,INT8U key)
{
editbox->editlen++;
if(editbox->editlen > EDITMAXLENGTH)
{
return;
}
editbox->editbuf[editbox->editlen-1] = key;
#if EDITBOX_DEBUG >0
PrintFromUART(DEBUG_UARTNo_DISPLAYTASK,"\n");
SendFromUART_MEM_HEX(DEBUG_UARTNo_DISPLAYTASK,editbox->editbuf,editbox->editlen);
#endif
}
BOOLEAN IsNumber(INT8U key)
{
if((key>=KEY_0)&&(key<=KEY_9))
{
return TRUE;
}
else
{
return FALSE;
}
}
void RefleshEditBox(EDITBOX *editbox)
{
INT8U i,j;
INT8U index;
if(editbox->editlen ==0)
{
ClearLedDisplay();
return;
}
if(editbox->editlen > EDITMAXLENGTH)
{
return;
}
if(editbox->editlen <=4)
{
for(i=0;i<editbox->editlen;i++)
{
index = editbox->editbuf[i]-0x30;
SendLedDisplay(&NUMBER[index],1,i,i);
}
while(i<4)
{
SendLedDisplay(&CLEAR,1,i,i);
i++;
}
}
else
{
for(i=0;i<4;i++)
{
j = editbox->editlen-1-i;
index = editbox->editbuf[j]-0x30;
SendLedDisplay(&NUMBER[index],1,3-i,3-i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -