'return the style string.  style is generated from the
GraphicsContext and rgbFace'

def _get_style_dict(self, gc, rgbFace):

    attrib = {}
    forced_alpha = gc.get_forced_alpha()
    if (gc.get_hatch() is not None):
        attrib[u'fill'] = (u'url(#%s)' % self._get_hatch(gc, rgbFace))
        if ((rgbFace is not None) and (len(rgbFace) == 4) and (rgbFace[3] != 1.0) and (not forced_alpha)):
            attrib[u'fill-opacity'] = short_float_fmt(rgbFace[3])
    elif (rgbFace is None):
        attrib[u'fill'] = u'none'
    else:
        if (tuple(rgbFace[:3]) != (0, 0, 0)):
            attrib[u'fill'] = rgb2hex(rgbFace)
        if ((len(rgbFace) == 4) and (rgbFace[3] != 1.0) and (not forced_alpha)):
            attrib[u'fill-opacity'] = short_float_fmt(rgbFace[3])
    if (forced_alpha and (gc.get_alpha() != 1.0)):
        attrib[u'opacity'] = short_float_fmt(gc.get_alpha())
    (offset, seq) = gc.get_dashes()
    if (seq is not None):
        attrib[u'stroke-dasharray'] = u','.join([short_float_fmt(val) for val in seq])
        attrib[u'stroke-dashoffset'] = short_float_fmt(float(offset))
    linewidth = gc.get_linewidth()
    if linewidth:
        rgb = gc.get_rgb()
        attrib[u'stroke'] = rgb2hex(rgb)
        if ((not forced_alpha) and (rgb[3] != 1.0)):
            attrib[u'stroke-opacity'] = short_float_fmt(rgb[3])
        if (linewidth != 1.0):
            attrib[u'stroke-width'] = short_float_fmt(linewidth)
        if (gc.get_joinstyle() != u'round'):
            attrib[u'stroke-linejoin'] = gc.get_joinstyle()
        if (gc.get_capstyle() != u'butt'):
            attrib[u'stroke-linecap'] = _capstyle_d[gc.get_capstyle()]
    return attrib
