summaryrefslogtreecommitdiffstats
path: root/Utilities/cmpdcurses/pdcurses/outopts.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-01-12 21:14:36 (GMT)
committerBrad King <brad.king@kitware.com>2022-01-12 21:14:36 (GMT)
commit89703bc94147c0abaf0e0b9fd2e40dc0de202868 (patch)
tree714d4d91f18174bc37f9b9f8186fc64f40b520eb /Utilities/cmpdcurses/pdcurses/outopts.c
parentd03091edad1040707ce310589286cadff495d5bf (diff)
parentf84c4112c30c53bd84a12375b0b26c10a081cb46 (diff)
downloadCMake-89703bc94147c0abaf0e0b9fd2e40dc0de202868.zip
CMake-89703bc94147c0abaf0e0b9fd2e40dc0de202868.tar.gz
CMake-89703bc94147c0abaf0e0b9fd2e40dc0de202868.tar.bz2
Merge branch 'upstream-PDCurses' into update-pdcurses
# By PDCurses Upstream * upstream-PDCurses: PDCurses 2021-12-08 (f1cd4f45)
Diffstat (limited to 'Utilities/cmpdcurses/pdcurses/outopts.c')
-rw-r--r--Utilities/cmpdcurses/pdcurses/outopts.c175
1 files changed, 175 insertions, 0 deletions
diff --git a/Utilities/cmpdcurses/pdcurses/outopts.c b/Utilities/cmpdcurses/pdcurses/outopts.c
new file mode 100644
index 0000000..f13715a
--- /dev/null
+++ b/Utilities/cmpdcurses/pdcurses/outopts.c
@@ -0,0 +1,175 @@
+/* PDCurses */
+
+#include <curspriv.h>
+
+/*man-start**************************************************************
+
+outopts
+-------
+
+### Synopsis
+
+ int clearok(WINDOW *win, bool bf);
+ int idlok(WINDOW *win, bool bf);
+ void idcok(WINDOW *win, bool bf);
+ void immedok(WINDOW *win, bool bf);
+ int leaveok(WINDOW *win, bool bf);
+ int setscrreg(int top, int bot);
+ int wsetscrreg(WINDOW *win, int top, int bot);
+ int scrollok(WINDOW *win, bool bf);
+
+ int raw_output(bool bf);
+
+ bool is_leaveok(const WINDOW *win);
+
+### Description
+
+ With clearok(), if bf is TRUE, the next call to wrefresh() with this
+ window will clear the screen completely and redraw the entire screen.
+
+ immedok(), called with a second argument of TRUE, causes an automatic
+ wrefresh() every time a change is made to the specified window.
+
+ Normally, the hardware cursor is left at the location of the window
+ being refreshed. leaveok() allows the cursor to be left wherever the
+ update happens to leave it. It's useful for applications where the
+ cursor is not used, since it reduces the need for cursor motions. If
+ possible, the cursor is made invisible when this option is enabled.
+
+ wsetscrreg() sets a scrolling region in a window; "top" and "bot" are
+ the line numbers for the top and bottom margins. If this option and
+ scrollok() are enabled, any attempt to move off the bottom margin
+ will cause all lines in the scrolling region to scroll up one line.
+ setscrreg() is the stdscr version.
+
+ idlok() and idcok() do nothing in PDCurses, but are provided for
+ compatibility with other curses implementations.
+
+ raw_output() enables the output of raw characters using the standard
+ *add* and *ins* curses functions (that is, it disables translation of
+ control characters).
+
+ is_leaveok() reports whether the specified window is in leaveok mode.
+
+### Return Value
+
+ All functions except is_leaveok() return OK on success and ERR on
+ error.
+
+### Portability
+ X/Open ncurses NetBSD
+ clearok Y Y Y
+ idlok Y Y Y
+ idcok Y Y Y
+ immedok Y Y Y
+ leaveok Y Y Y
+ setscrreg Y Y Y
+ wsetscrreg Y Y Y
+ scrollok Y Y Y
+ is_leaveok - Y Y
+ raw_output - - -
+
+**man-end****************************************************************/
+
+int clearok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("clearok() - called\n"));
+
+ if (!win)
+ return ERR;
+
+ win->_clear = bf;
+
+ return OK;
+}
+
+int idlok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("idlok() - called\n"));
+
+ return OK;
+}
+
+void idcok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("idcok() - called\n"));
+}
+
+void immedok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("immedok() - called\n"));
+
+ if (win)
+ win->_immed = bf;
+}
+
+int leaveok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("leaveok() - called\n"));
+
+ if (!win)
+ return ERR;
+
+ win->_leaveit = bf;
+
+ curs_set(!bf);
+
+ return OK;
+}
+
+int setscrreg(int top, int bottom)
+{
+ PDC_LOG(("setscrreg() - called: top %d bottom %d\n", top, bottom));
+
+ return wsetscrreg(stdscr, top, bottom);
+}
+
+int wsetscrreg(WINDOW *win, int top, int bottom)
+{
+ PDC_LOG(("wsetscrreg() - called: top %d bottom %d\n", top, bottom));
+
+ if (win && 0 <= top && top <= win->_cury &&
+ win->_cury <= bottom && bottom < win->_maxy)
+ {
+ win->_tmarg = top;
+ win->_bmarg = bottom;
+
+ return OK;
+ }
+ else
+ return ERR;
+}
+
+int scrollok(WINDOW *win, bool bf)
+{
+ PDC_LOG(("scrollok() - called\n"));
+
+ if (!win)
+ return ERR;
+
+ win->_scroll = bf;
+
+ return OK;
+}
+
+int raw_output(bool bf)
+{
+ PDC_LOG(("raw_output() - called\n"));
+
+ if (!SP)
+ return ERR;
+
+ SP->raw_out = bf;
+
+ return OK;
+}
+
+bool is_leaveok(const WINDOW *win)
+{
+ PDC_LOG(("is_leaveok() - called\n"));
+
+ if (!win)
+ return FALSE;
+
+ return win->_leaveit;
+}