示例#1
0
 def check(self, event=None):
     event = event if event is not None else self.win.getch()
     try:
         if event == curses.KEY_RESIZE:
             return event
         elif event == curses.KEY_LEFT:
             return None
         elif event == curses.KEY_RIGHT:
             return None
         elif event == curses.KEY_UP:
             return None
         elif event == curses.KEY_DOWN:
             return None
         elif self.trigs.get(event):
             self.trigs.get(event)()
         elif self.trigs.get(int(event)):
             self.trigs.get(int(event))()
         elif self.trigs.get(str(event)):
             self.trigs.get(str(event))()
         elif self.trigs.get(chr(event)):
             self.trigs.get(chr(event))()
         elif self.trigs.get(str(curses.keyname(event))):
             self.trigs.get(str(curses.keyname(event)))()
         elif self.trigs.get('rest'):
             self.trigs.get('rest')(event)
         return event
     except ValueError, e:
         drawMessage(str(e)+"\n    Press Enter.", self.win)
         self.win.addstr(1, 4, 'key: \'%s\' <=> %c <=> 0x%X <=> %d' % (curses.keyname(event), event & 255, event, event))
示例#2
0
 def display(self):
     '''Display help text file, scrollable with 'j' and 'k'.'''
     try:
         h, w = self.win.getmaxyx()
         fl = self.f.readlines()
         self.scroll = 0
         while True:
             s = ""
             for i in range(h-4):
                 if self.scroll+i < len(fl):
                     s += fl[(self.scroll+i)%len(fl)]
             self.win.erase()
             self.win.addstr(2, 0, s)
             curses.curs_set(0) # Hide cursor
             event = self.ec.check()
             if event == 13:
                 break
     except Exception, e:
         self.win.erase()
         drawMessage(str(e)+"\n    Press ENTER.", self.win)