Christian Heimes | fdab48e | 2008-01-20 09:06:41 +0000 | [diff] [blame] | 1 | #!/usr/bin/env python |
| 2 | # |
| 3 | # $Id: ncurses.py 36559 2004-07-18 05:56:09Z tim_one $ |
| 4 | # |
| 5 | # Interactive test suite for the curses module. |
| 6 | # This script displays various things and the user should verify whether |
| 7 | # they display correctly. |
| 8 | # |
| 9 | |
| 10 | import curses |
| 11 | from curses import textpad |
| 12 | |
| 13 | def test_textpad(stdscr, insert_mode=False): |
| 14 | ncols, nlines = 8, 3 |
| 15 | uly, ulx = 3, 2 |
| 16 | if insert_mode: |
| 17 | mode = 'insert mode' |
| 18 | else: |
| 19 | mode = 'overwrite mode' |
| 20 | |
| 21 | stdscr.addstr(uly-3, ulx, "Use Ctrl-G to end editing (%s)." % mode) |
| 22 | stdscr.addstr(uly-2, ulx, "Be sure to try typing in the lower-right corner.") |
| 23 | win = curses.newwin(nlines, ncols, uly, ulx) |
| 24 | textpad.rectangle(stdscr, uly-1, ulx-1, uly + nlines, ulx + ncols) |
| 25 | stdscr.refresh() |
| 26 | |
| 27 | box = textpad.Textbox(win, insert_mode) |
| 28 | contents = box.edit() |
| 29 | stdscr.addstr(uly+ncols+2, 0, "Text entered in the box\n") |
| 30 | stdscr.addstr(repr(contents)) |
| 31 | stdscr.addstr('\n') |
| 32 | stdscr.addstr('Press any key') |
| 33 | stdscr.getch() |
| 34 | |
| 35 | for i in range(3): |
| 36 | stdscr.move(uly+ncols+2 + i, 0) |
| 37 | stdscr.clrtoeol() |
| 38 | |
| 39 | def main(stdscr): |
| 40 | stdscr.clear() |
| 41 | test_textpad(stdscr, False) |
| 42 | test_textpad(stdscr, True) |
| 43 | |
| 44 | |
| 45 | if __name__ == '__main__': |
| 46 | curses.wrapper(main) |