# HG changeset patch # User Neil Muller # Date 1316215421 -7200 # Node ID 9db8fbe8ae83adac1a838c4ac4e6219d4e12e8b5 # Parent 8b9cfc4f0f019cc3c878670e62b35c574e68dd28 Add Box base class diff -r 8b9cfc4f0f01 -r 9db8fbe8ae83 mamba/widgets/base.py --- a/mamba/widgets/base.py Sat Sep 17 01:02:52 2011 +0200 +++ b/mamba/widgets/base.py Sat Sep 17 01:23:41 2011 +0200 @@ -1,7 +1,7 @@ import collections import pygame -from pygame.constants import K_UP, K_DOWN, K_LEFT, K_RIGHT, K_RETURN +from pygame.constants import K_UP, K_DOWN, K_LEFT, K_RIGHT, K_RETURN, SRCALPHA from pygame.locals import (KEYDOWN, MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, USEREVENT) @@ -269,3 +269,20 @@ return False self.children[self.focussed_child].focussed = True return True + + +class Box(Container): + """A container that draws a filled background with a border""" + padding = 4 + + def draw(self, surface): + expandrect = self.rect.move((-self.padding, -self.padding)) + expandrect.width = self.rect.width + 2 * self.padding + expandrect.height = self.rect.height + 2 * self.padding + border = pygame.Surface(expandrect.size, SRCALPHA) + border.fill(pygame.Color('black')) + surface.blit(border, expandrect) + background = pygame.Surface(self.rect.size, SRCALPHA) + background.fill(pygame.Color('gray')) + surface.blit(background, self.rect) + super(Box, self).draw(surface)