home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / awt / Color.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.3 KB  |  197 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public final 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.    private int value;
  21.    private static final double FACTOR = 0.7000000000000001;
  22.  
  23.    public Color(int var1, int var2, int var3) {
  24.       this((var1 & 255) << 16 | (var2 & 255) << 8 | var3 & 255);
  25.    }
  26.  
  27.    public Color(int var1) {
  28.       this.value = -16777216 | var1;
  29.    }
  30.  
  31.    public Color(float var1, float var2, float var3) {
  32.       this((int)(var1 * 255.0F), (int)(var2 * 255.0F), (int)(var3 * 255.0F));
  33.    }
  34.  
  35.    public int getRed() {
  36.       return this.value >> 16 & 255;
  37.    }
  38.  
  39.    public int getGreen() {
  40.       return this.value >> 8 & 255;
  41.    }
  42.  
  43.    public int getBlue() {
  44.       return this.value & 255;
  45.    }
  46.  
  47.    public int getRGB() {
  48.       return this.value;
  49.    }
  50.  
  51.    public Color brighter() {
  52.       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));
  53.    }
  54.  
  55.    public Color darker() {
  56.       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));
  57.    }
  58.  
  59.    public int hashCode() {
  60.       return this.value;
  61.    }
  62.  
  63.    public boolean equals(Object var1) {
  64.       if (var1 instanceof Color) {
  65.          return this.value == ((Color)var1).value;
  66.       } else {
  67.          return false;
  68.       }
  69.    }
  70.  
  71.    public String toString() {
  72.       return this.getClass().getName() + "[r=" + this.getRed() + ",g=" + this.getGreen() + ",b=" + this.getBlue() + "]";
  73.    }
  74.  
  75.    public static Color getColor(String var0) {
  76.       return getColor(var0, (Color)null);
  77.    }
  78.  
  79.    public static Color getColor(String var0, Color var1) {
  80.       Integer var2 = Integer.getInteger(var0);
  81.       if (var2 == null) {
  82.          return var1;
  83.       } else {
  84.          int var3 = var2;
  85.          return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  86.       }
  87.    }
  88.  
  89.    public static Color getColor(String var0, int var1) {
  90.       Integer var2 = Integer.getInteger(var0);
  91.       int var3 = var2 != null ? var2 : var1;
  92.       return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  93.    }
  94.  
  95.    public static int HSBtoRGB(float var0, float var1, float var2) {
  96.       int var3 = 0;
  97.       int var4 = 0;
  98.       int var5 = 0;
  99.       if (var1 == 0.0F) {
  100.          var3 = var4 = var5 = (int)(var2 * 255.0F);
  101.       } else {
  102.          double var6 = (double)var0 * (double)6.0F;
  103.          double var8 = var6 - Math.floor(var6);
  104.          double var10 = (double)var2 * ((double)1.0F - (double)var1);
  105.          double var12 = (double)var2 * ((double)1.0F - (double)var1 * var8);
  106.          double var14 = (double)var2 * ((double)1.0F - (double)var1 * ((double)1.0F - var8));
  107.          switch ((int)var6) {
  108.             case 0:
  109.                var3 = (int)(var2 * 255.0F);
  110.                var4 = (int)(var14 * (double)255.0F);
  111.                var5 = (int)(var10 * (double)255.0F);
  112.                break;
  113.             case 1:
  114.                var3 = (int)(var12 * (double)255.0F);
  115.                var4 = (int)(var2 * 255.0F);
  116.                var5 = (int)(var10 * (double)255.0F);
  117.                break;
  118.             case 2:
  119.                var3 = (int)(var10 * (double)255.0F);
  120.                var4 = (int)(var2 * 255.0F);
  121.                var5 = (int)(var14 * (double)255.0F);
  122.                break;
  123.             case 3:
  124.                var3 = (int)(var10 * (double)255.0F);
  125.                var4 = (int)(var12 * (double)255.0F);
  126.                var5 = (int)(var2 * 255.0F);
  127.                break;
  128.             case 4:
  129.                var3 = (int)(var14 * (double)255.0F);
  130.                var4 = (int)(var10 * (double)255.0F);
  131.                var5 = (int)(var2 * 255.0F);
  132.                break;
  133.             case 5:
  134.                var3 = (int)(var2 * 255.0F);
  135.                var4 = (int)(var10 * (double)255.0F);
  136.                var5 = (int)(var12 * (double)255.0F);
  137.          }
  138.       }
  139.  
  140.       return -16777216 | var3 << 16 | var4 << 8 | var5;
  141.    }
  142.  
  143.    public static float[] RGBtoHSB(int var0, int var1, int var2, float[] var3) {
  144.       if (var3 == null) {
  145.          var3 = new float[3];
  146.       }
  147.  
  148.       int var7 = var0 > var1 ? var0 : var1;
  149.       if (var2 > var7) {
  150.          var7 = var2;
  151.       }
  152.  
  153.       int var8 = var0 < var1 ? var0 : var1;
  154.       if (var2 < var8) {
  155.          var8 = var2;
  156.       }
  157.  
  158.       float var6 = (float)var7 / 255.0F;
  159.       float var5;
  160.       if (var7 != 0) {
  161.          var5 = (float)(var7 - var8) / (float)var7;
  162.       } else {
  163.          var5 = 0.0F;
  164.       }
  165.  
  166.       float var4;
  167.       if (var5 == 0.0F) {
  168.          var4 = 0.0F;
  169.       } else {
  170.          float var9 = (float)(var7 - var0) / (float)(var7 - var8);
  171.          float var10 = (float)(var7 - var1) / (float)(var7 - var8);
  172.          float var11 = (float)(var7 - var2) / (float)(var7 - var8);
  173.          if (var0 == var7) {
  174.             var4 = var11 - var10;
  175.          } else if (var1 == var7) {
  176.             var4 = 2.0F + var9 - var11;
  177.          } else {
  178.             var4 = 4.0F + var10 - var9;
  179.          }
  180.  
  181.          var4 /= 6.0F;
  182.          if (var4 < 0.0F) {
  183.             ++var4;
  184.          }
  185.       }
  186.  
  187.       var3[0] = var4;
  188.       var3[1] = var5;
  189.       var3[2] = var6;
  190.       return var3;
  191.    }
  192.  
  193.    public static Color getHSBColor(float var0, float var1, float var2) {
  194.       return new Color(HSBtoRGB(var0, var1, var2));
  195.    }
  196. }
  197.