GUIDEMO_ColorBar.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:4k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                礐/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUIDEMO_ShowColorBar.c
  16. Purpose     : Draws color bars
  17. ----------------------------------------------------------------------
  18. */
  19. #include "LCD.H"            /* interface definitions */
  20. //#include "LCD_ConfDefaults.h"  /* valid LCD configuration */
  21. #include "WM.H"
  22. #include "GUIDEMO.H"
  23. /*********************************************************************
  24. *
  25. *       GUIDEMO_ShowColorBar
  26. *
  27. **********************************************************************
  28. */
  29. #if LCD_BITSPERPIXEL > 2
  30. void GUIDEMO_ShowColorBar(void) {
  31.   int nBars = 13;
  32.   int YSize = LCD_GetYSize();
  33.   int y0 = 70; 
  34.   int yStep = (YSize - y0 - (YSize < 320 ? 0 : 60)) / nBars;
  35.   int i;
  36.   int x0 = 60;
  37.   int NumColors = LCD_GetDevCap(LCD_DEVCAP_NUMCOLORS);
  38.   int xsize = LCD_GetDevCap(LCD_DEVCAP_XSIZE);
  39. xsize -=x0;
  40.   GUIDEMO_ShowIntro("Color bar",
  41.                     "uC/GUI features an integrated"
  42.                     "nmanagement that will always"
  43.                     "nfind the best available"
  44.                     "ncolor for any logical color");
  45.   GUI_SetColor(GUI_WHITE);
  46.   GUI_SetBkColor(GUI_BLACK); 
  47.   GUI_Clear();
  48. GUI_SetFont(&GUI_Font8x16);
  49. GUI_DispString("Color barsn");
  50. GUI_SetFont(&GUI_Font8_ASCII);
  51.   #ifdef LCD_CONTROLLER
  52.     GUI_DispString("nLCD_CONTROLLER: ");
  53.     GUI_DispDecMin(LCD_CONTROLLER);
  54.     GUI_DispString("n");
  55.   #endif
  56.   GUI_DispDecMin(LCD_BITSPERPIXEL);
  57.   GUI_DispString(" bpp");
  58.   #ifdef LCD_BUSWIDTH
  59.     GUI_DispString(", ");
  60.     GUI_DispDecMin(LCD_BUSWIDTH);
  61.     GUI_DispString(" bit bus");
  62.   #endif
  63.   GUI_DispString(", ");
  64.   GUI_DispDecMin(NumColors);
  65.   GUI_DispString(" colorsn");
  66.   #if (LCD_FIXEDPALETTE) 
  67.     GUI_DispString("Fixed palette: ");
  68.     GUI_DispDecMin(LCD_FIXEDPALETTE);
  69.   #else
  70.     GUI_DispString("(Custom)");
  71.   #endif
  72.   GUI_SetFont(&GUI_Font8x8);
  73.   GUI_SetColor(GUI_WHITE);
  74.   GUI_DispStringAt("Red",     0, y0 +      yStep);
  75.   GUI_DispStringAt("Green",   0, y0 + 3  * yStep);
  76.   GUI_DispStringAt("Blue",    0, y0 + 5  * yStep);
  77.   GUI_DispStringAt("Grey",    0, y0 + 6  * yStep);
  78.   GUI_DispStringAt("Yellow",  0, y0 + 8  * yStep);
  79.   GUI_DispStringAt("Cyan",    0, y0 + 10 * yStep);
  80.   GUI_DispStringAt("Magenta", 0, y0 + 12 * yStep);
  81.   for (i = 0; (i < xsize) && !GUIDEMO_CheckCancel(); i++) {
  82.     U16 cs = (255 * (U32)i) / xsize;
  83.     U16 x = x0 + i;;
  84. /* Red */
  85.     GUI_SetColor(cs);
  86.     GUI_DrawVLine(x, y0, y0 + yStep - 1);
  87.     GUI_SetColor(0x0000ff + (255 - cs) * 0x10100L);
  88.     GUI_DrawVLine(x, y0 + yStep, y0 + 2 * yStep - 1);
  89. /* Green */
  90.     GUI_SetColor(cs<<8);
  91.     GUI_DrawVLine(x, y0 + 2 * yStep, y0 + 3 * yStep - 1);
  92.     GUI_SetColor(0x00ff00 + (255 - cs) * 0x10001L);
  93.     GUI_DrawVLine(x, y0 + 3 * yStep, y0 + 4 * yStep - 1);
  94. /* Blue */
  95.     GUI_SetColor(cs * 0x10000L);
  96.     GUI_DrawVLine(x, y0 + 4 * yStep, y0 + 5 * yStep - 1);
  97.     GUI_SetColor(0xff0000 + (255 - cs) * 0x00101L);
  98.     GUI_DrawVLine(x, y0 + 5 * yStep, y0 + 6 * yStep - 1);
  99. /* Gray */
  100.     GUI_SetColor(cs * 0x10101L);
  101.     GUI_DrawVLine(x, y0 + 6 * yStep, y0 + 7 * yStep - 1);
  102. /* Yellow */
  103.     GUI_SetColor(cs * 0x00101L);
  104.     GUI_DrawVLine(x, y0 + 7 * yStep, y0 + 8 * yStep - 1);
  105.     GUI_SetColor(0x00ffff + (255 - cs) * 0x10000L);
  106.     GUI_DrawVLine(x, y0 + 8 * yStep, y0 + 9 * yStep - 1);
  107. /* Cyan */
  108.     GUI_SetColor(cs * 0x10100L);
  109.     GUI_DrawVLine(x, y0 + 9 * yStep, y0 + 10 * yStep - 1);
  110.     GUI_SetColor(0xffff00 + (255 - cs) * 0x00001L);
  111.     GUI_DrawVLine(x, y0 + 10 * yStep, y0 + 11 * yStep - 1);
  112. /* Magenta */
  113.     GUI_SetColor(cs * 0x10001L);
  114.     GUI_DrawVLine(x, y0 + 11 * yStep, y0 + 12 * yStep - 1);
  115.     GUI_SetColor(0xff00ff + (255 - cs) * 0x00100L);
  116.     GUI_DrawVLine(x, y0 + 12 * yStep, y0 + 13 * yStep - 1);
  117.   }
  118.   GUIDEMO_Wait();
  119. }
  120. #else
  121. void GUIDEMO_ShowColorBar(void) {}
  122. #endif