iPXE
winattrs.c
Go to the documentation of this file.
1 #include <curses.h>
2 
3 /** @file
4  *
5  * MuCurses window attribute functions
6  *
7  */
8 
9 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
10 FILE_SECBOOT ( PERMITTED );
11 
12 /**
13  * Get the background rendition attributes for a window
14  *
15  * @v *win subject window
16  * @ret ch chtype rendition representation
17  */
18 inline chtype getbkgd ( WINDOW *win ) {
19  return win->attrs;
20 }
21 
22 /**
23  * Turn off attributes in a window
24  *
25  * @v win subject window
26  * @v attrs attributes to enable
27  * @ret rc return status code
28  */
29 int wattroff ( WINDOW *win, int attrs ) {
30  win->attrs &= ~attrs;
31  return OK;
32 }
33 
34 /**
35  * Turn on attributes in a window
36  *
37  * @v win subject window
38  * @v attrs attributes to enable
39  * @ret rc return status code
40  */
41 int wattron ( WINDOW *win, int attrs ) {
42  win->attrs |= attrs;
43  return OK;
44 }
45 
46 /**
47  * Set attributes in a window
48  *
49  * @v win subject window
50  * @v attrs attributes to enable
51  * @ret rc return status code
52  */
53 int wattrset ( WINDOW *win, int attrs ) {
54  win->attrs = ( attrs | ( win->attrs & A_COLOR ) );
55  return OK;
56 }
57 
58 /**
59  * Get attributes and colour pair information
60  *
61  * @v *win window to obtain information from
62  * @v *attrs address in which to store attributes
63  * @v *pair address in which to store colour pair
64  * @v *opts undefined (for future implementation)
65  * @ret rc return status cude
66  */
67 int wattr_get ( WINDOW *win, attr_t *attrs, short *pair,
68  void *opts __unused ) {
69  *attrs = win->attrs & A_ATTRIBUTES;
70  *pair = PAIR_NUMBER ( win->attrs );
71  return OK;
72 }
73 
74 /**
75  * Turn off attributes in a window
76  *
77  * @v *win subject window
78  * @v attrs attributes to toggle
79  * @v *opts undefined (for future implementation)
80  * @ret rc return status code
81  */
82 int wattr_off ( WINDOW *win, attr_t attrs,
83  void *opts __unused ) {
84  wattroff( win, attrs );
85  return OK;
86 }
87 
88 /**
89  * Turn on attributes in a window
90  *
91  * @v *win subject window
92  * @v attrs attributes to toggle
93  * @v *opts undefined (for future implementation)
94  * @ret rc return status code
95  */
96 int wattr_on ( WINDOW *win, attr_t attrs,
97  void *opts __unused ) {
98  wattron( win, attrs );
99  return OK;
100 }
101 
102 /**
103  * Set attributes and colour pair information in a window
104  *
105  * @v *win subject window
106  * @v attrs attributes to set
107  * @v cpair colour pair to set
108  * @v *opts undefined (for future implementation)
109  * @ret rc return status code
110  */
111 int wattr_set ( WINDOW *win, attr_t attrs, short cpair,
112  void *opts __unused ) {
113  wattrset( win, attrs | COLOUR_PAIR ( cpair ) );
114  return OK;
115 }
116 
117 /**
118  * Set colour pair for a window
119  *
120  * @v *win subject window
121  * @v colour_pair_number colour pair integer
122  * @v *opts undefined (for future implementation)
123  * @ret rc return status code
124  */
125 int wcolour_set ( WINDOW *win, short colour_pair_number,
126  void *opts __unused ) {
127  if ( ( unsigned short )colour_pair_number > COLOUR_PAIRS )
128  return ERR;
129 
130  win->attrs = ( ( win->attrs & A_ATTRIBUTES ) |
131  COLOUR_PAIR ( colour_pair_number ) );
132  return OK;
133 }
134 
MuCurses header file.
#define COLOUR_PAIR(n)
Definition: curses.h:152
#define COLOUR_PAIRS
Definition: curses.h:156
FILE_SECBOOT(PERMITTED)
int wattrset(WINDOW *win, int attrs)
Set attributes in a window.
Definition: winattrs.c:53
Curses Window struct.
Definition: curses.h:90
#define A_ATTRIBUTES
Definition: curses.h:147
int wattr_get(WINDOW *win, attr_t *attrs, short *pair, void *opts __unused)
Get attributes and colour pair information.
Definition: winattrs.c:67
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
chtype getbkgd(WINDOW *win)
Get the background rendition attributes for a window.
Definition: winattrs.c:18
int wcolour_set(WINDOW *win, short colour_pair_number, void *opts __unused)
Set colour pair for a window.
Definition: winattrs.c:125
Definition: sis900.h:208
uint32_t attr_t
Definition: curses.h:31
#define ERR
Definition: curses.h:19
int wattr_off(WINDOW *win, attr_t attrs, void *opts __unused)
Turn off attributes in a window.
Definition: winattrs.c:82
int wattr_on(WINDOW *win, attr_t attrs, void *opts __unused)
Turn on attributes in a window.
Definition: winattrs.c:96
#define __unused
Declare a variable or data structure as unused.
Definition: compiler.h:573
attr_t attrs
window attributes
Definition: curses.h:94
int wattron(WINDOW *win, int attrs)
Turn on attributes in a window.
Definition: winattrs.c:41
#define A_COLOR
Definition: curses.h:150
static union @447 opts
"cert<xxx>" option list
uint32_t chtype
Definition: curses.h:30
int wattr_set(WINDOW *win, attr_t attrs, short cpair, void *opts __unused)
Set attributes and colour pair information in a window.
Definition: winattrs.c:111
int wattroff(WINDOW *win, int attrs)
Turn off attributes in a window.
Definition: winattrs.c:29
#define PAIR_NUMBER(attrs)
Definition: curses.h:154