comparison mamba/widgets/levelbutton.py @ 310:b371c2ea309e

excised level locking
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Fri, 16 Sep 2011 18:32:31 +0200
parents e6a3b00f997b
children fba74abad7b7
comparison
equal deleted inserted replaced
309:67312228c158 310:b371c2ea309e
7 from mamba.widgets.text import TextWidget 7 from mamba.widgets.text import TextWidget
8 8
9 9
10 class LevelButton(Button): 10 class LevelButton(Button):
11 11
12 def __init__(self, rect, text, locked=True, done=False): 12 def __init__(self, rect, text, done=False):
13 super(LevelButton, self).__init__(rect) 13 super(LevelButton, self).__init__(rect)
14 self.text = text 14 self.text = text
15 self.locked = locked
16 self.done = done 15 self.done = done
17 self.focussable = True 16 self.focussable = True
18 self.border = 3 17 self.border = 3
19 self.rect.width = 50 18 self.rect.width = 50
20 self.rect.height = 50 19 self.rect.height = 50
23 def prepare(self): 22 def prepare(self):
24 self.surface = pygame.Surface(self.rect.size, SRCALPHA) 23 self.surface = pygame.Surface(self.rect.size, SRCALPHA)
25 self.surface.fill(0) 24 self.surface.fill(0)
26 25
27 image = None 26 image = None
28 if self.locked: 27 if self.done:
29 image = load_image('menus/lock.png')
30 elif self.done:
31 image = load_image('menus/tick.png') 28 image = load_image('menus/tick.png')
32 if image: 29 if image:
33 self.surface.blit(image, image.get_rect()) 30 self.surface.blit(image, image.get_rect())
34 31
35 self._text = TextWidget((0, 0), self.text, fontsize=24) 32 self._text = TextWidget((0, 0), self.text, fontsize=24)
40 self.border) 37 self.border)
41 text_rect = pygame.Rect((0, 0), self.rect.size).inflate( 38 text_rect = pygame.Rect((0, 0), self.rect.size).inflate(
42 self._text.rect.width - self.rect.width, 39 self._text.rect.width - self.rect.width,
43 self._text.rect.height - self.rect.height) 40 self._text.rect.height - self.rect.height)
44 self.surface.blit(self._text.surface, text_rect) 41 self.surface.blit(self._text.surface, text_rect)
45 self._state = (self.locked, self.done, self.focussed) 42 self._state = (self.done, self.focussed)
46 43
47 def draw(self, surface): 44 def draw(self, surface):
48 if self._state != (self.locked, self.done, self.focussed): 45 if self._state != (self.done, self.focussed):
49 self.prepare() 46 self.prepare()
50 surface.blit(self.surface, self.rect) 47 surface.blit(self.surface, self.rect)