annotate mamba/widgets/base.py @ 24:30d4f3e62bcf

Refactor widgets *again*, add container to Habitat
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 11 Sep 2011 14:21:50 +0200
parents d0e8940df703
children 047273a63054
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
1 import pygame
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
2
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
3
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
4 class Widget(object):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
5
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
6 def __init__(self, rect):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
7 self.rect = pygame.Rect(rect)
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
8
24
30d4f3e62bcf Refactor widgets *again*, add container to Habitat
Stefano Rivera <stefano@rivera.za.net>
parents: 23
diff changeset
9 def event(self, event):
23
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
10 "Override me"
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
11 pass
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
12
24
30d4f3e62bcf Refactor widgets *again*, add container to Habitat
Stefano Rivera <stefano@rivera.za.net>
parents: 23
diff changeset
13 def draw(self, surface):
23
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
14 "Override me"
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
15 pass
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
16
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
17
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
18 class Container(object):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
19
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
20 def __init__(self):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
21 self.children = []
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
22
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
23 def event(self, event):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
24 for child in self.children:
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
25 # TODO mouse events
24
30d4f3e62bcf Refactor widgets *again*, add container to Habitat
Stefano Rivera <stefano@rivera.za.net>
parents: 23
diff changeset
26 child.event(event)
23
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
27
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
28 def add(self, widget):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
29 self.children.append(widget)
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
30
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
31 def draw(self, surface):
d0e8940df703 Widgets -> base
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
32 for child in self.children:
24
30d4f3e62bcf Refactor widgets *again*, add container to Habitat
Stefano Rivera <stefano@rivera.za.net>
parents: 23
diff changeset
33 child.draw(surface)