pdcurses/outopts.c

branch
protocol5
changeset 106
7b156b764d11
parent 97
2d43f05b284c
equal deleted inserted replaced
104:a76af67a3a4b 106:7b156b764d11
1 /* Public Domain Curses */
2
3 #include <curspriv.h>
4
5 RCSID("$Id: outopts.c,v 1.39 2008/07/14 12:22:13 wmcbrine Exp $")
6
7 /*man-start**************************************************************
8
9 Name: outopts
10
11 Synopsis:
12 int clearok(WINDOW *win, bool bf);
13 int idlok(WINDOW *win, bool bf);
14 void idcok(WINDOW *win, bool bf);
15 void immedok(WINDOW *win, bool bf);
16 int leaveok(WINDOW *win, bool bf);
17 int setscrreg(int top, int bot);
18 int wsetscrreg(WINDOW *win, int top, int bot);
19 int scrollok(WINDOW *win, bool bf);
20
21 int raw_output(bool bf);
22
23 Description:
24 With clearok(), if bf is TRUE, the next call to wrefresh() with
25 this window will clear the screen completely and redraw the
26 entire screen.
27
28 immedok(), called with a second argument of TRUE, causes an
29 automatic wrefresh() every time a change is made to the
30 specified window.
31
32 Normally, the hardware cursor is left at the location of the
33 window being refreshed. leaveok() allows the cursor to be
34 left wherever the update happens to leave it. It's useful
35 for applications where the cursor is not used, since it reduces
36 the need for cursor motions. If possible, the cursor is made
37 invisible when this option is enabled.
38
39 wsetscrreg() sets a scrolling region in a window; "top" and
40 "bot" are the line numbers for the top and bottom margins. If
41 this option and scrollok() are enabled, any attempt to move off
42 the bottom margin will cause all lines in the scrolling region
43 to scroll up one line. setscrreg() is the stdscr version.
44
45 idlok() and idcok() do nothing in PDCurses, but are provided for
46 compatibility with other curses implementations.
47
48 raw_output() enables the output of raw characters using the
49 standard *add* and *ins* curses functions (that is, it disables
50 translation of control characters).
51
52 Return Value:
53 All functions return OK on success and ERR on error.
54
55 Portability X/Open BSD SYS V
56 clearok Y Y Y
57 idlok Y Y Y
58 idcok Y - 4.0
59 immedok Y - 4.0
60 leaveok Y Y Y
61 setscrreg Y Y Y
62 wsetscrreg Y Y Y
63 scrollok Y Y Y
64 raw_output - - -
65
66 **man-end****************************************************************/
67
68 int clearok(WINDOW *win, bool bf)
69 {
70 PDC_LOG(("clearok() - called\n"));
71
72 if (!win)
73 return ERR;
74
75 win->_clear = bf;
76
77 return OK;
78 }
79
80 int idlok(WINDOW *win, bool bf)
81 {
82 PDC_LOG(("idlok() - called\n"));
83
84 return OK;
85 }
86
87 void idcok(WINDOW *win, bool bf)
88 {
89 PDC_LOG(("idcok() - called\n"));
90 }
91
92 void immedok(WINDOW *win, bool bf)
93 {
94 PDC_LOG(("immedok() - called\n"));
95
96 if (win)
97 win->_immed = bf;
98 }
99
100 int leaveok(WINDOW *win, bool bf)
101 {
102 PDC_LOG(("leaveok() - called\n"));
103
104 if (!win)
105 return ERR;
106
107 win->_leaveit = bf;
108
109 curs_set(!bf);
110
111 return OK;
112 }
113
114 int setscrreg(int top, int bottom)
115 {
116 PDC_LOG(("setscrreg() - called: top %d bottom %d\n", top, bottom));
117
118 return wsetscrreg(stdscr, top, bottom);
119 }
120
121 int wsetscrreg(WINDOW *win, int top, int bottom)
122 {
123 PDC_LOG(("wsetscrreg() - called: top %d bottom %d\n", top, bottom));
124
125 if (win && 0 <= top && top <= win->_cury &&
126 win->_cury <= bottom && bottom < win->_maxy)
127 {
128 win->_tmarg = top;
129 win->_bmarg = bottom;
130
131 return OK;
132 }
133 else
134 return ERR;
135 }
136
137 int scrollok(WINDOW *win, bool bf)
138 {
139 PDC_LOG(("scrollok() - called\n"));
140
141 if (!win)
142 return ERR;
143
144 win->_scroll = bf;
145
146 return OK;
147 }
148
149 int raw_output(bool bf)
150 {
151 PDC_LOG(("raw_output() - called\n"));
152
153 SP->raw_out = bf;
154
155 return OK;
156 }

mercurial