Mercurial > mamba
changeset 59:3cc917814579
Container subclasses Widget
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 11 Sep 2011 16:33:50 +0200 |
parents | 7fa000c4b3c7 |
children | 848749c2804b |
files | mamba/engine.py mamba/widgets/base.py |
diffstat | 2 files changed, 14 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/engine.py Sun Sep 11 16:21:36 2011 +0200 +++ b/mamba/engine.py Sun Sep 11 16:33:50 2011 +0200 @@ -39,7 +39,7 @@ def __init__(self): self.surface = pygame.Surface(SCREEN) - self.container = Container() + self.container = Container(pygame.Rect((0, 0), SCREEN)) def on_enter(self): """Called when this becomes the current habitat."""
--- a/mamba/widgets/base.py Sun Sep 11 16:21:36 2011 +0200 +++ b/mamba/widgets/base.py Sun Sep 11 16:33:50 2011 +0200 @@ -16,28 +16,30 @@ def add_callback(self, eventtype, callback, *args): self.callbacks[eventtype].append((callback, args)) - def event(self, event): - for callback, args in self.callbacks[event.type]: - callback(event, self, *args) + def event(self, ev): + for callback, args in self.callbacks[ev.type]: + callback(ev, self, *args) def draw(self, surface): "Override me" pass -class Container(object): +class Container(Widget): - def __init__(self): + def __init__(self, rect): + super(Container, self).__init__(rect) self.children = [] - def event(self, event): - if event.type in (MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN): + def event(self, ev): + if ev.type in (MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN): for child in self.children: - if child.rect.collidepoint(event.pos): - child.event(event) - elif event.type == KEYDOWN: + if child.rect.collidepoint(ev.pos): + child.event(ev) + if ev.type == KEYDOWN: for child in self.children: - child.event(event) + child.event(ev) + super(Container, self).event(ev) def add(self, widget): self.children.append(widget)