+class Tooltip(object):
+ def __init__(self, textparts, font='sans', size=12, padding=5, distance=10):
+ self._font = loader.load_font(FONTS[font], size=size)
+ self._text = [self._font.render(text, True, COLOURS["white"]) for text in textparts]
+ self._padding = padding
+ self._distance = distance
+
+ def render(self, surface, tool_pos, tool_width):
+ width = max(t.get_size()[0] for t in self._text) + 2 * self._padding
+ height = sum(t.get_size()[1] for t in self._text) + 2 * self._padding
+
+ tooltip = pygame.surface.Surface(
+ (width, height), pgl.SWSURFACE).convert_alpha()
+ tooltip.fill((0, 0, 0, 172))
+
+ ty = 0
+ for t in self._text:
+ tooltip.blit(t, (self._padding, self._padding + ty), None)
+ ty += self._font.get_height()
+
+ x = tool_pos[0] - width/2 + tool_width/2
+ y = tool_pos[1] - height - self._distance
+
+ surface.blit(tooltip, (x, y), None)
+
+