X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;ds=sidebyside;f=naja%2Fwidgets%2Fbase.py;h=6b86a870f5adadbb518ed4fc4caae837ccce7650;hb=5331699e9ab927608ad9fa6841de85a30b1c42b1;hp=b922b62280a595d61b1e422685add1b87ba9ad6a;hpb=0b4f46ac5262aed61cf3aeb994a1b55fa7823c7c;p=naja.git diff --git a/naja/widgets/base.py b/naja/widgets/base.py index b922b62..6b86a87 100644 --- a/naja/widgets/base.py +++ b/naja/widgets/base.py @@ -11,13 +11,37 @@ 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() + + 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