home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / Color.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  4.8 KB  |  248 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Color implements Serializable {
  6.    public static final Color white = new Color(255, 255, 255);
  7.    public static final Color lightGray = new Color(192, 192, 192);
  8.    public static final Color gray = new Color(128, 128, 128);
  9.    public static final Color darkGray = new Color(64, 64, 64);
  10.    public static final Color black = new Color(0, 0, 0);
  11.    public static final Color red = new Color(255, 0, 0);
  12.    public static final Color pink = new Color(255, 175, 175);
  13.    public static final Color orange = new Color(255, 200, 0);
  14.    public static final Color yellow = new Color(255, 255, 0);
  15.    public static final Color green = new Color(0, 255, 0);
  16.    public static final Color magenta = new Color(255, 0, 255);
  17.    public static final Color cyan = new Color(0, 255, 255);
  18.    public static final Color blue = new Color(0, 0, 255);
  19.    private transient int pData;
  20.    int value;
  21.    private static final long serialVersionUID = 118526816881161077L;
  22.    private static final double FACTOR = 0.7000000000000001;
  23.  
  24.    private static void testColorValueRange(int var0, int var1, int var2) {
  25.       boolean var3 = false;
  26.       String var4 = "";
  27.       if (var0 < 0 || var0 > 255) {
  28.          var3 = true;
  29.          var4 = var4 + " Red";
  30.       }
  31.  
  32.       if (var1 < 0 || var1 > 255) {
  33.          var3 = true;
  34.          var4 = var4 + " Green";
  35.       }
  36.  
  37.       if (var2 < 0 || var2 > 255) {
  38.          var3 = true;
  39.          var4 = var4 + " Blue";
  40.       }
  41.  
  42.       if (var3) {
  43.          throw new IllegalArgumentException("Color parameter outside of expected range:" + var4);
  44.       }
  45.    }
  46.  
  47.    private static void testColorValueRange(float var0, float var1, float var2) {
  48.       boolean var3 = false;
  49.       String var4 = "";
  50.       if ((double)var0 < (double)0.0F || (double)var0 > (double)1.0F) {
  51.          var3 = true;
  52.          var4 = var4 + " Red";
  53.       }
  54.  
  55.       if ((double)var1 < (double)0.0F || (double)var1 > (double)1.0F) {
  56.          var3 = true;
  57.          var4 = var4 + " Green";
  58.       }
  59.  
  60.       if ((double)var2 < (double)0.0F || (double)var2 > (double)1.0F) {
  61.          var3 = true;
  62.          var4 = var4 + " Blue";
  63.       }
  64.  
  65.       if (var3) {
  66.          throw new IllegalArgumentException("Color parameter outside of expected range:" + var4);
  67.       }
  68.    }
  69.  
  70.    public Color(int var1, int var2, int var3) {
  71.       this((var1 & 255) << 16 | (var2 & 255) << 8 | var3 & 255);
  72.       testColorValueRange(var1, var2, var3);
  73.    }
  74.  
  75.    public Color(int var1) {
  76.       this.value = -16777216 | var1;
  77.    }
  78.  
  79.    public Color(float var1, float var2, float var3) {
  80.       this((int)(var1 * 255.0F), (int)(var2 * 255.0F), (int)(var3 * 255.0F));
  81.       testColorValueRange(var1, var2, var3);
  82.    }
  83.  
  84.    public int getRed() {
  85.       return this.getRGB() >> 16 & 255;
  86.    }
  87.  
  88.    public int getGreen() {
  89.       return this.getRGB() >> 8 & 255;
  90.    }
  91.  
  92.    public int getBlue() {
  93.       return this.getRGB() & 255;
  94.    }
  95.  
  96.    public int getRGB() {
  97.       return this.value;
  98.    }
  99.  
  100.    public Color brighter() {
  101.       return new Color(Math.min((int)((double)this.getRed() * 1.4285714285714284), 255), Math.min((int)((double)this.getGreen() * 1.4285714285714284), 255), Math.min((int)((double)this.getBlue() * 1.4285714285714284), 255));
  102.    }
  103.  
  104.    public Color darker() {
  105.       return new Color(Math.max((int)((double)this.getRed() * 0.7000000000000001), 0), Math.max((int)((double)this.getGreen() * 0.7000000000000001), 0), Math.max((int)((double)this.getBlue() * 0.7000000000000001), 0));
  106.    }
  107.  
  108.    public int hashCode() {
  109.       return this.value;
  110.    }
  111.  
  112.    public boolean equals(Object var1) {
  113.       return var1 instanceof Color && ((Color)var1).value == this.value;
  114.    }
  115.  
  116.    public String toString() {
  117.       return this.getClass().getName() + "[r=" + this.getRed() + ",g=" + this.getGreen() + ",b=" + this.getBlue() + "]";
  118.    }
  119.  
  120.    public static Color decode(String var0) throws NumberFormatException {
  121.       Integer var1 = Integer.decode(var0);
  122.       int var2 = var1;
  123.       return new Color(var2 >> 16 & 255, var2 >> 8 & 255, var2 & 255);
  124.    }
  125.  
  126.    public static Color getColor(String var0) {
  127.       return getColor(var0, (Color)null);
  128.    }
  129.  
  130.    public static Color getColor(String var0, Color var1) {
  131.       Integer var2 = Integer.getInteger(var0);
  132.       if (var2 == null) {
  133.          return var1;
  134.       } else {
  135.          int var3 = var2;
  136.          return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  137.       }
  138.    }
  139.  
  140.    public static Color getColor(String var0, int var1) {
  141.       Integer var2 = Integer.getInteger(var0);
  142.       int var3 = var2 != null ? var2 : var1;
  143.       return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  144.    }
  145.  
  146.    public static int HSBtoRGB(float var0, float var1, float var2) {
  147.       int var3 = 0;
  148.       int var4 = 0;
  149.       int var5 = 0;
  150.       if (var1 == 0.0F) {
  151.          var3 = var4 = var5 = (int)(var2 * 255.0F);
  152.       } else {
  153.          double var6 = ((double)var0 - Math.floor((double)var0)) * (double)6.0F;
  154.          double var8 = var6 - Math.floor(var6);
  155.          double var10 = (double)var2 * ((double)1.0F - (double)var1);
  156.          double var12 = (double)var2 * ((double)1.0F - (double)var1 * var8);
  157.          double var14 = (double)var2 * ((double)1.0F - (double)var1 * ((double)1.0F - var8));
  158.          switch ((int)var6) {
  159.             case 0:
  160.                var3 = (int)(var2 * 255.0F);
  161.                var4 = (int)(var14 * (double)255.0F);
  162.                var5 = (int)(var10 * (double)255.0F);
  163.                break;
  164.             case 1:
  165.                var3 = (int)(var12 * (double)255.0F);
  166.                var4 = (int)(var2 * 255.0F);
  167.                var5 = (int)(var10 * (double)255.0F);
  168.                break;
  169.             case 2:
  170.                var3 = (int)(var10 * (double)255.0F);
  171.                var4 = (int)(var2 * 255.0F);
  172.                var5 = (int)(var14 * (double)255.0F);
  173.                break;
  174.             case 3:
  175.                var3 = (int)(var10 * (double)255.0F);
  176.                var4 = (int)(var12 * (double)255.0F);
  177.                var5 = (int)(var2 * 255.0F);
  178.                break;
  179.             case 4:
  180.                var3 = (int)(var14 * (double)255.0F);
  181.                var4 = (int)(var10 * (double)255.0F);
  182.                var5 = (int)(var2 * 255.0F);
  183.                break;
  184.             case 5:
  185.                var3 = (int)(var2 * 255.0F);
  186.                var4 = (int)(var10 * (double)255.0F);
  187.                var5 = (int)(var12 * (double)255.0F);
  188.          }
  189.       }
  190.  
  191.       return -16777216 | var3 << 16 | var4 << 8 | var5;
  192.    }
  193.  
  194.    public static float[] RGBtoHSB(int var0, int var1, int var2, float[] var3) {
  195.       if (var3 == null) {
  196.          var3 = new float[3];
  197.       }
  198.  
  199.       int var7 = var0 > var1 ? var0 : var1;
  200.       if (var2 > var7) {
  201.          var7 = var2;
  202.       }
  203.  
  204.       int var8 = var0 < var1 ? var0 : var1;
  205.       if (var2 < var8) {
  206.          var8 = var2;
  207.       }
  208.  
  209.       float var6 = (float)var7 / 255.0F;
  210.       float var5;
  211.       if (var7 != 0) {
  212.          var5 = (float)(var7 - var8) / (float)var7;
  213.       } else {
  214.          var5 = 0.0F;
  215.       }
  216.  
  217.       float var4;
  218.       if (var5 == 0.0F) {
  219.          var4 = 0.0F;
  220.       } else {
  221.          float var9 = (float)(var7 - var0) / (float)(var7 - var8);
  222.          float var10 = (float)(var7 - var1) / (float)(var7 - var8);
  223.          float var11 = (float)(var7 - var2) / (float)(var7 - var8);
  224.          if (var0 == var7) {
  225.             var4 = var11 - var10;
  226.          } else if (var1 == var7) {
  227.             var4 = 2.0F + var9 - var11;
  228.          } else {
  229.             var4 = 4.0F + var10 - var9;
  230.          }
  231.  
  232.          var4 /= 6.0F;
  233.          if (var4 < 0.0F) {
  234.             ++var4;
  235.          }
  236.       }
  237.  
  238.       var3[0] = var4;
  239.       var3[1] = var5;
  240.       var3[2] = var6;
  241.       return var3;
  242.    }
  243.  
  244.    public static Color getHSBColor(float var0, float var1, float var2) {
  245.       return new Color(HSBtoRGB(var0, var1, var2));
  246.    }
  247. }
  248.