| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /********************************************************************************
- * File Name: NumEdit.c
- * Function Describe: NumEdit 控件
- * Relate Module: GUI.c
- * Writer: Shliangwen
- * Date: 2016-1-31
- *********************************************************************************/
- #include "Includes.h"
- void NumEditInit(SUT_NUM_EDIT *p,unsigned short x,unsigned char y,char *def)
- {
- //memset(p,0,sizeof(SUT_NUM_EDIT));//////////////
- p->x=x;
- p->y=y;
- strncpy(p->buffer,def,NUM_EDIT_BUFFER_LEN_MAX);
- p->len=strlen(p->buffer);
- p->xlen=p->len*8;
- p->ylen=16;
- p->item=0;
- }
- void NumEditShow(SUT_NUM_EDIT *p)
- {
- unsigned short x,w;
- GuiClearArea(p->x,p->y,p->x+p->xlen,p->y+p->ylen-16); //没有16 清的太多
- x=p->item*8;
- GuiShowStr(p->x,p->y,p->buffer,0x01);
- x+=p->x;
- GuiReverseRect(x,p->y,8,16);
- }
- void NumEditShowNORect(SUT_NUM_EDIT *p)
- {
- unsigned short x,w;
- GuiClearArea(p->x,p->y,p->x+p->xlen,p->y+p->ylen);
- x=p->item*8;
- GuiShowStr(p->x,p->y,p->buffer,0x01);
- x+=p->x;
- }
- unsigned char NumEditResponse(SUT_NUM_EDIT *p)
- {
-
- char v;
- v=p->buffer[p->item];
- switch(g_ulKeyValue)
- {
- case KEY_PANEL_UP:
- if(v=='-')v='/';//
- if(v<'9')v++;
- else v='0';
- p->buffer[p->item]=v;
- NumEditShow(p);
- break;
- case KEY_PANEL_DOWN:
- #if 1//原来下是减值的
- if(v>'0')v--;
- else v='9';
- p->buffer[p->item]=v;
- NumEditShow(p);
- #else //现在改成向右移动
-
- //if(v=='-')v='0';
- p->buffer[p->item]=v;
- if(p->item<(p->len-1)){
- p->item++;
- }else{
- p->item=0;
- }
- NumEditShow(p);
- #endif
- break;
- case KEY_PANEL_EXIT:
- if(p->item>0){
- p->item--;
- }else{
- p->item=p->len-1;
- }
- NumEditShow(p);
- break;
- case KEY_PANEL_MENU:
-
- if(p->item<(p->len-1)){
- p->item++;
- }else{
- p->item=0;
- }
- NumEditShow(p);
- break;
- // case KEY_PANEL_MENU:
- // return 1;
- // case KEY_PANEL_EXIT:
- // return 2;
- }
- return 0;
- }
- unsigned char Password_Response(SUT_NUM_EDIT *p,char type)
- {
-
- static char counct=0;
-
-
- char v;
- v=p->buffer[p->item];
- switch(g_ulKeyValue)
- {
- case KEY_PANEL_UP:
- if(v=='-')v='/';//
- if(v<'9')v++;
- else v='0';
- p->buffer[p->item]=v;
- NumEditShow(p);
- break;
- case KEY_PANEL_DOWN:
- if(v>'0')v--;
- else v='9';
- p->buffer[p->item]=v;
- NumEditShow(p);
- break;
- case KEY_PANEL_EXIT:
- if(p->item>0){
- p->item--;
- }else{
- p->item=p->len-1;
- }
- NumEditShow(p);
- break;
- case KEY_PANEL_MENU:
-
- if(p->item<(p->len-1)){
- p->item++;
- }else{
- p->item=0;
- }
- NumEditShow(p);
- break;
- }
- return 0;
- }
|