Remove unnecessary overriding of TextWidget.draw in TextBoxWidget.draw.
[naja.git] / naja / widgets / text.py
index 4343d015e2519f77b48accf314f1d99bf21fe65d..306841257ccaa090238743be176f680ed651a354 100644 (file)
@@ -37,16 +37,22 @@ class Glyph(object):
 class TextWidget(Widget):
 
     def __init__(self, pos, text, size=None, fontname=None, fontsize=None,
-                 colour=None):
+                 colour=None, unselectable_colour=None):
         super(TextWidget, self).__init__(pos, size)
 
         self.text = text
         self.fontname = fontname or FONT
         self.fontsize = (fontsize or FONT_SIZE) // EIGHT_BIT_SCALE
         self.colour = convert_colour(colour or PALETTE.BLACK)
+        if unselectable_colour is not None:
+            unselectable_colour = convert_colour(unselectable_colour)
+        self.unselectable_colour = unselectable_colour
 
     def render_line(self, text):
-        text_surf = self.font.render(text, True, self.colour)
+        colour = self.colour
+        if not self.is_selectable() and self.unselectable_colour is not None:
+            colour = self.unselectable_colour
+        text_surf = self.font.render(text, True, colour)
         text_rect = text_surf.get_rect()
         return pygame.transform.scale(
             text_surf, (text_rect.width * EIGHT_BIT_SCALE,
@@ -58,7 +64,7 @@ class TextWidget(Widget):
         self.size = self.surface.get_rect().size
 
     def draw(self, surface):
-        surface.blit(self.surface, self.pos)
+        surface.blit(self.surface, self.rect)
 
 
 class TextBoxWidget(TextWidget):
@@ -137,6 +143,7 @@ class TextBoxWidget(TextWidget):
                         word = glyph.markup_text
                     remaining_words.insert(0, word)
             if current_words and words_fit(current_words):
+                line_count += 1
                 yield ' '.join(current_words)
 
     def prepare(self):
@@ -162,6 +169,3 @@ class TextBoxWidget(TextWidget):
             y += line_surface.get_rect().height
         for pos, img in image_map.items():
             self.surface.blit(img, pos)
-
-    def draw(self, surface):
-        surface.blit(self.surface, self.rect)