Ejemplo n.º 1
0
  def getCustomIcon(self,parameterList,w,h):
    """
    there are six positional parameters:
    fill color,fill opacity, outline color, outline opacity,
    outline width (default 8) and corner radius (default 22)
    to use default value, just don't fill in the positional parameter
    ( len(parameter) == 0 )
    USAGE:
    corner radius: default=22, 0 does right angle corners
    

    EXAMPLE: generic:green;1.0;blue;0.5;10;15
    """
    # check if the list has proper length
    if len(parameterList) != 6:
      return None
    semicolonSepList = parameterList
    # process the positional parameters
    if len(semicolonSepList[0]):
      fillColorString = semicolonSepList[0]
    else:
      fillColorString = None

    if len(semicolonSepList[1]):
      fillAlpha = float(semicolonSepList[1])
    else:
      fillAlpha = 1.0

    if len(semicolonSepList[2]):
      outlineColorString = semicolonSepList[2]
    else:
      outlineColorString = None

    if len(semicolonSepList[3]):
      outlineAlpha = float(semicolonSepList[3])
    else:
      outlineAlpha = 1.0

    if len(semicolonSepList[4]):
      outlineWidth = int(semicolonSepList[4])
    else:
      outlineWidth = 4

    if len(semicolonSepList[5]):
      cornerRadius = int(semicolonSepList[5])
    else:
      cornerRadius = 22

    # parse the colors (if defined)

    if fillColorString:
      fillColor = Color("fill", (fillColorString,fillAlpha))
      fillColorRGBATuple = fillColor.getCairoColor()
    else:
      fillColorRGBATuple = self.buttonFillColor


    if outlineColorString:
      outlineColor = Color("outline", (outlineColorString,outlineAlpha))
      outlineColorRGBATuple = outlineColor.getCairoColor()
    else:
      outlineColorRGBATuple = self.buttonOutlineColor

    # apply the alpha values
    try:
      (r,g,b,a) = fillColorRGBATuple
      fillColorRGBATuple = (r,g,b,fillAlpha)
    except Exception, e:
      print("** wrong fill color code or name: %s" % fillColorString)
      print("** exception: %s" % e)
      fillColorRGBATuple = self.buttonFillColor