'Draw the icons in the widget.'

def draw(self):

    self.drawer.clear((self.background or self.bar.background))
    xoffset = 0
    for i in sorted(self.progs.keys()):
        self.icons_offsets[i] = (xoffset + self.padding)
        name = self.progs[i]['name']
        icon_width = self.icons_widths[name]
        self.drawer.ctx.move_to((self.offset + xoffset), icon_width)
        self.drawer.clear((self.background or self.bar.background))
        if isinstance(self.surfaces[name], base._TextBox):
            textbox = self.surfaces[name]
            textbox.layout.draw((self.padding + textbox.actual_padding), (int(((self.bar.height - textbox.layout.height) / 2.0)) + 1))
        else:
            self.drawer.ctx.set_source(self.surfaces[name])
            self.drawer.ctx.paint()
        self.drawer.draw(offsetx=(self.offset + xoffset), width=(icon_width + self.padding))
        xoffset += (icon_width + self.padding)
