def drawtree(self):
        '''
        Loop over the object, process path attribute sets, and drawlines based
        on their current contents.
        '''
        self.win.erase()
        self.line = 0
        for child, depth in self.traverse():
            child.curline = self.curline
            child.picked = self.picked
            child.expanded = self.expanded
            child.sized = self.sized
            if depth == 0:
                continue
            if self.line == self.curline:
                self.color.curline(child.name, child.picked)
                children = child.children
                name = child.name
            else:
                self.color.default(child.name, child.picked)
            if child.name in self.sized and not self.sized[child.name]:
                self.sized[child.name] = " [" + du(child.name) + "]"
            child.drawline(depth, self.line, self.win)
            self.line += 1
        self.win.refresh()
        self.mkheader(name)
        self.mkfooter(name, children)