Mercurial > mamba
view mamba/widgets/messagebox.py @ 227:c068190c0b1d
Cleanup copy-n-paste left-over junk
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 23:06:14 +0200 |
parents | b92f705bd8ea |
children | af202e15167d |
line wrap: on
line source
import pygame from pygame.constants import SRCALPHA from mamba.widgets.base import Container from mamba.widgets.text import TextWidget, TextButton class MessageBox(Container): def __init__(self, rect, text, post_callback=None, color='white'): super(MessageBox, self).__init__(rect) self.text = text self.post_callback = post_callback self.color = color self.prepare() self.modal = True def prepare(self): cont = TextWidget((0, 0), "Press [OK] or Enter to continue") message = TextWidget((0, 0), self.text, color=self.color) width = max(cont.rect.width, message.rect.width) if width > message.rect.width: cont_pos = (self.rect.left + 5, self.rect.top + 10 + message.rect.height) message_pos = (self.rect.left + 5 + width / 2 - message.rect.width / 2, self.rect.top + 5) else: message_pos = (self.rect.left + 5, self.rect.top + 5) cont_pos = (self.rect.left + 5 + width / 2 - message.rect.width / 2, self.rect.top + 10 + message.rect.height) message.rect.topleft = message_pos cont.rect.topleft = cont_pos self.add(message) self.add(cont) self.ok_button = ok_button = TextButton((0, 0), 'OK') ok_pos = (self.rect.left + 5 + width / 2 - ok_button.rect.width / 2, cont_pos[1] + 5 + cont.rect.height) ok_button.rect.topleft = ok_pos ok_button.add_callback('clicked', self.close) self.add(ok_button) def draw(self, surface): background = pygame.Surface(self.rect.size, SRCALPHA) background.fill(pygame.Color('gray')) surface.blit(background, self.rect) super(MessageBox, self).draw(surface) def close(self, ev, widget): self.parent.remove(self) if self.post_callback: self.post_callback() def grab_focus(self): return self.ok_button.grab_focus()