Changeset 397:a08965437df2


Ignore:
Timestamp:
Sep 6, 2013, 11:11:51 PM (7 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
rebase_source:
292f3b96a46fa415d09b2d70b467c7270bdbc029
Message:

Fold long text messages somewhat

File:
1 edited

Legend:

Unmodified
Added
Removed
  • nagslang/render.py

    r396 r397  
    11import math
     2import textwrap
    23
    34import pygame
     
    78from nagslang.options import options
    89from nagslang.utils import tile_surface
    9 from nagslang.widgets.text import LabelWidget
     10from nagslang.widgets.text import LabelWidget, MultiLineWidget
    1011
    1112
     
    185186        if display_offset[1] < 0:
    186187            y += abs(display_offset[1])
    187         self.widget.rect.topleft = (x, y)
    188         self.widget.draw(surface)
     188        if self.widget.rect.width > max_width - 40:
     189            # Need to relayout the widget
     190            factor = 2
     191            while self.widget.rect.width > max_width - 40:
     192                wrapped = '\n'.join(textwrap.wrap(self.text,
     193                                                  len(self.text) // factor))
     194                factor *= 2
     195                self.widget = MultiLineWidget((20, 20), wrapped)
     196                if self.widget.rect.width < 100:
     197                    # safety valve
     198                    break
     199            self.widget.rect.topleft = (x, y)
     200            self.widget.draw(surface)
     201            # TODO: undo the mad folding
     202        else:
     203            self.widget.rect.topleft = (x, y)
     204            self.widget.draw(surface)
    189205
    190206
Note: See TracChangeset for help on using the changeset viewer.