def METHOD_NAME(self, label, x, y, offsets=None, xspacing=4, yspacing=4):
    '''Draw a string at the specified point.
       offsets is an optional tuple specifying where the string will
       be drawn relative to the coordinates passed in;
       for instance, if offsets are (-1, -1) the string will be
       drawn with the bottom right edge at the given x, y.
    '''
    fontname = "Sans Italic 12"
    layout = PangoCairo.create_layout(self.ctx)
    desc = Pango.font_description_from_string(fontname)
    layout.set_font_description( desc)
    layout.set_text(label, -1)
    if offsets:
        width, height = layout.get_pixel_size()
        # # pango draws text with the upper left corner at x, y.
        # # So that's an offset of (1, 1). Adjust if offsets are different.
        # # XXX Cairo may do things differently.
        # xbearing, ybearing, width, height, xadvance, yadvance = \
        #                                   self.ctx.text_extents(label)
        if offsets[0] == 0:
            x -= int(width/2)
        elif offsets[0] != 1:
            x += int(width * offsets[0])
            if offsets[0] < 1:
                xspacing = -xspacing
        # Weirdly, height is quite a bit taller than the text height
        height *= .55
        if offsets[1] == 0:
            y -= int(height/2)
        else:
            y -= int(height * (offsets[1] + .5))
            if offsets[1] < 1:
                yspacing = -yspacing
    # Will the text be off the screen?
    if x < 0:
        x += width
        xspacing = -xspacing
    elif x + width > self.width:
        x -= width
        xspacing = -xspacing
    if y < 0:
        y += height
        yspacing = -yspacing
    elif y + height > self.height:
        y -= height
        yspacing = -yspacing
    self.ctx.move_to(x + xspacing, y + yspacing)
    PangoCairo.show_layout (self.ctx, layout)
    # self.ctx.show_text(label)