# curs_touch

## NAME



           **touchwin** , **touchline** , **untouchwin** , **wtouchln** , **is_linetouched** ,
           **is_wintouched** - **curses** refresh control routines
    


## SYNOPSIS



           **#include <curses.h>**
    
           **int touchline(WINDOW ***_win_**, int** _start_**, int** _count_**);**
    
           **int touchwin(WINDOW ***_win_**);**
           **int wtouchln(WINDOW ***_win_**, int** _y_**, int** _n_**, int** _changed_**);**
    
           **int untouchwin(WINDOW ***_win_**);**
    
           **bool is_linetouched(WINDOW ***_win_**, int** _line_**);**
           **bool is_wintouched(WINDOW ***_win_**);**
    


## DESCRIPTION



           The  **touchwin** and  **touchline** routines throw away all optimization
           information about which parts of the window have been touched,  by
           pretending  that  the  entire  window  has been drawn on.  This is
           sometimes necessary when using overlapping windows, since a change
           to one window affects the other window, but the records  of  which
           lines  have  been  changed  in the other window do not reflect the
           change.  The routine **touchline** only pretends that _count_ lines have
           been changed, beginning with line _start_.
    
           The **untouchwin** routine marks all lines in the window as  unchanged
           since the last call to **wrefresh**.
    
           The **wtouchln** routine makes _n_ lines in the window, starting at line
           _y_ ,  look  as if they have (_changed_**=1**) or have not (_changed_**=0**) been
           changed since the last call to **wrefresh**.
    
           The **is_linetouched** and **is_wintouched** routines return **TRUE** if  the
           specified  line/window  was  modified  since the last call to **wre‐**
           **fresh** ; otherwise they return **FALSE**.  In  addition,  **is_linetouched**
           returns **ERR** if _line_ is not valid for the given window.
    


## RETURN VALUE



           All  routines  return  the integer **ERR** upon failure and an integer
           value other than **ERR** upon successful completion, unless  otherwise
           noted in the preceding routine descriptions.
    
           X/Open  does not define any error conditions.  In this implementa‐
           tion
    
              **is_linetouched**
                   returns an error if the window pointer is null, or if the
                   line number is outside the window.
    
                   The constant **ERR** is distinct from **TRUE** and **FALSE** , which
                   are the normal return values of this function.  Because
                   the function returns a **bool** , returning **ERR**(which is nei‐
                   ther **TRUE** nor **FALSE**) may not be supported by the compiler.
    
                   To provide error-checking and also match the X/Open func‐
                   tion prototype, the **ERR** is provided by a macro named
                   **is_linetouched**.  The actual function returns **FALSE** when it
                   detects an error.
    
              **wtouchln**
                   returns an error if the window pointer is null, or if the
                   line number is outside the window.
    


## PORTABILITY



           These functions were introduced by SVr4.  The Solaris curses head‐
           er file, for instance, defines both an actual function and macro
           for each.  The macros give the same result as the actual func‐
           tions.  SVr4 curses does not check the window parameter _win_ to en‐
           sure that it is not **NULL** ; otherwise this implementation behaves
           the same as SVr4.
    
           The XSI Curses standard, Issue 4 describes these functions, but
           defines no error conditions.
    


## NOTES



           All of these routines except **wtouchln** may be macros.
    


* * *