+ if centre:
+ w, h = self._text.get_size()
+ pos = pos[0] - (w / 2), pos[1] - (h / 2)
+ self._disabled_text = self._text.copy()
+ Multiply(colour=(80, 80, 80)).apply(self._disabled_text)
+ super(TextButton, self).__init__(self._text.get_size(), name,
+ pos, padding)
+
+ def render(self, surface):
+ if self.enabled:
+ surface.blit(self._text, self._pos, None)
+ else:
+ surface.blit(self._disabled_text, self._pos, None)
+
+
+class ImageButton(Button):
+
+ def __init__(self, *imgparts, **kwargs):
+ transform = kwargs.pop("transform", NullTransform())
+ self._img = kwargs.pop("image", None)
+ if self._img is None:
+ self._img = loader.load_image(*imgparts, transform=transform)
+ self._disabled_img = self._img.copy()
+ disabled_colour = kwargs.pop("disabled_colour", (80, 80, 80))
+ Multiply(colour=disabled_colour).apply(self._disabled_img)
+ name = kwargs.get('name')
+ pos = kwargs.get('pos')
+ padding = kwargs.get('padding', 0)
+ super(ImageButton, self).__init__(self._img.get_size(), name,
+ pos, padding)
+
+ def update_image(self, *imgparts, **kwargs):
+ transform = kwargs.pop("transform", NullTransform())
+ self._img = loader.load_image(*imgparts, transform=transform)