ncurses.py revision 15c3c2bdf84aa333e213d8f5ac2b4b30a2595231
115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling#!/usr/bin/env python 215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# $Id$ 415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# (n)curses exerciser in Python, an interactive test for the curses 615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# module. Currently, only the panel demos are ported. 715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingimport curses 915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 1015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef wGetchar(win = None): 1115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling if win == None: win = stdscr 1215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling return win.getch() 1315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 1415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef Getchar(): 1515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wGetchar() 1615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 1715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 1815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# Panels tester 1915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 2015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef wait_a_while(): 2115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling if nap_msec == 1: 2215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling Getchar() 2315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling else: 2415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.napms(nap_msec) 2515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 2615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef saywhat(text): 2715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr.move(curses.LINES - 1, 0) 2815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr.clrtoeol() 2915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr.addstr(text) 3015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 3115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef mkpanel(color, rows, cols, tly, tlx): 3215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win = curses.newwin(rows, cols, tly, tlx) 3315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pan = win.new_panel() 3415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling if curses.has_colors(): 3515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling if color == curses.COLOR_BLUE: 3615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fg = curses.COLOR_WHITE 3715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling else: 3815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fg = curses.COLOR_BLACK 3915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling bg = color 4015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.init_pair(color, fg, bg) 4115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.bkgdset(ord(' '), curses.color_pair(color)) 4215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling else: 4315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.bkgdset(ord(' '), curses.A_BOLD) 4415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 4515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling return pan 4615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 4715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef pflush(): 4815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.update_panels() 4915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.doupdate() 5015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 5115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef fill_panel(pan): 5215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win = pan.window() 5315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling num = pan.userptr()[1] 5415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 5515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.move(1, 1) 5615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.addstr("-pan%c-" % num) 5715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.clrtoeol() 5815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.box() 5915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 6015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling maxy, maxx = win.getmaxyx() 6115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for y in range(2, maxy - 1): 6215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for x in range(1, maxx - 1): 6315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.move(y, x) 6415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling win.addch(num) 6515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 6615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingdef demo_panels(win): 6715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling global stdscr, nap_msec, mod 6815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr = win 6915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling nap_msec = 1 7015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling mod = ["test", "TEST", "(**)", "*()*", "<-->", "LAST"] 7115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 7215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr.refresh() 7315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 7415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for y in range(0, curses.LINES - 1): 7515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for x in range(0, curses.COLS): 7615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling stdscr.addstr("%d" % ((y + x) % 10)) 7715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for y in range(0, 1): 7815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1 = mkpanel(curses.COLOR_RED, 7915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2 - 2, 8015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 8 + 1, 8115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 0, 8215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 0) 8315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.set_userptr("p1") 8415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 8515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2 = mkpanel(curses.COLOR_GREEN, 8615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2 + 1, 8715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 7, 8815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 4, 8915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 10) 9015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.set_userptr("p2") 9115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 9215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3 = mkpanel(curses.COLOR_YELLOW, 9315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 4, 9415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 10, 9515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2, 9615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 9) 9715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.set_userptr("p3") 9815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 9915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4 = mkpanel(curses.COLOR_BLUE, 10015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2 - 2, 10115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 8, 10215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2 - 2, 10315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 3) 10415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.set_userptr("p4") 10515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 10615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5 = mkpanel(curses.COLOR_MAGENTA, 10715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2 - 2, 10815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 8, 10915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.LINES / 2, 11015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling curses.COLS / 2 - 2) 11115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.set_userptr("p5") 11215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 11315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fill_panel(p1) 11415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fill_panel(p2) 11515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fill_panel(p3) 11615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fill_panel(p4) 11715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling fill_panel(p5) 11815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.hide() 11915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.hide() 12015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 12115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("press any key to continue") 12215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 12315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 12415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("h3 s1 s2 s4 s5;press any key to continue") 12515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.move(0, 0) 12615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.hide() 12715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.show() 12815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.show() 12915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.show() 13015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.show() 13115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 13215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 13315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 13415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("s1; press any key to continue") 13515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.show() 13615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 13715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 13815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 13915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("s2; press any key to continue") 14015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.show() 14115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 14215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 14315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 14415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("m2; press any key to continue") 14515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.move(curses.LINES / 3 + 1, curses.COLS / 8) 14615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 14715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 14815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 14915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("s3; press any key to continue") 15015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.show() 15115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 15215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 15315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 15415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("m3; press any key to continue") 15515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.move(curses.LINES / 4 + 1, curses.COLS / 15) 15615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 15715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 15815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 15915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("b3; press any key to continue") 16015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.bottom() 16115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 16215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 16315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 16415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("s4; press any key to continue") 16515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.show() 16615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 16715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 16815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 16915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("s5; press any key to continue") 17015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.show() 17115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 17215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 17315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 17415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t3; press any key to continue") 17515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.top() 17615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 17715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 17815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 17915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t1; press any key to continue") 18015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.show() 18115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 18215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 18315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 18415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t2; press any key to continue") 18515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.show() 18615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 18715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 18815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 18915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t3; press any key to continue") 19015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.show() 19115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 19215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 19315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 19415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t4; press any key to continue") 19515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.show() 19615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 19715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 19815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 19915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling for itmp in range(0, 6): 20015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w4 = p4.window() 20115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w5 = p5.window() 20215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 20315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("m4; press any key to continue") 20415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w4.move(curses.LINES / 8, 1) 20515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w4.addstr(mod[itmp]) 20615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.move(curses.LINES / 6, itmp * curses.COLS / 8) 20715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w5.move(curses.LINES / 6, 1) 20815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w5.addstr(mod[itmp]) 20915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 21015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 21115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 21215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("m5; press any key to continue") 21315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w4.move(curses.LINES / 6, 1) 21415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w4.addstr(mod[itmp]) 21515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.move(curses.LINES / 3 - 1, itmp * 10 + 6) 21615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w5.move(curses.LINES / 8, 1) 21715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling w5.addstr(mod[itmp]) 21815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 21915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 22015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 22115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("m4; press any key to continue") 22215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p4.move(curses.LINES / 6, (itmp + 1) * curses.COLS / 8) 22315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 22415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 22515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 22615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t5; press any key to continue") 22715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p5.top() 22815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 22915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 23015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 23115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t2; press any key to continue") 23215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p2.top() 23315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 23415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 23515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 23615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("t1; press any key to continue") 23715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p1.top() 23815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 23915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 24015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 24115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("d2; press any key to continue") 24215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling del p2 24315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 24415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 24515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 24615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("h3; press any key to continue") 24715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling p3.hide() 24815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 24915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 25015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 25115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("d1; press any key to continue") 25215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling del p1 25315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 25415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 25515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 25615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("d4; press any key to continue") 25715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling del p4 25815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 25915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 26015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 26115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling saywhat("d5; press any key to continue") 26215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling del p5 26315c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling pflush() 26415c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling wait_a_while() 26515c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling if nap_msec == 1: 26615c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling break 26715c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling nap_msec = 100 26815c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling 26915c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 27015c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# one fine day there'll be the menu at this place 27115c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchling# 27215c3c2bdf84aa333e213d8f5ac2b4b30a2595231Andrew M. Kuchlingcurses.wrapper(demo_panels) 273