summaryrefslogtreecommitdiff
path: root/asciifarm/client/display/messages.py
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm/client/display/messages.py')
-rw-r--r--asciifarm/client/display/messages.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/asciifarm/client/display/messages.py b/asciifarm/client/display/messages.py
index 19cbc5d..d551cc2 100644
--- a/asciifarm/client/display/messages.py
+++ b/asciifarm/client/display/messages.py
@@ -5,13 +5,14 @@ from .widimp import WidImp
class Messages(WidImp):
- def __init__(self):
+ def __init__(self, colours):
self.changed = False
self.messages = []
self.scrolledBack = 0
+ self.colours = colours
- def addMessage(self, message):
- self.messages.append(message)
+ def addMessage(self, message, type=None):
+ self.messages.append([message, type])
if self.scrolledBack:
self.scrolledBack += 1
self.change()
@@ -30,8 +31,10 @@ class Messages(WidImp):
return
lines = []
messages = self.messages
- for message in messages:
- lines += textwrap.wrap(message, width)
+ 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:
@@ -42,10 +45,10 @@ class Messages(WidImp):
moreUp = True
lines = lines[len(lines)-height:]
elif len(lines) < height:
- lines = (height-len(lines)) * [""] + lines
+ lines = (height-len(lines)) * [("",)] + lines
win.erase()
for i, line in enumerate(lines):
- win.addLine((0,i),line)
+ win.addLine((0,i), *line)
if moreUp:
win.addLine((width-1, 0), '-')
if moreDown: