+ // -------------------------------------------------------------------------
+ int scroll(int amount=1) { return ::wscrl(w,amount); }
+ // Scroll amount lines. If amount is positive, scroll up, otherwise
+ // scroll down.
+
+ int scrollok(bool bf) { return ::scrollok(w, bf); }
+ // If bf is TRUE, window scrolls if cursor is moved off the bottom
+ // edge of the window or a scrolling region, otherwise the cursor is left
+ // at the bottom line.
+
+ int setscrreg(int from, int to) {
+ return ::wsetscrreg(w,from,to); }
+ // Define a soft scrolling region.
+
+ int idlok(bool bf) { return ::idlok(w, bf); }
+ // If bf is TRUE, use insert/delete line hardware support if possible.
+ // Otherwise do it in software.
+
+
+ void idcok(bool bf) { ::idcok(w, bf); }
+ // If bf is TRUE, use insert/delete character hardware support if possible.
+ // Otherwise do it in software.
+
+ int touchwin() { return ::wtouchln(w,0,height(),1); }
+ // Mark the whole window as modified.
+
+ int untouchwin() { return ::wtouchln(w,0,height(),0); }
+ // Mark the whole window as unmodified.
+
+ int touchln(int s, int cnt, bool changed=TRUE) {
+ return ::wtouchln(w,s,cnt,(int)(changed?1:0)); }
+ // Mark cnt lines beginning from line s as changed or unchanged, depending
+ // on the value of the changed flag.
+
+ bool is_linetouched(int line) const {
+ return (::is_linetouched(w,line) ? TRUE:FALSE); }
+ // Return TRUE if line is marked as changed, FALSE otherwise
+
+ bool is_wintouched() const {
+ return (::is_wintouched(w) ? TRUE:FALSE); }
+ // Return TRUE if window is marked as changed, FALSE otherwise
+
+ int leaveok(bool bf) { return ::leaveok(w, bf); }
+ // If bf is TRUE, curses will leave the cursor after an update whereever
+ // it is after the update.
+
+ int redrawln(int from, int n) { return ::wredrawln(w,from,n); }
+ // Redraw n lines starting from the requested line
+
+ int redrawwin() { return ::wredrawln(w,0,height()); }
+ // Redraw the whole window
+
+ int doupdate() { return ::doupdate(); }
+ // Do all outputs to make the physical screen looking like the virtual one
+
+ void syncdown() { ::wsyncdown(w); }
+ // Propagate the changes down to all descendant windows
+
+ void syncup() { ::wsyncup(w); }
+ // Propagate the changes up in the hierarchy
+
+ void cursyncup() { ::wcursyncup(w); }
+ // Position the cursor in all ancestor windows corresponding to our setting
+
+ int syncok(bool bf) { return ::syncok(w,bf); }
+ // If called with bf=TRUE, syncup() is called whenever the window is changed
+