Add name to buttons to simplify logic
[tabakrolletjie.git] / tabakrolletjie / widgets.py
index 3f37b52919c15cc28d1fd37e4c5327732c8fab2b..f34fa35fccc0427477107fae9677b4be91d1cea0 100644 (file)
@@ -10,10 +10,11 @@ from .constants import FONTS
 
 class Button(object):
 
-    def __init__(self, size, pos=None, padding=10):
+    def __init__(self, size, name=None, pos=None, padding=10):
         self._size = size
         self._padding = padding
         self.position = pos
+        self.name = name
 
     @property
     def position(self):
@@ -50,10 +51,11 @@ class Button(object):
 
 class TextButton(Button):
 
-    def __init__(self, text, colour, pos=None, padding=10):
+    def __init__(self, text, colour, name=None, pos=None, padding=10):
         font = loader.load_font(FONTS['sans'], size=24)
         self._text = font.render(text, True, colour)
-        super(TextButton, self).__init__(self._text.get_size(), pos, padding)
+        super(TextButton, self).__init__(self._text.get_size(), name,
+                                         pos, padding)
 
     def render(self, surface):
         surface.blit(self._text, self._pos, None)
@@ -63,9 +65,11 @@ class ImageButton(Button):
 
     def __init__(self, *imgparts, **kwargs):
         self._img = loader.load_image(*imgparts)
+        name = kwargs.get('name')
         pos = kwargs.get('pos')
         padding = kwargs.get('padding', 0)
-        super(ImageButton, self).__init__(self._img.get_size(), pos, padding)
+        super(ImageButton, self).__init__(self._img.get_size(), name,
+                                          pos, padding)
 
     def render(self, surface):
         surface.blit(self._img, self._pos, None)