From: Simon Cross Date: Sun, 11 May 2014 15:56:50 +0000 (+0200) Subject: Refactor widget rendering a bit. X-Git-Tag: 0.1~420 X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=f4c61efe7a3154f965781ea65117583750d39d3e;p=naja.git Refactor widget rendering a bit. --- diff --git a/naja/scenes/menu.py b/naja/scenes/menu.py index 3c703c3..7b42ad7 100644 --- a/naja/scenes/menu.py +++ b/naja/scenes/menu.py @@ -12,7 +12,7 @@ class MenuScene(Scene): self.tw = TextWidget((10, 10), 'Haai', colour=(255, 255, 255)) def render(self, surface): - self.tw.draw(surface) + self.tw.render(surface) def handle_event(self, ev): pass diff --git a/naja/widgets/base.py b/naja/widgets/base.py index b922b62..32ff46f 100644 --- a/naja/widgets/base.py +++ b/naja/widgets/base.py @@ -11,13 +11,14 @@ class Widget(object): def rect(self): return pygame.Rect(self.pos, self.size) + def render(self, surface): + if not self._prepared: + self.prepare() + self._prepared = True + self.draw(surface) + def draw(self, surface): raise NotImplemented() def prepare(self): - if not self._prepared: - self._prepare() - self._prepared = True - - def _prepare(self): raise NotImplemented() diff --git a/naja/widgets/text.py b/naja/widgets/text.py index 239e10a..39178ed 100644 --- a/naja/widgets/text.py +++ b/naja/widgets/text.py @@ -13,11 +13,10 @@ class TextWidget(Widget): self.fontsize = fontsize or FONT_SIZE self.colour = colour or (0, 0, 0) - def _prepare(self): + def prepare(self): self.font = resources.get_font(self.fontname, self.fontsize) self.surface = self.font.render(self.text, True, self.colour) self.size = self.surface.get_rect().size def draw(self, surface): - self.prepare() surface.blit(self.surface, self.rect)