Mercurial > mamba
view 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 |
line wrap: on
line source
import pygame from pygame.locals import SRCALPHA from mamba.constants import COLOR, FOCUS_COLOR from mamba.data import load_image from mamba.widgets.base import Button from mamba.widgets.text import TextWidget class LevelButton(Button): def __init__(self, rect, text, done=False): super(LevelButton, self).__init__(rect) self.text = text self.done = done self.focussable = True self.border = 3 self.rect.width = 50 self.rect.height = 50 self.prepare() def prepare(self): self.surface = pygame.Surface(self.rect.size, SRCALPHA) self.surface.fill(0) image = None if self.done: image = load_image('menus/tick.png') if image: self.surface.blit(image, image.get_rect()) self._text = TextWidget((0, 0), self.text, fontsize=24) self._text.prepare() color = pygame.Color(FOCUS_COLOR if self.focussed else COLOR) pygame.draw.rect(self.surface, color, self.surface.get_rect(), self.border) text_rect = pygame.Rect((0, 0), self.rect.size).inflate( self._text.rect.width - self.rect.width, self._text.rect.height - self.rect.height) self.surface.blit(self._text.surface, text_rect) self._state = (self.done, self.focussed) def draw(self, surface): if self._state != (self.done, self.focussed): self.prepare() surface.blit(self.surface, self.rect)