home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / awt / windows / WCustomCursor.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.4 KB  |  64 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Image;
  5. import java.awt.Point;
  6. import java.awt.image.BufferedImage;
  7. import java.awt.image.DataBuffer;
  8. import java.awt.image.DataBufferInt;
  9. import java.awt.image.ImageObserver;
  10. import java.awt.image.Raster;
  11. import java.awt.image.WritableRaster;
  12. import sun.awt.CustomCursor;
  13. import sun.awt.image.ImageRepresentation;
  14. import sun.awt.image.IntegerComponentRaster;
  15.  
  16. public class WCustomCursor extends CustomCursor {
  17.    public WCustomCursor(Image var1, Point var2, String var3) throws IndexOutOfBoundsException {
  18.       super(var1, var2, var3);
  19.    }
  20.  
  21.    protected void createNativeCursor(Image var1, int[] var2, int var3, int var4, int var5, int var6) {
  22.       BufferedImage var7 = new BufferedImage(var3, var4, 1);
  23.       Graphics var8 = var7.getGraphics();
  24.  
  25.       try {
  26.          if (var1 instanceof WImage) {
  27.             ImageRepresentation var9 = ((WImage)var1).getImageRep();
  28.             var9.reconstruct(32);
  29.          }
  30.  
  31.          var8.drawImage(var1, 0, 0, var3, var4, (ImageObserver)null);
  32.       } finally {
  33.          var8.dispose();
  34.       }
  35.  
  36.       WritableRaster var19 = var7.getRaster();
  37.       DataBuffer var10 = ((Raster)var19).getDataBuffer();
  38.       int[] var11 = ((DataBufferInt)var10).getData();
  39.       byte[] var12 = new byte[var3 * var4 / 8];
  40.       int var13 = var2.length;
  41.  
  42.       for(int var14 = 0; var14 < var13; ++var14) {
  43.          int var15 = var14 / 8;
  44.          int var16 = 1 << 7 - var14 % 8;
  45.          if ((var2[var14] & -16777216) == 0) {
  46.             var12[var15] = (byte)(var12[var15] | var16);
  47.          }
  48.       }
  49.  
  50.       int var20 = ((Raster)var19).getWidth();
  51.       if (var19 instanceof IntegerComponentRaster) {
  52.          var20 = ((IntegerComponentRaster)var19).getScanlineStride();
  53.       }
  54.  
  55.       this.createCursorIndirect(((DataBufferInt)var7.getRaster().getDataBuffer()).getData(), var12, var20, ((Raster)var19).getWidth(), ((Raster)var19).getHeight(), var5, var6);
  56.    }
  57.  
  58.    private native void createCursorIndirect(int[] var1, byte[] var2, int var3, int var4, int var5, int var6, int var7);
  59.  
  60.    static native int getCursorWidth();
  61.  
  62.    static native int getCursorHeight();
  63. }
  64.