|
|
1.1 root 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.