symbian-qemu-0.9.1-12/python-2.6.1/Demo/curses/ncurses.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Demo/curses/ncurses.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,273 @@
+#!/usr/bin/env python
+#
+# $Id: ncurses.py 66424 2008-09-13 01:22:08Z andrew.kuchling $
+#
+# (n)curses exerciser in Python, an interactive test for the curses
+# module. Currently, only the panel demos are ported.
+
+import curses
+from curses import panel
+
+def wGetchar(win = None):
+    if win is None: win = stdscr
+    return win.getch()
+
+def Getchar():
+    wGetchar()
+
+#
+# Panels tester
+#
+def wait_a_while():
+    if nap_msec == 1:
+        Getchar()
+    else:
+        curses.napms(nap_msec)
+
+def saywhat(text):
+    stdscr.move(curses.LINES - 1, 0)
+    stdscr.clrtoeol()
+    stdscr.addstr(text)
+
+def mkpanel(color, rows, cols, tly, tlx):
+    win = curses.newwin(rows, cols, tly, tlx)
+    pan = panel.new_panel(win)
+    if curses.has_colors():
+        if color == curses.COLOR_BLUE:
+            fg = curses.COLOR_WHITE
+        else:
+            fg = curses.COLOR_BLACK
+        bg = color
+        curses.init_pair(color, fg, bg)
+        win.bkgdset(ord(' '), curses.color_pair(color))
+    else:
+        win.bkgdset(ord(' '), curses.A_BOLD)
+
+    return pan
+
+def pflush():
+    panel.update_panels()
+    curses.doupdate()
+
+def fill_panel(pan):
+    win = pan.window()
+    num = pan.userptr()[1]
+
+    win.move(1, 1)
+    win.addstr("-pan%c-" % num)
+    win.clrtoeol()
+    win.box()
+
+    maxy, maxx = win.getmaxyx()
+    for y in range(2, maxy - 1):
+        for x in range(1, maxx - 1):
+            win.move(y, x)
+            win.addch(num)
+
+def demo_panels(win):
+    global stdscr, nap_msec, mod
+    stdscr = win
+    nap_msec = 1
+    mod = ["test", "TEST", "(**)", "*()*", "<-->", "LAST"]
+
+    stdscr.refresh()
+
+    for y in range(0, curses.LINES - 1):
+        for x in range(0, curses.COLS):
+            stdscr.addstr("%d" % ((y + x) % 10))
+    for y in range(0, 1):
+        p1 = mkpanel(curses.COLOR_RED,
+                     curses.LINES // 2 - 2,
+                     curses.COLS // 8 + 1,
+                     0,
+                     0)
+        p1.set_userptr("p1")
+
+        p2 = mkpanel(curses.COLOR_GREEN,
+                     curses.LINES // 2 + 1,
+                     curses.COLS // 7,
+                     curses.LINES // 4,
+                     curses.COLS // 10)
+        p2.set_userptr("p2")
+
+        p3 = mkpanel(curses.COLOR_YELLOW,
+                     curses.LINES // 4,
+                     curses.COLS // 10,
+                     curses.LINES // 2,
+                     curses.COLS // 9)
+        p3.set_userptr("p3")
+
+        p4 = mkpanel(curses.COLOR_BLUE,
+                     curses.LINES // 2 - 2,
+                     curses.COLS // 8,
+                     curses.LINES // 2 - 2,
+                     curses.COLS // 3)
+        p4.set_userptr("p4")
+
+        p5 = mkpanel(curses.COLOR_MAGENTA,
+                     curses.LINES // 2 - 2,
+                     curses.COLS // 8,
+                     curses.LINES // 2,
+                     curses.COLS // 2 - 2)
+        p5.set_userptr("p5")
+
+        fill_panel(p1)
+        fill_panel(p2)
+        fill_panel(p3)
+        fill_panel(p4)
+        fill_panel(p5)
+        p4.hide()
+        p5.hide()
+        pflush()
+        saywhat("press any key to continue")
+        wait_a_while()
+
+        saywhat("h3 s1 s2 s4 s5;press any key to continue")
+        p1.move(0, 0)
+        p3.hide()
+        p1.show()
+        p2.show()
+        p4.show()
+        p5.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("s1; press any key to continue")
+        p1.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("s2; press any key to continue")
+        p2.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("m2; press any key to continue")
+        p2.move(curses.LINES // 3 + 1, curses.COLS // 8)
+        pflush()
+        wait_a_while()
+
+        saywhat("s3; press any key to continue")
+        p3.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("m3; press any key to continue")
+        p3.move(curses.LINES // 4 + 1, curses.COLS // 15)
+        pflush()
+        wait_a_while()
+
+        saywhat("b3; press any key to continue")
+        p3.bottom()
+        pflush()
+        wait_a_while()
+
+        saywhat("s4; press any key to continue")
+        p4.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("s5; press any key to continue")
+        p5.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("t3; press any key to continue")
+        p3.top()
+        pflush()
+        wait_a_while()
+
+        saywhat("t1; press any key to continue")
+        p1.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("t2; press any key to continue")
+        p2.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("t3; press any key to continue")
+        p3.show()
+        pflush()
+        wait_a_while()
+
+        saywhat("t4; press any key to continue")
+        p4.show()
+        pflush()
+        wait_a_while()
+
+        for itmp in range(0, 6):
+            w4 = p4.window()
+            w5 = p5.window()
+
+            saywhat("m4; press any key to continue")
+            w4.move(curses.LINES // 8, 1)
+            w4.addstr(mod[itmp])
+            p4.move(curses.LINES // 6, itmp * curses.COLS // 8)
+            w5.move(curses.LINES // 6, 1)
+            w5.addstr(mod[itmp])
+            pflush()
+            wait_a_while()
+
+            saywhat("m5; press any key to continue")
+            w4.move(curses.LINES // 6, 1)
+            w4.addstr(mod[itmp])
+            p5.move(curses.LINES // 3 - 1, itmp * 10 + 6)
+            w5.move(curses.LINES // 8, 1)
+            w5.addstr(mod[itmp])
+            pflush()
+            wait_a_while()
+
+        saywhat("m4; press any key to continue")
+        p4.move(curses.LINES // 6, (itmp + 1) * curses.COLS // 8)
+        pflush()
+        wait_a_while()
+
+        saywhat("t5; press any key to continue")
+        p5.top()
+        pflush()
+        wait_a_while()
+
+        saywhat("t2; press any key to continue")
+        p2.top()
+        pflush()
+        wait_a_while()
+
+        saywhat("t1; press any key to continue")
+        p1.top()
+        pflush()
+        wait_a_while()
+
+        saywhat("d2; press any key to continue")
+        del p2
+        pflush()
+        wait_a_while()
+
+        saywhat("h3; press any key to continue")
+        p3.hide()
+        pflush()
+        wait_a_while()
+
+        saywhat("d1; press any key to continue")
+        del p1
+        pflush()
+        wait_a_while()
+
+        saywhat("d4; press any key to continue")
+        del p4
+        pflush()
+        wait_a_while()
+
+        saywhat("d5; press any key to continue")
+        del p5
+        pflush()
+        wait_a_while()
+        if nap_msec == 1:
+            break
+        nap_msec = 100
+
+#
+# one fine day there'll be the menu at this place
+#
+curses.wrapper(demo_panels)