fixed cursor and q for quit in menu
[public/library.git] / cursestest.py
1 #!/usr/bin/env python
2
3 import curses
4
5
6 def showBold(stdscr):
7     stdscr.addstr("Type any character to see it in bold\n")
8     ch = stdscr.getch()
9
10     if (ch==curses.KEY_F1):
11         stdscr.addstr("F1 Key pressed")
12
13     else:
14         stdscr.addstr("The key pressed is ")
15         stdscr.addch(ch, curses.A_BOLD)
16
17         stdscr.refresh()
18         stdscr.getch()
19
20 def simplePrintw(stdscr):
21     mesg = "Just a string"
22
23     (row,col) = stdscr.getmaxyx()
24     stdscr.addstr(row/2, (col-len(mesg))/2, mesg)
25     stdscr.addstr(row-2, 0, "This screen has " +str(row)+ " rows and " +str(col)+ " columns\n")
26
27     stdscr.addstr("Try resizing window and running it again")
28     stdscr.refresh()
29     stdscr.getch()
30
31 def menutest(w, l):
32     curses.curs_set(0)
33     (rows,cols)=w.getmaxyx()
34     i=0
35     for mitem in l:
36         w.addstr(i,0,mitem)
37         i+=1
38
39     highlight=0
40     ch=w.getch()
41     while (ch!=113): # leave on q
42         if ch==curses.KEY_UP:
43             if highlight!=0:
44                 w.chgat(highlight,0, cols, 0)
45                 highlight -= 1
46                 w.chgat(highlight,0, cols, curses.A_REVERSE)
47         if ch==curses.KEY_DOWN:
48             if highlight!=len(l)-1:
49                 w.chgat(highlight,0, 16, 0)
50                 highlight += 1
51                 w.chgat(highlight,0, 16, curses.A_REVERSE)
52         w.refresh()
53         ch = w.getch()
54     
55     curses.curs_set(1)
56
57
58 menu = ["item 1", "poo", "add book/article/stuff", "update", "remove"]
59 curses.wrapper(menutest, menu)