home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.awt.windows; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; import java.awt.image.ImageObserver; import java.io.CharConversionException; import sun.awt.CharsetString; import sun.awt.FontDescriptor; import sun.awt.PlatformFont; import sun.awt.image.Image; import sun.awt.image.ImageRepresentation; import sun.awt.image.OffScreenImageSource; public class WGraphics extends Graphics { int pData; Color foreground; Font font; int originX; int originY; private Image image; private native void createFromComponent(WComponentPeer var1); private native void createFromGraphics(WGraphics var1); private native void createFromPrintJob(WPrintJob var1); private native void createFromHDC(int var1); private native void imageCreate(ImageRepresentation var1); private native void pSetFont(Font var1); private native void pSetForeground(int var1); WGraphics(WPrintJob var1) { this.createFromPrintJob(var1); } WGraphics(WGraphics var1) { this.createFromGraphics(var1); } WGraphics(WComponentPeer var1) { this.createFromComponent(var1); } WGraphics(int var1) { this.createFromHDC(var1); } public WGraphics(WImage var1) { OffScreenImageSource var2 = (OffScreenImageSource)((Image)var1).getSource(); this.imageCreate(var2.getImageRep()); this.image = var1; } public Graphics create() { WGraphics var1 = new WGraphics(this); var1.foreground = this.foreground; var1.font = this.font; var1.originX = this.originX; var1.originY = this.originY; var1.image = this.image; return var1; } public void translate(int var1, int var2) { this.originX += var1; this.originY += var2; } public native void _dispose(); public native void dispose(); public void finalize() { super.finalize(); this._dispose(); } public void setFont(Font var1) { if (var1 != null && this.font != var1) { this.font = var1; this.pSetFont(var1); } } public Font getFont() { return this.font; } public FontMetrics getFontMetrics(Font var1) { return WFontMetrics.getFontMetrics(var1); } public void setColor(Color var1) { if (var1 != null && var1 != this.foreground) { this.foreground = var1; this.pSetForeground(var1.getRGB()); } } public Color getColor() { return this.foreground; } public native void setPaintMode(); public native void setXORMode(Color var1); public native Rectangle getClipBounds(); private native void changeClip(int var1, int var2, int var3, int var4, boolean var5); private native void removeClip(); public void clipRect(int var1, int var2, int var3, int var4) { this.changeClip(var1, var2, var3, var4, false); } public void setClip(int var1, int var2, int var3, int var4) { this.changeClip(var1, var2, var3, var4, true); } public Shape getClip() { return this.getClipBounds(); } public void setClip(Shape var1) { if (var1 == null) { this.removeClip(); } else if (var1 instanceof Rectangle) { Rectangle var2 = (Rectangle)var1; this.changeClip(var2.x, var2.y, var2.width, var2.height, true); } else { throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects"); } } public native void clearRect(int var1, int var2, int var3, int var4); public native void fillRect(int var1, int var2, int var3, int var4); public native void drawRect(int var1, int var2, int var3, int var4); public void drawString(String var1, int var2, int var3) { this.drawChars(var1.toCharArray(), 0, var1.length(), var2, var3); } public void drawChars(char[] var1, int var2, int var3, int var4, int var5) { PlatformFont var6 = (PlatformFont)this.font.getPeer(); if (var6.mightHaveMultiFontMetrics()) { this.drawMFChars(var1, var2, var3, var4, var5, this.font, var6); } else { this.drawSFChars(var1, var2, var3, var4, var5); } } private native void drawSFChars(char[] var1, int var2, int var3, int var4, int var5); private void drawMFChars(char[] var1, int var2, int var3, int var4, int var5, Font var6, PlatformFont var7) { if (var3 != 0) { CharsetString[] var8 = var7.makeMultiCharsetString(var1, var2, var3); byte[] var9 = null; int var10 = 0; int var11 = 0; for(int var12 = 0; var12 < var8.length; ++var12) { CharsetString var13 = var8[var12]; if (WFontMetrics.needsConversion(var6, var13.fontDescriptor)) { try { int var14 = var13.fontDescriptor.fontCharset.getMaxBytesPerChar() * var13.length; if (var14 > var10) { var10 = var14; var9 = new byte[var14]; } int var15 = var13.fontDescriptor.fontCharset.convert(var13.charsetChars, var13.offset, var13.offset + var13.length, var9, 0, var9.length); var11 += this.drawMFCharsConvertedSegment(var6, var13.fontDescriptor, var9, var15, var4 + var11, var5); } catch (CharConversionException var16) { } } else { var11 += this.drawMFCharsSegment(var6, var13.fontDescriptor, var13.charsetChars, var13.offset, var13.length, var4 + var11, var5); } } } } private native int drawMFCharsSegment(Font var1, FontDescriptor var2, char[] var3, int var4, int var5, int var6, int var7); private native int drawMFCharsConvertedSegment(Font var1, FontDescriptor var2, byte[] var3, int var4, int var5, int var6); public native void drawBytes(byte[] var1, int var2, int var3, int var4, int var5); public native void drawLine(int var1, int var2, int var3, int var4); public boolean drawImage(java.awt.Image var1, int var2, int var3, ImageObserver var4) { WImage var5 = (WImage)var1; if (((Image)var5).hasError()) { if (var4 != null) { var4.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var6 = var5.getImageRep(); return var6.drawImage(this, var2, var3, (Color)null, var4); } } public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) { if (var4 != 0 && var5 != 0) { WImage var7 = (WImage)var1; if (((Image)var7).hasError()) { if (var6 != null) { var6.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var8 = var7.getImageRep(); return var8.drawScaledImage(this, var2, var3, var4, var5, (Color)null, var6); } } else { return true; } } public boolean drawImage(java.awt.Image var1, int var2, int var3, Color var4, ImageObserver var5) { WImage var6 = (WImage)var1; if (((Image)var6).hasError()) { if (var5 != null) { var5.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var7 = var6.getImageRep(); return var7.drawImage(this, var2, var3, var4, var5); } } public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) { if (var4 != 0 && var5 != 0) { WImage var8 = (WImage)var1; if (((Image)var8).hasError()) { if (var7 != null) { var7.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var9 = var8.getImageRep(); return var9.drawScaledImage(this, var2, var3, var4, var5, var6, var7); } } else { return true; } } public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) { if (var2 != var4 && var3 != var5) { WImage var11 = (WImage)var1; if (((Image)var11).hasError()) { if (var10 != null) { var10.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var12 = var11.getImageRep(); return var12.drawStretchImage(this, var2, var3, var4, var5, var6, var7, var8, var9, (Color)null, var10); } } else { return true; } } public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, ImageObserver var11) { if (var2 != var4 && var3 != var5) { WImage var12 = (WImage)var1; if (((Image)var12).hasError()) { if (var11 != null) { var11.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var13 = var12.getImageRep(); return var13.drawStretchImage(this, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); } } else { return true; } } public native void copyArea(int var1, int var2, int var3, int var4, int var5, int var6); public native void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6); public native void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6); public native void drawPolygon(int[] var1, int[] var2, int var3); public native void drawPolyline(int[] var1, int[] var2, int var3); public native void fillPolygon(int[] var1, int[] var2, int var3); public native void drawOval(int var1, int var2, int var3, int var4); public native void fillOval(int var1, int var2, int var3, int var4); public native void drawArc(int var1, int var2, int var3, int var4, int var5, int var6); public native void fillArc(int var1, int var2, int var3, int var4, int var5, int var6); public String toString() { return this.getClass().getName() + "[" + this.originX + "," + this.originY + "]"; } native void print(WComponentPeer var1); public native void close(WPrintJob var1); }