clearok

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
curs_outopts(3X)					     curs_outopts(3X)



NAME
       clearok, idlok, idcok, immedok, leaveok, setscrreg, wsetscrreg, scrol-
       lok, nl, nonl - 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 setscrreg(int top, int bot);
       int wsetscrreg(WINDOW *win, int top, int bot);
       int scrollok(WINDOW *win, bool bf);
       int nl(void);
       int nonl(void);

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.

       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.

       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	isn’t  really
       needed.	 If  insert/delete  line  cannot  be used, curses redraws the
       changed portions of all lines.

       If idcok is called with FALSE as second	argument,  curses  no  longer
       considers using the hardware insert/delete character feature of termi-
       nals 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.

       If immedok is called with TRUE as argument, any change in  the  window
       image,  such  as	 the  ones  caused by waddch, wclrtobot, wscrl, etc.,
       automatically cause a call to wrefresh.	However, it may degrade	 per-
       formance	 considerably, due to repeated calls to wrefresh.  It is dis-
       abled by default.

       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 appli-
       cations	where  the  cursor is not used, since it reduces the need for
       cursor motions.

       The setscrreg and wsetscrreg routines allow the application programmer
       to  set	a software scrolling region in a window.  top and bot 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	 out-
       put routines.)

       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).

       The nl and nonl routines control whether the underlying display device
       translates the return key into newline on input, and whether it trans-
       lates newline into return and line-feed on output (in either case, the
       call addch(’\n’) does the equivalent of return and line	feed  on  the
       virtual screen).	 Initially, these translations do occur.  If you dis-
       able them using nonl, curses will be able to make better	 use  of  the
       line-feed capability, resulting in faster cursor motion.	 Also, curses
       will then be able to detect the return key.

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.

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

       The XSI Curses standard is ambiguous on the question of whether	raw()
       should  disable	the  CRLF translations controlled by nl() and nonl().
       BSD curses did turn off these translations; AT&T curses (at  least  as
       late  as SVr1) did not.	We choose to do so, on the theory that a pro-
       grammer requesting raw input wants a clean (ideally 8-bit clean)	 con-
       nection that the operating system does not mess with.

       Some  historic curses implementations had, as an undocumented feature,
       the ability to do the equivalent of clearok(..., 1) by  saying  touch-
       win(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 wre-
       fresh 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.

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

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

SEE ALSO
       curses(3X),    curs_addch(3X),	 curs_clear(3X),    curs_initscr(3X),
       curs_scroll(3X), curs_refresh(3X)



							     curs_outopts(3X)