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