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))
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)