import curses import textwrap class MessagePad(): def __init__(self): self.changed = False self.messages = [] self.widget = None def setWidget(self, widget): self.widget = widget def addMessage(self, message): self.messages.append(message) self.widget.change() def update(self): win = self.widget.getWin() height, width = win.getmaxyx() if height < 1: return lines = [] for message in self.messages: lines += textwrap.wrap(message, width) if len(lines) > height: lines = lines[len(lines)-height:] win.erase() win.addstr(0,0,'\n'.join(lines)) win.noutrefresh()