changeset 303:af202e15167d

Multi-line messages
author Neil Muller <drnlmuller@gmail.com>
date Fri, 16 Sep 2011 17:35:50 +0200
parents f44aa0abf0a5
children 49fe66680ff8
files mamba/widgets/messagebox.py
diffstat 1 files changed, 15 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/widgets/messagebox.py	Fri Sep 16 16:49:03 2011 +0200
+++ b/mamba/widgets/messagebox.py	Fri Sep 16 17:35:50 2011 +0200
@@ -17,25 +17,23 @@
 
     def prepare(self):
         cont = TextWidget((0, 0), "Press [OK] or Enter to continue")
-        message = TextWidget((0, 0), self.text, color=self.color)
-        width = max(cont.rect.width, message.rect.width)
-        if width > message.rect.width:
-            cont_pos = (self.rect.left + 5,
-                    self.rect.top + 10 + message.rect.height)
-            message_pos = (self.rect.left + 5 + width / 2
-                    - message.rect.width / 2, self.rect.top + 5)
-        else:
-            message_pos = (self.rect.left + 5, self.rect.top + 5)
-            cont_pos = (self.rect.left + 5 + width / 2
-                    - message.rect.width / 2,
-                    self.rect.top + 10 + message.rect.height)
-        message.rect.topleft = message_pos
-        cont.rect.topleft = cont_pos
-        self.add(message)
-        self.add(cont)
+        widgets = []
+        width = cont.rect.width
+        for line in self.text.split('\n'):
+            message = TextWidget((0, 0), line, color=self.color)
+            widgets.append(message)
+            width = max(width, message.rect.width)
+        widgets.append(cont)
+        top = self.rect.top + 10
+        left = self.rect.left + 5
+        for widget in widgets:
+            pos = (left + width / 2 - widget.rect.width / 2, top)
+            widget.rect.topleft = pos
+            top += widget.rect.height + 5
+            self.add(widget)
         self.ok_button = ok_button = TextButton((0, 0), 'OK')
         ok_pos = (self.rect.left + 5 + width / 2 - ok_button.rect.width / 2,
-                cont_pos[1] + 5 + cont.rect.height)
+                top + 5)
         ok_button.rect.topleft = ok_pos
         ok_button.add_callback('clicked', self.close)
         self.add(ok_button)