docs: def hexcolor(color):
      " returns hex color given a tuple, wx.Color, or X11 named color"
      # first, if this is a hex color already, return!
      # Python 3: needs rewrite for str/unicode change
      if isinstance(color, six.string_types):
          if color[0] == '#' and len(color)==7:
              return color.lower()
  
      # now, get color to an rgb tuple
      rgb = (0,0,0)
      if isinstance(color, tuple):
          rgb = color
      elif isinstance(color, list):
          rgb = tuple(color)
      elif isinstance(color, six.string_types):
          c = color.lower()
          if c.find(' ')>-1:    c = c.replace(' ','')
          if c.find('gray')>-1: c = c.replace('gray','grey')
          if c in x11_colors:
              rgb = x11_colors[c]
      else:
          try:
              rgb = color.Red(), color.Green(), color.Blue()
          except:
              pass
  
      # convert rgb to hex color
      col = '#%02x%02x%02x' % (rgb)
      return col.lower()