blit actually wants a pos, no need to calculate the rect
[naja.git] / naja / widgets / text.py
index 8b1e3c68314cec2786f7fbf5aaae8a1291289a5b..78e7f4cda34da9965ff3d22d02480383104c55b5 100644 (file)
@@ -13,19 +13,20 @@ class TextWidget(Widget):
 
         self.text = text
         self.fontname = fontname or FONT
-        self.fontsize = (fontsize or FONT_SIZE) / 2
+        self.fontsize = (fontsize or FONT_SIZE) // 4
         self.colour = convert_colour(colour or (0, 0, 0))
 
     def prepare(self):
         self.font = resources.get_font(self.fontname, self.fontsize)
         text = self.font.render(self.text, True, self.colour)
         text_rect = text.get_rect()
-        self.surface = pygame.transform.scale(text, (text_rect.width * 2,
-                                                     text_rect.height * 2))
+        self.surface = pygame.transform.scale(text, (text_rect.width * 4,
+                                                     text_rect.height * 4))
         self.size = self.surface.get_rect().size
 
     def draw(self, surface):
-        surface.blit(self.surface, self.rect)
+        surface.blit(self.surface, self.pos)
+
 
 class TextBoxWidget(TextWidget):
     def __init__(self, *args, **kwargs):
@@ -37,7 +38,7 @@ class TextBoxWidget(TextWidget):
                                                        (0, 0, 0)))
         self.box_width = kwargs.pop('box_width', 0)
 
-        super(TextBoxWidget,self).__init__(*args, **kwargs)
+        super(TextBoxWidget, self).__init__(*args, **kwargs)
 
     def prepare(self):
         self.font = resources.get_font(self.fontname, self.fontsize)
@@ -50,7 +51,7 @@ class TextBoxWidget(TextWidget):
                 current_line_rendered = None
                 for word in line.split(' '):
                     if len(current_line) > 0:
-                        current_line += ' '+ word
+                        current_line += ' ' + word
                     else:
                         current_line = word
                     line = self.font.render(current_line, True, self.colour)
@@ -61,24 +62,26 @@ class TextBoxWidget(TextWidget):
                     elif current_line_rendered is not None:
                         line_rect = current_line_rendered.get_rect()
                         self.lines.append(pygame.transform.scale(
-                            current_line_rendered,(line_rect.width * 2,
-                                                   line_rect.height * 2)))
+                            current_line_rendered, (line_rect.width * 2,
+                                                    line_rect.height * 2)))
                         current_line = word
-                        current_line_rendered = self.font.render(word, True, self.colour)
+                        current_line_rendered = self.font.render(
+                            word, True, self.colour)
                     else:
-                        raise Exception('Line too long. Please resize or rephrase')
+                        raise Exception(
+                            'Line too long. Please resize or rephrase')
                 if current_line_rendered is not None:
                     line_rect = current_line_rendered.get_rect()
                     self.lines.append(pygame.transform.scale(
-                        current_line_rendered,(line_rect.width * 2,
-                                               line_rect.height * 2)))
+                        current_line_rendered, (line_rect.width * 2,
+                                                line_rect.height * 2)))
             else:
                 line = self.font.render(line, True, self.colour)
                 line_rect = line.get_rect()
                 width = max(width, line.get_rect().width)
                 height += line.get_rect().height
-                self.lines.append(pygame.transform.scale(line, (line_rect.width * 2,
-                                                             line_rect.height * 2)))
+                self.lines.append(pygame.transform.scale(
+                    line, (line_rect.width * 2, line_rect.height * 2)))
 
         width += 2 + self.padding
         height += 2 + self.padding
@@ -87,11 +90,10 @@ class TextBoxWidget(TextWidget):
 
     def draw(self, surface):
         self.surface.fill(self.bg_colour)
-        y = 0
+        y = self.pos[1]
         for line in self.lines:
-            surface.blit(line, (self.padding, y + self.padding))
+            surface.blit(line, (self.pos[0] + self.padding, y + self.padding))
             y += line.get_rect().height
         self.text_rect = surface.get_rect()
         if not self.size:
             self.rect.size = self.text_rect.size
-