Use new glyphs.
[naja.git] / naja / widgets / text.py
index 0dea54067b08f104707939873f9ae194d3b7d5a9..4ddc0d6b42ce3b9806ea871a369d658eeb45f2c4 100644 (file)
@@ -12,6 +12,10 @@ MARKUP_MAP = {
     'SOUTH': (1, 'glyphs/arrow_down.png'),
     'EAST': (1, 'glyphs/arrow_right.png'),
     'WEST': (1, 'glyphs/arrow_left.png'),
+    'HEALTH': (1, 'glyphs/health.png'),
+    'WIN': (1, 'glyphs/win.png'),
+    'KEY': (1, 'glyphs/key.png'),
+    'MSB': (1, 'glyphs/msb.png'),
 }
 
 
@@ -73,7 +77,9 @@ class TextBoxWidget(TextWidget):
         line_count = 0
         for line in self.text.splitlines():
             current_words = []
-            for word in line.split():
+            remaining_words = line.split()
+            while remaining_words:
+                word = remaining_words[0]
                 suffix = ''
                 if word[-1] in '.,':
                     suffix = word[-1]
@@ -86,18 +92,18 @@ class TextBoxWidget(TextWidget):
                 if words_fit(current_words):
                     if markup_data is not None:
                         size = self.font.size(
-                            ' '.join(current_words[:-1]) + ' ')
+                            ' '.join(current_words[:-1] + ['']))
                         pos = (size[0] * EIGHT_BIT_SCALE,
                                size[1] * line_count * EIGHT_BIT_SCALE)
                         pos = (pos[0] + self.padding, pos[1] + self.padding)
                         image_map[pos] = resources.get_image(
                             markup_data[1],
                             transforms=(EIGHT_BIT, blender(self.colour)))
-                        continue
+                    remaining_words.pop(0)
                 else:
                     line_count += 1
                     yield ' '.join(current_words[:-1])
-                    current_words = current_words[-1:]
+                    current_words = []
             if current_words and words_fit(current_words):
                 yield ' '.join(current_words)