code: def decorate(self, pos, widget, is_first=True):
          
          line = None
          if pos is not None:
              original_widget = widget
              cols = self._construct_spacer(pos, [])
  
              # Construct arrow leading from parent here,
              # if we have a parent and indentation is turned on
              if self._indent > 0:
                  if is_first:
                      indent = self._construct_first_indent(pos)
                      if indent is not None:
                          cols = cols + indent
                  else:
                      parent = self._tree.parent_position(pos)
                      if self._indent > 0 and parent is not None:
                          parent_sib = self._tree.next_sibling_position(pos)
                          draw_vbar = parent_sib is not None
                          void = urwid.AttrMap(urwid.SolidFill(' '),
                                               self._arrow_att)
                          if self._childbar_offset > 0:
                              cols.append((self._childbar_offset, void))
                          if draw_vbar:
                              barw = urwid.SolidFill(self._arrow_vbar_char)
                              bar = urwid.AttrMap(
                                  barw, self._arrow_vbar_att or self._arrow_att)
                              rspace_width = self._indent - \
                                  1 - self._childbar_offset
                              cols.append((1, bar))
                              cols.append((rspace_width, void))
                          else:
                              cols.append((self._indent, void))
  
              # add the original widget for this line
              cols.append(original_widget)
              # construct a Columns, defining all spacer as Box widgets
              line = urwid.Columns(cols, box_columns=range(len(cols))[:-1])
          return line
docs: builds a list element for given position in the tree.
          It consists of the original widget taken from the Tree and some
          decoration columns depending on the existence of parent and sibling
          positions. The result is a urwid.Columns widget.