from naja.constants import FONT, FONT_SIZE, EIGHT_BIT_SCALE, PALETTE, KEYS
from naja.resources import resources
-from naja.resources.mutators import EIGHT_BIT, blender
+from naja.resources.mutators import EIGHT_BIT, R180, blender
from naja.utils import convert_colour
from naja.widgets.base import Widget
VIEW_PORT_DY = 50
def __init__(self, pos, text, fontname=None, fontsize=None,
- colour=None, unselectable_colour=None, view_port=None):
+ colour=None, unselectable_colour=None, view_port=None,
+ centre=False):
super(TextWidget, self).__init__(pos)
self.text = text
self.unselectable_colour = unselectable_colour
self.view_port = (
pygame.Rect((0, 0), view_port) if view_port is not None else None)
+ self.centre = centre
+ self.centre_pos = pos
def render_line(self, text):
colour = self.colour
self.size = self.view_port.size
else:
self.size = self.surface.get_rect().size
+ if self.centre:
+ self.pos = (self.centre_pos[0] - self.size[0] // 2,
+ self.centre_pos[1])
def prepare(self):
self.font = resources.get_font(self.fontname, self.fontsize)
rect = self.pos
area = self.view_port
surface.blit(self.surface, rect, area)
+ if self.view_port is not None:
+ self.draw_arrows(surface)
+
+ def draw_arrows(self, surface):
+ if self.view_port.top > 0:
+ up = resources.get_image('bits', 'arrow_on.png',
+ transforms=(EIGHT_BIT,))
+ icon_size = up.get_rect().height
+ pos = (self.pos[0] + self.view_port.width - icon_size, self.pos[1])
+ surface.blit(up, pos)
+ if self.view_port.bottom < self.surface.get_rect().bottom:
+ down = resources.get_image('bits', 'arrow_on.png',
+ transforms=(R180, EIGHT_BIT))
+ icon_size = down.get_rect().height
+ pos = (self.pos[0] + self.view_port.width - icon_size,
+ self.pos[1] + self.view_port.height - icon_size)
+ surface.blit(down, pos)
class TextBoxWidget(TextWidget):
def _wrapped_lines(self, image_map):
def words_fit(words):
words_line = ' '.join(words)
- width = self.font.size(words_line)[0]
+ width = self.font.size(words_line)[0] * EIGHT_BIT_SCALE
if width < self.box_width:
return True
elif len(words) == 1: