comparison nagslang/widgets/text.py @ 33:d9b65cf72db4

Prettier resource loading module
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 01 Sep 2013 16:44:04 +0200
parents 58505d3482b6
children 40f618978c00
comparison
equal deleted inserted replaced
32:0e49648f8d74 33:d9b65cf72db4
1 import pygame
2
3 from nagslang.constants import FONT, FONT_SIZE 1 from nagslang.constants import FONT, FONT_SIZE
4 from nagslang.data import filepath
5 from nagslang.widgets.base import Widget 2 from nagslang.widgets.base import Widget
6 from nagslang.utils import convert_colour 3 from nagslang.utils import convert_colour
4 from nagslang.resources import resources
7 5
8 6
9 class TextWidget(Widget): 7 class TextWidget(Widget):
10 fonts = {}
11
12 def __init__(self, pos, text, size=None, fontname=None, fontsize=None, 8 def __init__(self, pos, text, size=None, fontname=None, fontsize=None,
13 colour=None): 9 colour=None):
14 super(TextWidget, self).__init__(pos, size) 10 super(TextWidget, self).__init__(pos, size)
15 11
16 self.text = text 12 self.text = text
19 self.colour = convert_colour(colour or (0, 0, 0)) 15 self.colour = convert_colour(colour or (0, 0, 0))
20 16
21 self.prepare() 17 self.prepare()
22 18
23 def prepare(self): 19 def prepare(self):
24 font = (self.fontname, self.fontsize) 20 self.font = resources.get_font(self.fontname, self.fontsize)
25 if font not in TextWidget.fonts:
26 fn = filepath('fonts/' + self.fontname)
27 TextWidget.fonts[font] = pygame.font.Font(fn, self.fontsize)
28 self.font = TextWidget.fonts[font]
29 self.surface = self.font.render(self.text, True, self.colour) 21 self.surface = self.font.render(self.text, True, self.colour)
30 self.text_rect = self.surface.get_rect() 22 self.text_rect = self.surface.get_rect()
31 if not self.size: 23 if not self.size:
32 self.rect.size = self.text_rect.size 24 self.rect.size = self.text_rect.size
33 25