1#!/usr/bin/env python3
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
10import curses
11from curses import textpad
12
13def 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
39def main(stdscr):
40    stdscr.clear()
41    test_textpad(stdscr, False)
42    test_textpad(stdscr, True)
43
44
45if __name__ == '__main__':
46    curses.wrapper(main)
47