5 def __init__(self, pos, size=None):
7 self.size = size or (0, 0)
12 return pygame.Rect(self.pos, self.size)
14 def render(self, surface):
15 '''Draw the widget onto surface'''
16 if not self._prepared:
21 def draw(self, surface):
22 '''The overrideable bit of widget drawing'''
23 raise NotImplemented()
26 '''Prepare the widget for drawing. This usually caches a surface.'''
28 def handle_event(self, ev):
29 '''Return True if the event has been handled'''
33 class Container(object):
34 def __init__(self, *widgets):
36 for widget in widgets:
39 def add(self, widget):
40 self.widgets.append(widget)
42 def render(self, surface):
43 for widget in self.widgets:
44 widget.render(surface)
46 def handle_event(self, ev):
47 for widget in self.widgets:
48 if widget.handle_event(ev):