home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.awt.windows; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.Insets; import java.awt.Paint; import java.awt.Polygon; import java.awt.Rectangle; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.security.AccessController; import sun.awt.DebugHelper; import sun.awt.image.ImageRepresentation; import sun.java2d.DeviceClipping; import sun.java2d.OutputManager; import sun.java2d.SunGraphics2D; import sun.java2d.loops.ImageData; import sun.java2d.loops.RasterOutputManager; import sun.java2d.pipe.PixelDrawPipe; import sun.java2d.pipe.PixelFillPipe; import sun.java2d.pipe.SimpleRenderPipe; import sun.java2d.pipe.SpanIterator; import sun.java2d.pipe.TextPipe; import sun.java2d.pipe.TranslateablePipe; import sun.security.action.GetPropertyAction; public class WGraphics extends SunGraphics2D implements PixelDrawPipe, PixelFillPipe, TranslateablePipe, SimpleRenderPipe, TextPipe, DeviceClipping { private static final DebugHelper dbg; static String myDevID; int pData; WComponentPeer peer; private ImageData cachedID; private Throwable constructionStackTrace; private int serialNum = -1; private boolean disposed = false; // $FF: synthetic field static Class class$sun$awt$windows$WGraphics; private synchronized native void createFromComponent(WComponentPeer var1); private synchronized native void createFromGraphics(WGraphics var1); private synchronized native void createFromPrintJob(WPrintControl var1, WPrintJob var2); private synchronized native void createFromHDC(int var1); private native void pSetFont(Font var1); private native void pSetForeground(int var1); native void setForPrinting(boolean var1); WGraphics(WPrintControl var1, WPrintJob var2) { this.createFromPrintJob(var1, var2); Dimension var3 = var2.getPageDimension(); ((SunGraphics2D)this).setDevClip(0, 0, var3.width, var3.height); } WGraphics(WComponentPeer var1) { this.createFromComponent(var1); this.peer = var1; Component var2 = (Component)var1.target; super.backgroundColor = var2.getBackground(); Dimension var3 = var2.getSize(); ((SunGraphics2D)this).setDevClip(0, 0, var3.width, var3.height); if (this.peer instanceof WPanelPeer) { Insets var4 = ((WPanelPeer)this.peer).getInsets(); ((SunGraphics2D)this).translate(-var4.left, -var4.top); super.constrainX = -var4.left; super.constrainY = -var4.top; } this.serialNum = var1.serialNum; } private native void getVisBounds(int var1, Rectangle var2); WGraphics(int var1) { this.createFromHDC(var1); Rectangle var2 = new Rectangle(); this.getVisBounds(var1, var2); ((SunGraphics2D)this).setDevClip(var2.x, var2.y, var2.width, var2.height); } public Object clone() { if (this.peer != null && this.peer.isDisposed()) { return null; } else { WGraphics var1 = (WGraphics)super.clone(); var1.pData = 0; var1.createFromGraphics(this); return var1; } } public ColorModel getDeviceColorModel() { return this.peer != null ? this.peer.getColorModel() : WToolkit.config.getColorModel(); } public void validatePipe() { RasterOutputManager.getManager().validatePipe(this); } public Rectangle getCompBounds() { if (this.peer != null && this.serialNum != this.peer.serialNum) { Dimension var1 = ((Component)this.peer.target).getSize(); ((SunGraphics2D)this).setDevClip(0, 0, var1.width, var1.height); this.serialNum = this.peer.serialNum; } return super.getCompBounds(); } public native void setOrigin(int var1, int var2); public GraphicsConfiguration getDeviceConfiguration() { if (this.peer != null) { GraphicsConfiguration var1 = this.peer.getGraphicsConfiguration(); if (var1 != null) { return var1; } } return WToolkit.config; } public OutputManager getOutputManager() { return RasterOutputManager.getManager(); } protected native void disposeImpl(); public final void dispose() { boolean var1 = false; if (!this.disposed) { synchronized(this) { if (!this.disposed) { var1 = true; this.disposed = true; } } } if (var1) { this.disposeImpl(); } } public void finalize() { this.dispose(); } public void setFont(Font var1) { if (var1 != null && super.font != var1) { super.setFont(var1); this.pSetFont(var1); } } public Font getFont() { if (super.font == null) { this.setFont(new Font("Dialog", 0, 12)); } return super.font; } public FontMetrics getFontMetrics(Font var1) { if (super.textpipe == SunGraphics2D.invalidpipe) { this.validatePipe(); } return super.textpipe == this ? WFontMetrics.getFontMetrics(var1) : super.getFontMetrics(var1); } public void setColor(Color var1) { if (var1 != null) { super.setColor(var1); this.pSetForeground(var1.getRGB()); } } public void setPaint(Paint var1) { super.setPaint(var1); if (var1 instanceof Color) { this.pSetForeground(((Color)var1).getRGB()); } } public native void pSetPaintMode(); public void setPaintMode() { super.setPaintMode(); this.pSetPaintMode(); } public native void pSetXORMode(Color var1); public void setXORMode(Color var1) { super.setXORMode(var1); this.pSetXORMode(var1); } public native void changeClip(int var1, int var2, int var3, int var4, boolean var5); public native void removeClip(); public native void devClearRect(int var1, int var2, int var3, int var4); public void clearRect(int var1, int var2, int var3, int var4) { if (super.fillpipe == SunGraphics2D.invalidpipe) { this.validatePipe(); } if (super.fillpipe == this) { this.devClearRect(var1, var2, var3, var4); } else { super.clearRect(var1, var2, var3, var4); } } public native void devFillRect(int var1, int var2, int var3, int var4); public void fillRect(SunGraphics2D var1, int var2, int var3, int var4, int var5) { this.devFillRect(var2, var3, var4, var5); } public native void devDrawRect(int var1, int var2, int var3, int var4); public void drawRect(SunGraphics2D var1, int var2, int var3, int var4, int var5) { this.devDrawRect(var2, var3, var4, var5); } public Object drawString(SunGraphics2D var1, String var2, float var3, float var4, Object var5) { this.drawStringWidth(var2, (int)var3, (int)var4); return null; } public Object drawGlyphVector(SunGraphics2D var1, GlyphVector var2, float var3, float var4, Object var5) { return super.drawGlyphVector(var1, var2, var3, var4, var5); } public Object drawChars(SunGraphics2D var1, char[] var2, int var3, int var4, int var5, int var6, Object var7) { this.drawCharsWidth(var2, var3, var4, var5, var6); return null; } public Object drawBytes(SunGraphics2D var1, byte[] var2, int var3, int var4, int var5, int var6, Object var7) { this.drawBytesWidth(var2, var3, var4, var5, var6); return null; } public native int drawStringWidth(String var1, int var2, int var3); public native int drawCharsWidth(char[] var1, int var2, int var3, int var4, int var5); public native int drawBytesWidth(byte[] var1, int var2, int var3, int var4, int var5); public native void devDrawLine(int var1, int var2, int var3, int var4); public void drawLine(SunGraphics2D var1, int var2, int var3, int var4, int var5) { this.devDrawLine(var2, var3, var4, var5); } public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) { if (var1 instanceof BufferedImage) { return super.drawImage((BufferedImage)var1, var2, var3, (Color)null, var4); } else { WImage var5 = (WImage)var1; if (((sun.awt.image.Image)var5).hasError()) { if (var4 != null) { var4.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var6 = var5.getImageRep(); return var6.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3, (Color)null, var4); } } } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) { if (var4 != 0 && var5 != 0) { if (var1 instanceof BufferedImage) { return super.drawImage((BufferedImage)var1, var2, var3, var4, var5, (Color)null, var6); } else { WImage var7 = (WImage)var1; if (((sun.awt.image.Image)var7).hasError()) { if (var6 != null) { var6.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var8 = var7.getImageRep(); return var8.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3, var4, var5, (Color)null, var6); } } } else { return true; } } public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) { if (var1 instanceof BufferedImage) { super.drawImage((BufferedImage)var1, var2, var3, var4, var5); return true; } else { WImage var6 = (WImage)var1; if (((sun.awt.image.Image)var6).hasError()) { if (var5 != null) { var5.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var7 = var6.getImageRep(); return var7.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3, var4, var5); } } } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) { if (var4 != 0 && var5 != 0) { if (var1 instanceof BufferedImage) { return super.drawImage((BufferedImage)var1, var2, var3, var4, var5, var6, var7); } else { WImage var8 = (WImage)var1; if (((sun.awt.image.Image)var8).hasError()) { if (var7 != null) { var7.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var9 = var8.getImageRep(); return var9.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3, var4, var5, var6, var7); } } } else { return true; } } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) { return this.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, (Color)null, var10); } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, ImageObserver var11) { if (var1 instanceof BufferedImage) { return super.drawImage((BufferedImage)var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); } else if (var2 != var4 && var3 != var5) { if (var6 != var8 && var7 != var9) { WImage var12 = (WImage)var1; if (((sun.awt.image.Image)var12).hasError()) { if (var11 != null) { var11.imageUpdate(var1, 192, -1, -1, -1, -1); } return false; } else { ImageRepresentation var13 = var12.getImageRep(); return var13.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); } } else { return true; } } else { return true; } } public boolean drawImage(Image var1, AffineTransform var2, ImageObserver var3) { if (var1 instanceof BufferedImage) { super.drawImage((BufferedImage)var1, var2, 0, 0, (Color)null, var3); return true; } else { WImage var4 = (WImage)var1; if (((sun.awt.image.Image)var4).hasError() && var3 != null) { var3.imageUpdate(var1, 192, -1, -1, -1, -1); return false; } else { ImageRepresentation var5 = var4.getImageRep(); return var5.drawToBufImage(this, (sun.awt.image.Image)var1, var2, var3); } } } public native void devCopyArea(int var1, int var2, int var3, int var4, int var5, int var6); public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) { if (super.fillpipe == SunGraphics2D.invalidpipe) { this.validatePipe(); } if (super.fillpipe == this) { this.devCopyArea(var1, var2, var3, var4, var5, var6); } else { super.copyArea(var1, var2, var3, var4, var5, var6); } } public native void devDrawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6); public void drawRoundRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { this.devDrawRoundRect(var2, var3, var4, var5, var6, var7); } public native void devFillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6); public void fillRoundRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { this.devFillRoundRect(var2, var3, var4, var5, var6, var7); } private native void devDrawPolyline(int[] var1, int[] var2, int var3); private native void devDrawPolygon(int[] var1, int[] var2, int var3); public void drawPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6) { for(int var7 = 0; var7 < var5; ++var7) { int var8 = var4[var7]; if (var6) { this.devDrawPolygon(var2, var3, var8); } else { this.devDrawPolyline(var2, var3, var8); } System.arraycopy(var2, var8, var2, 0, var2.length - var8); System.arraycopy(var3, var8, var3, 0, var3.length - var8); } } public void drawPolyline(SunGraphics2D var1, int[] var2, int[] var3, int var4) { this.devDrawPolyline(var2, var3, var4); } public void drawPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4) { this.devDrawPolygon(var2, var3, var4); } public native void devFillPolygon(int[] var1, int[] var2, int var3, boolean var4); public void fillPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6) { if (var5 >= 1) { int var16; if (var5 > 1) { Polygon var8 = new Polygon(); int var9 = 0; int var10 = 0; int var11 = 0; for(int var14 = 0; var14 < var5; ++var14) { var16 = var4[var14]; if (var16 < 2) { var9 += var16; } else { var8.addPoint(0, 0); int var12 = var2[var9]; int var13 = var3[var9]; for(int var15 = 0; var15 < var16; ++var15) { var10 = var2[var9]; var11 = var3[var9]; var8.addPoint(var10, var11); ++var9; } if (var10 != var12 || var11 != var13) { var8.addPoint(var12, var13); } var8.addPoint(0, 0); } } var2 = var8.xpoints; var3 = var8.ypoints; var16 = var8.npoints; } else { var16 = var4[0]; } this.devFillPolygon(var2, var3, var16, var6); } } public native void devFillSpans(SpanIterator var1, long var2); public void fillSpans(SunGraphics2D var1, SpanIterator var2) { this.devFillSpans(var2, var2.getNativeIterator()); } public void fillPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4) { this.devFillPolygon(var2, var3, var4, true); } public native void devDrawOval(int var1, int var2, int var3, int var4); public void drawOval(SunGraphics2D var1, int var2, int var3, int var4, int var5) { this.devDrawOval(var2, var3, var4, var5); } public native void devFillOval(int var1, int var2, int var3, int var4); public void fillOval(SunGraphics2D var1, int var2, int var3, int var4, int var5) { this.devFillOval(var2, var3, var4, var5); } public native void devDrawArc(int var1, int var2, int var3, int var4, int var5, int var6); public void drawArc(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { this.devDrawArc(var2, var3, var4, var5, var6, var7); } public native void devFillArc(int var1, int var2, int var3, int var4, int var5, int var6); public void fillArc(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { this.devFillArc(var2, var3, var4, var5, var6, var7); } native void devPrint(WComponentPeer var1); public void print(WComponentPeer var1) { this.validatePipe(); this.devPrint(var1); } public String toString() { return this.getClass().getName(); } public String getDevID() { return myDevID; } private native int W32LockViewResources(ImageData var1, int var2, int var3, int var4, int var5, int var6); private native int W32UnLockViewResources(ImageData var1); public ImageData lock(int var1, int var2, int var3, int var4, int var5) { ImageData var6 = this.cachedID; if (null == var6 || var6.amILocked()) { var6 = new ImageData(); var6.setColorModel(this.getDeviceColorModel()); } var6.setViewArea(var1, var2, var3, var4); var6.setLockMethod(var5); int var7 = this.W32LockViewResources(var6, var1, var2, var3, var4, var5); if (1 == var7) { this.cachedID = var6; var6.incLockCount(); return var6; } else { return null; } } public int unlock(ImageData var1) { int var2 = 5; var2 = 6; if (null != var1 && var1.amILocked() && 2 == (var2 = this.W32UnLockViewResources(var1))) { var1.decLockCount(); } return var2; } private static native void initIDs(); private static boolean checkNoDDraw() { String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("sun.java2d.noddraw")); return var0 != null; } // $FF: synthetic method static Class class$(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(((Throwable)var2).getMessage()); } } static { dbg = DebugHelper.create(class$sun$awt$windows$WGraphics == null ? (class$sun$awt$windows$WGraphics = class$("sun.awt.windows.WGraphics")) : class$sun$awt$windows$WGraphics); myDevID = "WGraphics"; initIDs(); RasterOutputManager var0 = RasterOutputManager.getManager(); } }