https://invisible-island.net/ncurses/man/


curs_outopts 3x 2024-01-05 ncurses 6.4 Library calls

curs_outopts(3x)                 Library calls                curs_outopts(3x)




NAME

       clearok,   idlok,   idcok,  immedok,  leaveok,  setscrreg,  wsetscrreg,
       scrollok - set curses output options


SYNOPSIS

       #include <curses.h>

       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 scrollok(WINDOW *win, bool bf);

       int setscrreg(int top, int bot);
       int wsetscrreg(WINDOW *win, int top, int bot);


DESCRIPTION

       These routines set options that  change  the  style  of  output  within
       curses.   All options are initially FALSE, unless otherwise stated.  It
       is not necessary to turn these options off before calling endwin(3x).


clearok

       If clearok is called with TRUE as argument, the next call  to  wrefresh
       with this window will clear the screen completely and redraw the entire
       screen from scratch.  This is useful when the contents  of  the  screen
       are  uncertain, or in some cases for a more pleasing visual effect.  If
       the win argument to clearok is the global  variable  curscr,  the  next
       call  to  wrefresh  with any window causes the screen to be cleared and
       repainted from scratch.


idlok

       If idlok is called with TRUE as second argument, curses considers using
       the  hardware  insert/delete  line  feature  of  terminals so equipped.
       Calling idlok with FALSE  as  second  argument  disables  use  of  line
       insertion  and  deletion.   This  option  should be enabled only if the
       application needs insert/delete line, for example, for a screen editor.
       It  is  disabled  by  default  because  insert/delete  line tends to be
       visually annoying when used in applications  where  it  is  not  really
       needed.   If  insert/delete  line  cannot  be  used, curses redraws the
       changed portions of all lines.


idcok

       If idcok is called with FALSE as  second  argument,  curses  no  longer
       considers   using  the  hardware  insert/delete  character  feature  of
       terminals so equipped.  Use of character insert/delete  is  enabled  by
       default.   Calling idcok with TRUE as second argument re-enables use of
       character insertion and deletion.


immedok

       If immedok is called with TRUE as second argument, any  change  in  the
       window  image,  such  as  the  ones caused by waddch, wclrtobot, wscrl,
       etc., automatically causes a call to wrefresh.  However, it may degrade
       performance  considerably,  due to repeated calls to wrefresh.  Calling
       immedok with FALSE as second argument restores  the  default  behavior,
       i.e., deferring screen updates until a refresh is needed.


leaveok

       Normally,  the  hardware  cursor  is left at the location of the window
       cursor being refreshed.  The leaveok option allows  the  cursor  to  be
       left  wherever  the  update  happens  to  leave  it.   It is useful for
       applications where the cursor is not used, since it  reduces  the  need
       for cursor motions.


scrollok

       The  scrollok  option controls what happens when the cursor of a window
       is moved off the edge of the window or scrolling region,  either  as  a
       result  of  a  newline  action  on  the bottom line, or typing the last
       character of the last line.  If disabled, (bf is FALSE), the cursor  is
       left  on  the  bottom  line.   If  enabled, (bf is TRUE), the window is
       scrolled up one line (Note that to get the physical scrolling effect on
       the terminal, it is also necessary to call idlok).


setscrreg, wsetscrreg

       The  setscrreg and wsetscrreg routines allow the application programmer
       to set a software scrolling region  in  a  window.   The  top  and  bot
       parameters  are  the  line  numbers of the top and bottom margin of the
       scrolling region.  (Line 0 is the top line of  the  window.)   If  this
       option  and  scrollok  are  enabled,  an attempt to move off the bottom
       margin line causes all lines in the scrolling region to scroll one line
       in  the  direction  of  the first line.  Only the text of the window is
       scrolled.  (Note that this has nothing to do with the use of a physical
       scrolling  region  capability  in the terminal, like that in the VT100.
       If idlok is enabled and the terminal has either a scrolling  region  or
       insert/delete line capability, they will probably be used by the output
       routines.)


RETURN VALUE

       The functions setscrreg and wsetscrreg return OK upon success  and  ERR
       upon  failure.  All other routines that return an integer always return
       OK.

       X/Open Curses does not define any error conditions.

       In this implementation,

       o   those functions that have a window pointer will return an error  if
           the window pointer is null

       o   wsetscrreg  returns  an error if the scrolling region limits extend
           outside the window.

       X/Open does not  define  any  error  conditions.   This  implementation
       returns an error if the window pointer is null.


NOTES

       Note  that  clearok,  leaveok,  scrollok,  idcok,  and setscrreg may be
       macros.

       The immedok routine is useful for windows that  are  used  as  terminal
       emulators.


PORTABILITY

       These functions are described in the XSI Curses standard, Issue 4.

       From  the  outset,  ncurses  used  nl/nonl to control the conversion of
       newlines to carriage return/line-feed on output as well as input.   XSI
       Curses  documents  only  the  use  of  these functions for input.  This
       difference arose from converting the pcurses source (which  used  ioctl
       calls  with  the sgttyb structure) to termios (i.e., the POSIX terminal
       interface).  In the former, both input and output were controlled via a
       single  option  CRMOD,  while  the  latter  separates  these  features.
       Because that conversion interferes with  output  optimization,  nl/nonl
       were amended after ncurses 6.2 to eliminate their effect on output.

       Some  historic  curses implementations had, as an undocumented feature,
       the  ability  to  do  the  equivalent  of  clearok(...,  1)  by  saying
       touchwin(stdscr) or clear(stdscr).  This will not work under ncurses.

       Earlier  System  V  curses implementations specified that with scrollok
       enabled, any window modification triggering  a  scroll  also  forced  a
       physical refresh.  XSI Curses does not require this, and ncurses avoids
       doing it to perform better  vertical-motion  optimization  at  wrefresh
       time.

       The XSI Curses standard does not mention that the cursor should be made
       invisible as a side-effect of leaveok.  SVr4 curses documentation  does
       this,  but  the  code  does  not.   Use  curs_set  to  make  the cursor
       invisible.


SEE ALSO

       curses(3x),    curs_addch(3x),    curs_clear(3x),     curs_initscr(3x),
       curs_refresh(3x), curs_scroll(3x), curs_variables(3x)



ncurses 6.4                       2024-01-05                  curs_outopts(3x)