projects
/
naja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tweak hint position and add padding
[naja.git]
/
naja
/
widgets
/
text.py
diff --git
a/naja/widgets/text.py
b/naja/widgets/text.py
index 6ca239d6fbdc08d9e467a718fcf86d955d4cf252..d753e8a12aed87987e9f6f273e861d678eda5612 100644
(file)
--- a/
naja/widgets/text.py
+++ b/
naja/widgets/text.py
@@
-1,27
+1,32
@@
import pygame
import pygame
-from naja.constants import FONT, FONT_SIZE
+from naja.constants import FONT, FONT_SIZE
, EIGHT_BIT_SCALE
from naja.widgets.base import Widget
from naja.resources import resources
from naja.utils import convert_colour
class TextWidget(Widget):
from naja.widgets.base import Widget
from naja.resources import resources
from naja.utils import convert_colour
class TextWidget(Widget):
+
def __init__(self, pos, text, size=None, fontname=None, fontsize=None,
colour=None):
super(TextWidget, self).__init__(pos, size)
self.text = text
self.fontname = fontname or FONT
def __init__(self, pos, text, size=None, fontname=None, fontsize=None,
colour=None):
super(TextWidget, self).__init__(pos, size)
self.text = text
self.fontname = fontname or FONT
- self.fontsize = (fontsize or FONT_SIZE) //
4
+ self.fontsize = (fontsize or FONT_SIZE) //
EIGHT_BIT_SCALE
self.colour = convert_colour(colour or (0, 0, 0))
self.colour = convert_colour(colour or (0, 0, 0))
+ def render_line(self, text):
+ text_surf = self.font.render(text, True, self.colour)
+ text_rect = text_surf.get_rect()
+ return pygame.transform.scale(
+ text_surf, (text_rect.width * EIGHT_BIT_SCALE,
+ text_rect.height * EIGHT_BIT_SCALE))
+
def prepare(self):
self.font = resources.get_font(self.fontname, self.fontsize)
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 * 4,
- text_rect.height * 4))
+ self.surface = self.render_line(self.text)
self.size = self.surface.get_rect().size
def draw(self, surface):
self.size = self.surface.get_rect().size
def draw(self, surface):
@@
-73,13
+78,10
@@
class TextBoxWidget(TextWidget):
rendered_lines = []
width, height = self.padding, self.padding
for line in self.lines():
rendered_lines = []
width, height = self.padding, self.padding
for line in self.lines():
- line_surface = self.font.render(line, True, self.colour)
- line_rect = line_surface.get_rect()
- line_surface = pygame.transform.scale(
- line_surface, (line_rect.width * 2, line_rect.height * 2))
+ line_surface = self.render_line(line)
line_rect = line_surface.get_rect()
rendered_lines.append(line_surface)
line_rect = line_surface.get_rect()
rendered_lines.append(line_surface)
- width = max(width, line_rect.width)
+ width = max(width, line_rect.width
+ self.padding
)
height += line_rect.height
self.surface = pygame.surface.Surface((width, height),
height += line_rect.height
self.surface = pygame.surface.Surface((width, height),