OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [services/] [curses/] [pdcurses/] [current/] [src/] [pdcurses/] [attr.c] - Blame information for rev 819

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
/* Public Domain Curses */
2
 
3
#include <curspriv.h>
4
 
5
RCSID("$Id: attr.c,v 1.1 2009/05/10 08:29:53 jld Exp $")
6
 
7
/*man-start**************************************************************
8
 
9
  Name:                                                         attr
10
 
11
  Synopsis:
12
        int attroff(chtype attrs);
13
        int wattroff(WINDOW *win, chtype attrs);
14
        int attron(chtype attrs);
15
        int wattron(WINDOW *win, chtype attrs);
16
        int attrset(chtype attrs);
17
        int wattrset(WINDOW *win, chtype attrs);
18
        int standend(void);
19
        int wstandend(WINDOW *win);
20
        int standout(void);
21
        int wstandout(WINDOW *win);
22
 
23
        int color_set(short color_pair, void *opts);
24
        int wcolor_set(WINDOW *win, short color_pair, void *opts);
25
 
26
        int attr_get(attr_t *attrs, short *color_pair, void *opts);
27
        int attr_off(attr_t attrs, void *opts);
28
        int attr_on(attr_t attrs, void *opts);
29
        int attr_set(attr_t attrs, short color_pair, void *opts);
30
        int wattr_get(WINDOW *win, attr_t *attrs, short *color_pair,
31
                void *opts);
32
        int wattr_off(WINDOW *win, attr_t attrs, void *opts);
33
        int wattr_on(WINDOW *win, attr_t attrs, void *opts);
34
        int wattr_set(WINDOW *win, attr_t attrs, short color_pair,
35
                void *opts);
36
 
37
        int chgat(int n, attr_t attr, short color, const void *opts);
38
        int mvchgat(int y, int x, int n, attr_t attr, short color,
39
                const void *opts);
40
        int mvwchgat(WINDOW *win, int y, int x, int n, attr_t attr,
41
                short color, const void *opts);
42
        int wchgat(WINDOW *win, int n, attr_t attr, short color,
43
                const void *opts);
44
 
45
        chtype getattrs(WINDOW *win);
46
 
47
  Description:
48
        These functions manipulate the current attributes and/or colors
49
        of the named window.  These attributes can be any combination
50
        of A_STANDOUT, A_REVERSE, A_BOLD, A_DIM, A_BLINK, A_UNDERLINE.
51
 
52
        These constants are defined in <curses.h> and can be combined
53
        with the bitwise-OR operator (|).
54
 
55
        The current attributes of a window are applied to all chtypes
56
        that are written into the window with waddch(). Attributes are
57
        a property of the chtype, and move with the character through
58
        any scrolling or insert/delete operations.
59
 
60
        attrset() sets the current attributes of the given window to
61
        attrs. attroff() turns off the named attributes without
62
        affecting any other attributes; attron() turns them on.
63
        color_set() sets the window color to the value of color_pair.
64
 
65
        standout() is the same as attron(A_STANDOUT). standend() is the
66
        same as attrset(A_NORMAL); that is, it turns off all attributes.
67
 
68
  Return Value:
69
        All functions return OK on success and ERR on error.
70
 
71
  Portability                                X/Open    BSD    SYS V
72
        attroff                                 Y       Y       Y
73
        wattroff                                Y       Y       Y
74
        attron                                  Y       Y       Y
75
        wattron                                 Y       Y       Y
76
        attrset                                 Y       Y       Y
77
        wattrset                                Y       Y       Y
78
        standend                                Y       Y       Y
79
        wstandend                               Y       Y       Y
80
        standout                                Y       Y       Y
81
        wstandout                               Y       Y       Y
82
        color_set                               Y
83
        wcolor_set                              Y
84
        attr_get                                Y
85
        wattr_get                               Y
86
        attr_on                                 Y
87
        wattr_on                                Y
88
        attr_off                                Y
89
        wattr_off                               Y
90
        attr_set                                Y
91
        wattr_set                               Y
92
        chgat                                   Y
93
        wchgat                                  Y
94
        mvchgat                                 Y
95
        mvwchgat                                Y
96
        getattrs                                -
97
 
98
**man-end****************************************************************/
99
 
100
int wattroff(WINDOW *win, chtype attrs)
101
{
102
    PDC_LOG(("wattroff() - called\n"));
103
 
104
    if (!win)
105
        return ERR;
106
 
107
    win->_attrs &= (~attrs & A_ATTRIBUTES);
108
 
109
    return OK;
110
}
111
 
112
int attroff(chtype attrs)
113
{
114
    PDC_LOG(("attroff() - called\n"));
115
 
116
    return wattroff(stdscr, attrs);
117
}
118
 
119
int wattron(WINDOW *win, chtype attrs)
120
{
121
    chtype newcolr, oldcolr, newattr, oldattr;
122
 
123
    PDC_LOG(("wattron() - called\n"));
124
 
125
    if (!win)
126
        return ERR;
127
 
128
    if ((win->_attrs & A_COLOR) && (attrs & A_COLOR))
129
    {
130
        oldcolr = win->_attrs & A_COLOR;
131
        oldattr = win->_attrs ^ oldcolr;
132
        newcolr = attrs & A_COLOR;
133
        newattr = (attrs & A_ATTRIBUTES) ^ newcolr;
134
        newattr |= oldattr;
135
        win->_attrs = newattr | newcolr;
136
    }
137
    else
138
        win->_attrs |= (attrs & A_ATTRIBUTES);
139
 
140
    return OK;
141
}
142
 
143
int attron(chtype attrs)
144
{
145
    PDC_LOG(("attron() - called\n"));
146
 
147
    return wattron(stdscr, attrs);
148
}
149
 
150
int wattrset(WINDOW *win, chtype attrs)
151
{
152
    PDC_LOG(("wattrset() - called\n"));
153
 
154
    if (!win)
155
        return ERR;
156
 
157
    win->_attrs = attrs & A_ATTRIBUTES;
158
 
159
    return OK;
160
}
161
 
162
int attrset(chtype attrs)
163
{
164
    PDC_LOG(("attrset() - called\n"));
165
 
166
    return wattrset(stdscr, attrs);
167
}
168
 
169
int standend(void)
170
{
171
    PDC_LOG(("standend() - called\n"));
172
 
173
    return wattrset(stdscr, A_NORMAL);
174
}
175
 
176
int standout(void)
177
{
178
    PDC_LOG(("standout() - called\n"));
179
 
180
    return wattrset(stdscr, A_STANDOUT);
181
}
182
 
183
int wstandend(WINDOW *win)
184
{
185
    PDC_LOG(("wstandend() - called\n"));
186
 
187
    return wattrset(win, A_NORMAL);
188
}
189
 
190
int wstandout(WINDOW *win)
191
{
192
    PDC_LOG(("wstandout() - called\n"));
193
 
194
    return wattrset(win, A_STANDOUT);
195
}
196
 
197
chtype getattrs(WINDOW *win)
198
{
199
    return win ? win->_attrs : 0;
200
}
201
 
202
int wcolor_set(WINDOW *win, short color_pair, void *opts)
203
{
204
    PDC_LOG(("wcolor_set() - called\n"));
205
 
206
    if (!win)
207
        return ERR;
208
 
209
    win->_attrs = (win->_attrs & ~A_COLOR) | COLOR_PAIR(color_pair);
210
 
211
    return OK;
212
}
213
 
214
int color_set(short color_pair, void *opts)
215
{
216
    PDC_LOG(("color_set() - called\n"));
217
 
218
    return wcolor_set(stdscr, color_pair, opts);
219
}
220
 
221
int wattr_get(WINDOW *win, attr_t *attrs, short *color_pair, void *opts)
222
{
223
    PDC_LOG(("wattr_get() - called\n"));
224
 
225
    if (!win)
226
        return ERR;
227
 
228
    if (attrs)
229
        *attrs = win->_attrs & (A_ATTRIBUTES & ~A_COLOR);
230
 
231
    if (color_pair)
232
        *color_pair = PAIR_NUMBER(win->_attrs);
233
 
234
    return OK;
235
}
236
 
237
int attr_get(attr_t *attrs, short *color_pair, void *opts)
238
{
239
    PDC_LOG(("attr_get() - called\n"));
240
 
241
    return wattr_get(stdscr, attrs, color_pair, opts);
242
}
243
 
244
int wattr_off(WINDOW *win, attr_t attrs, void *opts)
245
{
246
    PDC_LOG(("wattr_off() - called\n"));
247
 
248
    return wattroff(win, attrs);
249
}
250
 
251
int attr_off(attr_t attrs, void *opts)
252
{
253
    PDC_LOG(("attr_off() - called\n"));
254
 
255
    return wattroff(stdscr, attrs);
256
}
257
 
258
int wattr_on(WINDOW *win, attr_t attrs, void *opts)
259
{
260
    PDC_LOG(("wattr_off() - called\n"));
261
 
262
    return wattron(win, attrs);
263
}
264
 
265
int attr_on(attr_t attrs, void *opts)
266
{
267
    PDC_LOG(("attr_on() - called\n"));
268
 
269
    return wattron(stdscr, attrs);
270
}
271
 
272
int wattr_set(WINDOW *win, attr_t attrs, short color_pair, void *opts)
273
{
274
    PDC_LOG(("wattr_set() - called\n"));
275
 
276
    if (!win)
277
        return ERR;
278
 
279
    win->_attrs = (attrs & (A_ATTRIBUTES & ~A_COLOR)) | COLOR_PAIR(color_pair);
280
 
281
    return OK;
282
}
283
 
284
int attr_set(attr_t attrs, short color_pair, void *opts)
285
{
286
    PDC_LOG(("attr_get() - called\n"));
287
 
288
    return wattr_set(stdscr, attrs, color_pair, opts);
289
}
290
 
291
int wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts)
292
{
293
    chtype *dest, newattr;
294
    int startpos, endpos;
295
 
296
    PDC_LOG(("wchgat() - called\n"));
297
 
298
    if (!win)
299
        return ERR;
300
 
301
    newattr = (attr & A_ATTRIBUTES) | COLOR_PAIR(color);
302
 
303
    startpos = win->_curx;
304
    endpos = ((n < 0) ? win->_maxx : min(startpos + n, win->_maxx)) - 1;
305
    dest = win->_y[win->_cury];
306
 
307
    for (n = startpos; n <= endpos; n++)
308
        dest[n] = (dest[n] & A_CHARTEXT) | newattr;
309
 
310
    n = win->_cury;
311
 
312
    if (startpos < win->_firstch[n] || win->_firstch[n] == _NO_CHANGE)
313
        win->_firstch[n] = startpos;
314
 
315
    if (endpos > win->_lastch[n])
316
        win->_lastch[n] = endpos;
317
 
318
    PDC_sync(win);
319
 
320
    return OK;
321
}
322
 
323
int chgat(int n, attr_t attr, short color, const void *opts)
324
{
325
    PDC_LOG(("chgat() - called\n"));
326
 
327
    return wchgat(stdscr, n, attr, color, opts);
328
}
329
 
330
int mvchgat(int y, int x, int n, attr_t attr, short color, const void *opts)
331
{
332
    PDC_LOG(("mvchgat() - called\n"));
333
 
334
    if (move(y, x) == ERR)
335
        return ERR;
336
 
337
    return wchgat(stdscr, n, attr, color, opts);
338
}
339
 
340
int mvwchgat(WINDOW *win, int y, int x, int n, attr_t attr, short color,
341
             const void *opts)
342
{
343
    PDC_LOG(("mvwchgat() - called\n"));
344
 
345
    if (wmove(win, y, x) == ERR)
346
        return ERR;
347
 
348
    return wchgat(win, n, attr, color, opts);
349
}

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.