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