|
|
1.1 ! root 1: #include <curses.h> ! 2: #include "mucurses.h" ! 3: #include "cursor.h" ! 4: ! 5: /** @file ! 6: * ! 7: * MuCurses clearing functions ! 8: * ! 9: */ ! 10: ! 11: FILE_LICENCE ( GPL2_OR_LATER ); ! 12: ! 13: /** ! 14: * Clear a window to the bottom from current cursor position ! 15: * ! 16: * @v *win subject window ! 17: * @ret rc return status code ! 18: */ ! 19: int wclrtobot ( WINDOW *win ) { ! 20: struct cursor_pos pos; ! 21: ! 22: _store_curs_pos( win, &pos ); ! 23: do { ! 24: _wputc( win, ' ', WRAP ); ! 25: } while ( win->curs_y + win->curs_x ); ! 26: _restore_curs_pos( win, &pos ); ! 27: ! 28: return OK; ! 29: } ! 30: ! 31: /** ! 32: * Clear a window to the end of the current line ! 33: * ! 34: * @v *win subject window ! 35: * @ret rc return status code ! 36: */ ! 37: int wclrtoeol ( WINDOW *win ) { ! 38: struct cursor_pos pos; ! 39: ! 40: _store_curs_pos( win, &pos ); ! 41: while ( ( win->curs_y - pos.y ) == 0 ) { ! 42: _wputc( win, ' ', WRAP ); ! 43: } ! 44: _restore_curs_pos( win, &pos ); ! 45: ! 46: return OK; ! 47: } ! 48: ! 49: /** ! 50: * Delete character under the cursor in a window ! 51: * ! 52: * @v *win subject window ! 53: * @ret rc return status code ! 54: */ ! 55: int wdelch ( WINDOW *win ) { ! 56: _wputc( win, ' ', NOWRAP ); ! 57: _wcursback( win ); ! 58: ! 59: return OK; ! 60: } ! 61: ! 62: /** ! 63: * Delete line under a window's cursor ! 64: * ! 65: * @v *win subject window ! 66: * @ret rc return status code ! 67: */ ! 68: int wdeleteln ( WINDOW *win ) { ! 69: struct cursor_pos pos; ! 70: ! 71: _store_curs_pos( win, &pos ); ! 72: /* let's just set the cursor to the beginning of the line and ! 73: let wclrtoeol do the work :) */ ! 74: wmove( win, win->curs_y, 0 ); ! 75: wclrtoeol( win ); ! 76: _restore_curs_pos( win, &pos ); ! 77: return OK; ! 78: } ! 79: ! 80: /** ! 81: * Completely clear a window ! 82: * ! 83: * @v *win subject window ! 84: * @ret rc return status code ! 85: */ ! 86: int werase ( WINDOW *win ) { ! 87: wmove( win, 0, 0 ); ! 88: wclrtobot( win ); ! 89: return OK; ! 90: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.