diff gamelib/gui_base.py @ 64:24f0707695b4

Add text label
author Neil Muller <drnlmuller@gmail.com>
date Tue, 08 May 2012 21:05:54 +0200
parents 38f41d046c6f
children 7309392d9ca9
line wrap: on
line diff
--- a/gamelib/gui_base.py	Tue May 08 20:51:53 2012 +0200
+++ b/gamelib/gui_base.py	Tue May 08 21:05:54 2012 +0200
@@ -177,3 +177,26 @@
         super(TextButton, self).draw(self.surface)
         self.surface.blit(self.text_surface, self.text_offset)
         surface.blit(self.surface, self.rect)
+
+
+class TextLabel(Drawable):
+
+    def __init__(self, rect, text, font, color):
+        super(TextLabel, self).__init__(rect)
+        self.surface = Surface((rect[2], rect[3]))
+        self.text = text
+        self.font = font
+        self.color = color
+        self._draw_text()
+
+    def _draw_text(self):
+        self.text_surface = self.font.render(self.text, True, self.color)
+        size = self.font.size(self.text)
+        # We centre vertically, but start at left edge
+        self.text_offset = (0, (self.rect[3] - size[1]) / 2)
+
+    def draw(self, surface):
+        self.surface.fill((0, 0, 0, 0))
+        super(TextLabel, self).draw(self.surface)
+        self.surface.blit(self.text_surface, self.text_offset)
+        surface.blit(self.surface, self.rect)