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()
+
+ def handle_event(self, ev):
+ return False
+
+
+class Container(object):
+ def __init__(self, *widgets):
+ self.widgets = []
+ for widget in widgets:
+ self.add(widget)
+
+ def add(self, widget):
+ self.widgets.append(widget)
+
+ def render(self, surface):
+ for widget in self.widgets:
+ widget.render(surface)
+
+ def handle_event(self, ev):
+ for widget in self.widgets:
+ if widget.handle_event(ev):
+ return True
+ return False