demo_view_digtube.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "demo_view.h"
  2. #include <rtgui/widgets/digtube.h>
  3. /* digit tube codes: "ERROR" */
  4. static char digitbuf[5] = {0x79, 0x77, 0x77, 0x3F, 0x77};
  5. rtgui_container_t * demo_view_digtube(void)
  6. {
  7. struct rtgui_rect rect;
  8. rtgui_container_t *container;
  9. struct rtgui_digtube * digtube;
  10. struct rtgui_digitfont digitfont;
  11. container = demo_view("Digit Tube View");
  12. /* add digtube 1: use the default digit font */
  13. digtube = rtgui_digtube_create(RT_NULL, 5, (void *)4213, 0);
  14. rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
  15. demo_view_get_rect(container, &rect);
  16. rect.y2 = rect.y1 + 80;
  17. rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
  18. /* add digtube 2: show hex */
  19. digitfont.seg1_len = 20;
  20. digitfont.seg1_hspace = 4;
  21. digitfont.seg1_nr = 3;
  22. digitfont.seg2_len = 20;
  23. digitfont.seg3_len = 20;
  24. digitfont.seg1_vspace = 1;
  25. digitfont.data = RT_NULL;
  26. digtube = rtgui_digtube_create(&digitfont, 5, (void *)0xABC, RTGUI_DIGTUBE_STYLE_NOBACKFONT | RTGUI_DIGTUBE_STYLE_DISHEXNUM);
  27. rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
  28. rect.y1 = rect.y2 + 10;;
  29. rect.y2 = rect.y1 + 60;
  30. rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
  31. /* add digtube 3: show custom codes table */
  32. digitfont.seg1_len = 25;
  33. digitfont.seg1_hspace = 5;
  34. digitfont.seg1_nr = 5;
  35. digitfont.seg2_len = 25;
  36. digitfont.seg3_len = 25;
  37. digitfont.seg1_vspace = 1;
  38. digitfont.data = RT_NULL;
  39. digtube = rtgui_digtube_create(&digitfont, 5, (void *)digitbuf, RTGUI_DIGTUBE_STYLE_DISCODES);
  40. rtgui_container_add_child(container, RTGUI_WIDGET(digtube));
  41. rect.y1 = rect.y2 + 5;
  42. rect.y2 = rect.y1 + 80;
  43. rtgui_widget_set_rect(RTGUI_WIDGET(digtube), &rect);
  44. RTGUI_WIDGET_BACKGROUND(digtube) = RTGUI_RGB(0x00, 0x00, 0x00);
  45. RTGUI_WIDGET_FOREGROUND(digtube) = RTGUI_RGB(0x00, 0xFF, 0x00);
  46. digtube->digit_bc = RTGUI_RGB(0x00, 0xFF, 0xFF);
  47. return container;
  48. }