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
9FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
10FILE_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 */
18inline 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 */
29int 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 */
41int 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 */
53int 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 */
67int 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 */
82int 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 */
96int 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 */
111int 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 */
125int 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
static union @024010030001061367220137227263210031030210157031 opts
"cert<xxx>" option list
MuCurses header file.
#define PAIR_NUMBER(attrs)
Definition curses.h:154
uint32_t attr_t
Definition curses.h:31
uint32_t chtype
Definition curses.h:30
#define ERR
Definition curses.h:19
#define COLOUR_PAIRS
Definition curses.h:156
#define COLOUR_PAIR(n)
Definition curses.h:152
#define A_COLOR
Definition curses.h:150
#define OK
Definition curses.h:25
struct _curses_window WINDOW
Curses Window struct.
#define A_ATTRIBUTES
Definition curses.h:147
#define __unused
Declare a variable or data structure as unused.
Definition compiler.h:573
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
attr_t attrs
window attributes
Definition curses.h:94
int wattr_get(WINDOW *win, attr_t *attrs, short *pair, void *opts __unused)
Get attributes and colour pair information.
Definition winattrs.c:67
int wattroff(WINDOW *win, int attrs)
Turn off attributes in a window.
Definition winattrs.c:29
int wattrset(WINDOW *win, int attrs)
Set attributes in a window.
Definition winattrs.c:53
chtype getbkgd(WINDOW *win)
Get the background rendition attributes for a window.
Definition winattrs.c:18
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
int wcolour_set(WINDOW *win, short colour_pair_number, void *opts __unused)
Set colour pair for a window.
Definition winattrs.c:125
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 wattron(WINDOW *win, int attrs)
Turn on attributes in a window.
Definition winattrs.c:41