NumEdit.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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,14);
  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 0//原来下是减值的
  50. if(v>'0')v--;
  51. else v='9';
  52. p->buffer[p->item]=v;
  53. NumEditShow(p);
  54. #else //现在改成向右移动
  55. if(p->item<(p->len-1)){
  56. p->item++;
  57. }else{
  58. p->item=0;
  59. }
  60. NumEditShow(p);
  61. #endif
  62. break;
  63. // case KEY_PANEL_P2:
  64. // if(p->item>0){
  65. // p->item--;
  66. // }else{
  67. // p->item=p->len-1;
  68. // }
  69. // NumEditShow(p);
  70. // break;
  71. // case KEY_PANEL_P3:
  72. // if(p->item<(p->len-1)){
  73. // p->item++;
  74. // }else{
  75. // p->item=0;
  76. // }
  77. // NumEditShow(p);
  78. // break;
  79. // case KEY_PANEL_MENU:
  80. // return 1;
  81. case KEY_PANEL_EXIT:
  82. return 2;
  83. }
  84. return 0;
  85. }