Mercurial > sypikslang
comparison gamelib/gui_base.py @ 55:86d83dcb7d42
Make text drawing easier to poke at for subclasses
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Mon, 07 May 2012 22:53:18 +0200 |
parents | d82d3e54a4ef |
children | 38f41d046c6f |
comparison
equal
deleted
inserted
replaced
54:168cfac9a445 | 55:86d83dcb7d42 |
---|---|
154 | 154 |
155 def __init__(self, rect, normal_drawable, down_drawable, text): | 155 def __init__(self, rect, normal_drawable, down_drawable, text): |
156 super(TextButton, self).__init__(rect, normal_drawable, down_drawable) | 156 super(TextButton, self).__init__(rect, normal_drawable, down_drawable) |
157 self.surface = Surface((rect[2], rect[3])) | 157 self.surface = Surface((rect[2], rect[3])) |
158 self.text = text | 158 self.text = text |
159 self._draw_text() | |
160 | |
161 def _draw_text(self): | |
159 font_large.set_bold(True) | 162 font_large.set_bold(True) |
160 self.text_surface = font_large.render(self.text, True, (128, 128, 128)) | 163 self.text_surface = font_large.render(self.text, True, (128, 128, 128)) |
161 shadow = font_large.render(self.text, True, (0, 0, 0)) | 164 shadow = font_large.render(self.text, True, (0, 0, 0)) |
162 font_large.set_bold(False) | 165 font_large.set_bold(False) |
163 self.text_surface.blit(shadow, (-2, -2)) | 166 self.text_surface.blit(shadow, (-2, -2)) |
164 size = font_large.size(self.text) | 167 size = font_large.size(self.text) |
165 self.text_offset = ((rect[2] - size[0]) / 2, (rect[3] - size[1]) / 2) | 168 self.text_offset = ((self.rect[2] - size[0]) / 2, |
169 (self.rect[3] - size[1]) / 2) | |
166 | 170 |
167 def draw(self, surface): | 171 def draw(self, surface): |
168 self.surface.fill((0, 0, 0, 0)) | 172 self.surface.fill((0, 0, 0, 0)) |
169 super(TextButton, self).draw(self.surface) | 173 super(TextButton, self).draw(self.surface) |
170 self.surface.blit(self.text_surface, self.text_offset) | 174 self.surface.blit(self.text_surface, self.text_offset) |