highighting fixed
[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     w.chgat(highlight,0, cols, curses.A_REVERSE)
41     w.refresh()
42     ch=w.getch()
43     while (ch!=113): # leave on q
44         if ch==curses.KEY_UP:
45             if highlight!=0:
46                 w.chgat(highlight,0, cols, 0)
47                 highlight -= 1
48                 w.chgat(highlight,0, cols, curses.A_REVERSE)
49         if ch==curses.KEY_DOWN:
50             if highlight!=len(l)-1:
51                 w.chgat(highlight,0, cols, 0)
52                 highlight += 1
53                 w.chgat(highlight,0, cols, curses.A_REVERSE)
54         w.refresh()
55         ch = w.getch()
56     
57     curses.curs_set(1)
58
59
60 menu = ["item 1", "poo", "add book/article/stuff", "update", "remove"]
61 curses.wrapper(menutest, menu)