Ejemplo n.º 1
0
 def layout_star(self, obj, index, context, plac="*"):
     context = push(context, (obj, index))
     hole = obj.holes[index]
     for partial in hole.partials:
         frame = self.layout_hook(partial.a, context)
         frame.hole = partial
         yield frame
     if len(hole.a) == 0:
         frame = string(self.font(plac).mul(gray))
         frame.hole = hole
         yield frame
Ejemplo n.º 2
0
    def default_layout_hook(self, obj, context):
        if obj is None:
            return group([string(self.font('none'))], padding = (5, 5, 5, 5))
        if not iselement(obj):
            return string(self.font(obj))

        # this element is UNKNOWN, therefore we are doing this...
        name = string(self.font('{%s}' % obj.name).mul(red))
        holes = []
        for index, hole in enumerate(obj.holes):
            if isinstance(hole, dot):
                holes.append(self.layout_dot(obj, index, context))
            if isinstance(hole, star):
                frames = self.layout_star(obj, index, context)
                holes.append(group(delimit(frames, yglue, 4,0),
                    padding = (5, 5, 5, 5),
                ))

        return group(delimit([name] + holes, yglue, 0, 0)
        )