You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

colour.c 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include <curses.h>
  2. struct colour_pair {
  3. short fcol;
  4. short bcol;
  5. };
  6. static struct colour_pair cpairs[COLOUR_PAIRS] = {
  7. [0] = { COLOUR_WHITE, COLOUR_BLACK },
  8. };
  9. /**
  10. * Identify the RGB components of a given colour value
  11. *
  12. * @v colour colour value
  13. * @v *red address to store red component
  14. * @v *green address to store green component
  15. * @v *blue address to store blue component
  16. * @ret rc return status code
  17. */
  18. int colour_content ( short colour, short *red, short *green, short *blue ) {
  19. *red = ( ( colour & COLOUR_RED ) ? 1 : 0 );
  20. *green = ( ( colour & COLOUR_GREEN ) ? 1 : 0 );
  21. *blue = ( ( colour & COLOUR_BLUE ) ? 1 : 0 );
  22. return OK;
  23. }
  24. /**
  25. * Initialise colour pair
  26. *
  27. * @v pair colour pair number
  28. * @v fcol foreground colour
  29. * @v bcol background colour
  30. */
  31. int init_pair ( short pair, short fcol, short bcol ) {
  32. struct colour_pair *cpair;
  33. if ( ( pair < 1 ) || ( pair >= COLOUR_PAIRS ) )
  34. return ERR;
  35. cpair = &cpairs[pair];
  36. cpair->fcol = fcol;
  37. cpair->bcol = bcol;
  38. return OK;
  39. }
  40. /**
  41. * Get colours of colour pair
  42. *
  43. * @v pair colour pair number
  44. * @ret fcol foreground colour
  45. * @ret bcol background colour
  46. */
  47. int pair_content ( short pair, short *fcol, short *bcol ) {
  48. struct colour_pair *cpair;
  49. if ( ( pair < 0 ) || ( pair >= COLOUR_PAIRS ) )
  50. return ERR;
  51. cpair = &cpairs[pair];
  52. *fcol = cpair->fcol;
  53. *bcol = cpair->bcol;
  54. return OK;
  55. }