splash screen
[tabakrolletjie.git] / tabakrolletjie / widgets.py
index c1bbc941c38a924153af2875e9af59449b1b776f..4341c703d717be28ae59a4d1a6a16b056ac01061 100644 (file)
@@ -69,9 +69,14 @@ class SpacerButton(Button):
 
 class TextButton(Button):
 
-    def __init__(self, text, colour, name=None, pos=None, padding=10):
-        font = loader.load_font(FONTS['sans'], size=24)
+    def __init__(
+            self, text, colour, name=None, pos=None, padding=10, size=24,
+            font='sans', centre=False):
+        font = loader.load_font(FONTS[font], size=size)
         self._text = font.render(text, True, colour)
+        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,
@@ -91,6 +96,9 @@ class ImageButton(Button):
         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)
@@ -100,7 +108,9 @@ class ImageButton(Button):
     def update_image(self, *imgparts, **kwargs):
         transform = kwargs.pop("transform", NullTransform())
         self._img = loader.load_image(*imgparts, transform=transform)
-        Multiply((128, 128, 128)).apply(self._disabled_img)
 
     def render(self, surface):
-        surface.blit(self._img, self._pos, None)
+        if self.enabled:
+            surface.blit(self._img, self._pos, None)
+        else:
+            surface.blit(self._disabled_img, self._pos, None)