NumEdit.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /********************************************************************************
  2. * File Name: NumEdit.c
  3. * Function Describe: NumEdit ¿Ø¼þ
  4. * Relate Module: GUI.c
  5. * Writer: Shliangwen
  6. * Date: 2016-1-31
  7. *********************************************************************************/
  8. #include "Includes.h"
  9. void NumEditInit(SUT_NUM_EDIT *p,unsigned short x,unsigned char y,char *def)
  10. {
  11. p->x=x;
  12. p->y=y;
  13. strncpy(p->buffer,def,NUM_EDIT_BUFFER_LEN_MAX);
  14. p->len=strlen(p->buffer);
  15. p->xlen=p->len*8;
  16. p->ylen=16;
  17. p->item=0;
  18. }
  19. void NumEditShow(SUT_NUM_EDIT *p)
  20. {
  21. unsigned short x,w;
  22. GuiClearArea(p->x,p->y,p->x+p->xlen,p->y+p->ylen-16); //ûÓÐ16 ÇåµÄÌ«¶à
  23. x=p->item*8;
  24. GuiShowStr(p->x,p->y,p->buffer,0x01);
  25. x+=p->x;
  26. GuiReverseRect(x,p->y,8,16);
  27. }
  28. void NumEditShowNORect(SUT_NUM_EDIT *p)
  29. {
  30. unsigned short x,w;
  31. GuiClearArea(p->x,p->y,p->x+p->xlen,p->y+p->ylen);
  32. x=p->item*8;
  33. GuiShowStr(p->x,p->y,p->buffer,0x01);
  34. x+=p->x;
  35. }
  36. unsigned char NumEditResponse(SUT_NUM_EDIT *p)
  37. {
  38. char v;
  39. v=p->buffer[p->item];
  40. switch(g_ulKeyValue)
  41. {
  42. case KEY_PANEL_UP:
  43. if(v<'9')v++;
  44. else v='0';
  45. p->buffer[p->item]=v;
  46. NumEditShow(p);
  47. break;
  48. case KEY_PANEL_DOWN:
  49. if(v>'0')v--;
  50. else v='9';
  51. p->buffer[p->item]=v;
  52. NumEditShow(p);
  53. break;
  54. // case KEY_PANEL_P2:
  55. // if(p->item>0){
  56. // p->item--;
  57. // }else{
  58. // p->item=p->len-1;
  59. // }
  60. // NumEditShow(p);
  61. // break;
  62. // case KEY_PANEL_P3:
  63. // if(p->item<(p->len-1)){
  64. // p->item++;
  65. // }else{
  66. // p->item=0;
  67. // }
  68. // NumEditShow(p);
  69. // break;
  70. case KEY_PANEL_MENU:
  71. return 1;
  72. case KEY_PANEL_EXIT:
  73. return 2;
  74. }
  75. return 0;
  76. }