Class ExtendedColor

    • Constructor Summary

      Constructors 
      Constructor Description
      ExtendedColor()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract byte[] getARGB()  
      java.lang.String getARGBHex()  
      abstract short getIndex()  
      abstract byte[] getRGB()  
      byte[] getRGBWithTint()  
      abstract int getTheme()  
      abstract double getTint()
      Specifies the tint value applied to the ctColor.
      abstract boolean isAuto()  
      abstract boolean isIndexed()  
      abstract boolean isRGB()  
      abstract boolean isThemed()  
      void setARGBHex​(java.lang.String argb)
      Sets the ARGB value from hex format, eg FF0077FF.
      abstract void setRGB​(byte[] rgb)
      Sets the Red Green Blue or Alpha Red Green Blue
      abstract void setTint​(double tint)
      Specifies the tint value applied to the ctColor.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExtendedColor

        public ExtendedColor()
    • Method Detail

      • isAuto

        public abstract boolean isAuto()
        Returns:
        true if the color is automatic
      • isIndexed

        public abstract boolean isIndexed()
        Returns:
        true if the color is indexed
      • isRGB

        public abstract boolean isRGB()
        Returns:
        true if the color is RGB / ARGB
      • isThemed

        public abstract boolean isThemed()
        Returns:
        true if the color is from a Theme
      • getIndex

        public abstract short getIndex()
        Returns:
        Indexed Color index value, if isIndexed() is true
      • getTheme

        public abstract int getTheme()
        Returns:
        Index of Theme color, if isThemed() is true
      • getRGB

        public abstract byte[] getRGB()
        Returns:
        Standard Red Green Blue ctColor value (RGB) bytes. If there was an A (Alpha) value, it will be stripped.
      • getARGB

        public abstract byte[] getARGB()
        Returns:
        Standard Alpha Red Green Blue ctColor value (ARGB) bytes.
      • setRGB

        public abstract void setRGB​(byte[] rgb)
        Sets the Red Green Blue or Alpha Red Green Blue
        Parameters:
        rgb - bytes
      • getRGBWithTint

        public byte[] getRGBWithTint()
        Returns:
        Standard Red Green Blue ctColor value (RGB) bytes with applied tint. Alpha values are ignored.
      • getARGBHex

        public java.lang.String getARGBHex()
        Returns:
        the ARGB value in hex string format, eg FF00FF00. Works for both regular and indexed colours.
      • setARGBHex

        public void setARGBHex​(java.lang.String argb)
        Sets the ARGB value from hex format, eg FF0077FF. Only works for regular (non-indexed) colours
        Parameters:
        argb - color ARGB hex string
      • getTint

        public abstract double getTint()
        Specifies the tint value applied to the ctColor.

        If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.

        The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.

        In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.

        Here are some examples of how to apply tint to ctColor:
         If (tint < 0)
         Lum' = Lum * (1.0 + tint)
        
         For example: Lum = 200; tint = -0.5; Darken 50%
         Lum' = 200 * (0.5) => 100
         For example: Lum = 200; tint = -1.0; Darken 100% (make black)
         Lum' = 200 * (1.0-1.0) => 0
         If (tint > 0)
         Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint))
         For example: Lum = 100; tint = 0.75; Lighten 75%
        
         Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75))
         = 100 * .25 + (255 - 255 * .25)
         = 25 + (255 - 63) = 25 + 192 = 217
         For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
         Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1))
         = 100 * 0 + (255 - 255 * 0)
         = 0 + (255 - 0) = 255
         
        Returns:
        the tint value
      • setTint

        public abstract void setTint​(double tint)
        Specifies the tint value applied to the ctColor.

        If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.

        The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.

        In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.

        Here are some examples of how to apply tint to ctColor:
         If (tint < 0)
         Lum' = Lum * (1.0 + tint)
        
         For example: Lum = 200; tint = -0.5; Darken 50%
         Lum' = 200 * (0.5) => 100
         For example: Lum = 200; tint = -1.0; Darken 100% (make black)
         Lum' = 200 * (1.0-1.0) => 0
         If (tint > 0)
         Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint))
         For example: Lum = 100; tint = 0.75; Lighten 75%
        
         Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75))
         = 100 * .25 + (255 - 255 * .25)
         = 25 + (255 - 63) = 25 + 192 = 217
         For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
         Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1))
         = 100 * 0 + (255 - 255 * 0)
         = 0 + (255 - 0) = 255
         
        Parameters:
        tint - the tint value