diff options
Diffstat (limited to 'asciifarm/client/display/messages.py')
| -rw-r--r-- | asciifarm/client/display/messages.py | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/asciifarm/client/display/messages.py b/asciifarm/client/display/messages.py deleted file mode 100644 index d551cc2..0000000 --- a/asciifarm/client/display/messages.py +++ /dev/null @@ -1,56 +0,0 @@ - -import textwrap - -from .widimp import WidImp - -class Messages(WidImp): - - def __init__(self, colours): - self.changed = False - self.messages = [] - self.scrolledBack = 0 - self.colours = colours - - def addMessage(self, message, type=None): - self.messages.append([message, type]) - if self.scrolledBack: - self.scrolledBack += 1 - self.change() - - def scroll(self, amount, relative=True): - if relative: - self.scrolledBack += amount - else: - self.scrolledBack = amount - self.scrolledBack = max(self.scrolledBack, 0) - self.change() - - def update(self, win): - width, height = win.getSize() - if height < 1: - return - lines = [] - messages = self.messages - for message, type in messages: - colour = self.colours.get(type, (7,0)) - for line in textwrap.wrap(message, width): - lines.append((line, colour)) - self.scrolledBack = max(min(self.scrolledBack, len(lines)-height), 0) - moreDown = False - if self.scrolledBack > 0: - lines = lines[:-self.scrolledBack] - moreDown = True - moreUp = False - if len(lines) > height: - moreUp = True - lines = lines[len(lines)-height:] - elif len(lines) < height: - lines = (height-len(lines)) * [("",)] + lines - win.erase() - for i, line in enumerate(lines): - win.addLine((0,i), *line) - if moreUp: - win.addLine((width-1, 0), '-') - if moreDown: - win.addLine((width-1, height-1), '+') - win.noutrefresh() |
