home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.awt.motif; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; import java.awt.Toolkit; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.awt.image.IndexColorModel; import java.awt.image.PixelGrabber; public class PSGraphics extends Graphics { public static Dimension Letter = new Dimension(612, 792); public static Dimension Legal = new Dimension(612, 1008); public static Dimension Executive = new Dimension(540, 720); // $FF: renamed from: A4 java.awt.Dimension public static Dimension field_0 = new Dimension(Integer.MIN_VALUE, Integer.MIN_VALUE); PSPrintStream stream; int pageNumber; Color foreground; Font font; Rectangle clipRect; int originX; int originY; int adjustX; int adjustY; FontMetrics curMetrics; public PSGraphics(PSPrintStream var1, int var2) { this.stream = var1; this.pageNumber = var2; this.newAdjust(); } public PSGraphics(PSGraphics var1) { this.stream = var1.stream; this.pageNumber = var1.pageNumber; this.foreground = var1.foreground; this.font = var1.font; this.clipRect = var1.clipRect; this.originX = var1.originX; this.originY = var1.originY; this.adjustX = var1.adjustX; this.adjustY = var1.adjustY; this.curMetrics = var1.curMetrics; } public Graphics create() { return new PSGraphics(this); } public void dispose() { } private void newAdjust() { this.adjustX = this.originX; this.adjustY = this.stream.paperDim.height - this.originY; } public Font getFont() { return this.font; } public FontMetrics getFontMetrics(Font var1) { return Toolkit.getDefaultToolkit().getFontMetrics(var1); } public void setFont(Font var1) { if (var1 != null && this.font != var1) { this.font = var1; this.curMetrics = null; } } public Color getColor() { return this.foreground; } public void setColor(Color var1) { this.foreground = var1; } public void translate(int var1, int var2) { this.originX += var1; this.originY += var2; this.newAdjust(); } public void setPaintMode() { } public void setXORMode(Color var1) { } public Rectangle getClipBounds() { return this.clipRect == null ? null : new Rectangle(this.clipRect.x - this.originX, this.clipRect.y - this.originY, this.clipRect.width, this.clipRect.height); } public synchronized void clipRect(int var1, int var2, int var3, int var4) { if (var3 <= 0) { var3 = 0; } if (var4 <= 0) { var4 = 0; } Rectangle var5 = new Rectangle(var1 + this.originX, var2 + this.originY, var3, var4); if (this.clipRect != null) { var5 = var5.intersection(this.clipRect); } this.clipRect = var5; } public synchronized void setClip(int var1, int var2, int var3, int var4) { if (var3 <= 0) { var3 = 0; } if (var4 <= 0) { var4 = 0; } this.clipRect = new Rectangle(var1 + this.originX, var2 + this.originY, var3, var4); } public Shape getClip() { return this.getClipBounds(); } public void setClip(Shape var1) { if (var1 instanceof Rectangle) { Rectangle var2 = (Rectangle)var1; this.setClip(var2.x, var2.y, var2.width, var2.height); } else { throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects"); } } public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) { this.stream.sendRoundRect(this, var1, var2, var3, var4, (float)var5 / 2.0F, (float)var6 / 2.0F, true); } public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) { this.stream.sendRoundRect(this, var1, var2, var3, var4, (float)var5 / 2.0F, (float)var6 / 2.0F, false); } public void drawOval(int var1, int var2, int var3, int var4) { this.drawArc(var1, var2, var3, var4, 0, 360); } public void fillOval(int var1, int var2, int var3, int var4) { this.fillArc(var1, var2, var3, var4, 0, 360); } public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) { this.stream.sendArc(this, var1 + var3 / 2, var2 + var4 / 2, var3 / 2, var4 / 2, var5, var5 + var6, false); } public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) { this.stream.sendArc(this, var1 + var3 / 2, var2 + var4 / 2, var3 / 2, var4 / 2, var5, var5 + var6, true); } public void drawPolygon(int[] var1, int[] var2, int var3) { this.stream.sendPolygon(this, var1, var2, var3, true, false); } public void drawPolyline(int[] var1, int[] var2, int var3) { this.stream.sendPolygon(this, var1, var2, var3, false, false); } public void fillPolygon(int[] var1, int[] var2, int var3) { this.stream.sendPolygon(this, var1, var2, var3, false, true); } private synchronized boolean blitImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, boolean var11) { if (!var11) { if (var8 < var6) { int var12 = var2; var2 = var4; var4 = var12; var12 = var6; var6 = var8; var8 = var12; } if (var9 < var7) { int var17 = var3; var3 = var5; var5 = var17; var17 = var7; var7 = var9; var9 = var17; } } PixelGrabber var19 = new PixelGrabber(var1, var6, var7, var8 - var6, var9 - var7, false); try { boolean var13 = false; while(!var13) { var13 = var19.grabPixels(5000L); if ((var19.getStatus() & 192) != 0) { if (var10 != null) { this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10); } System.out.println("Image status: " + var19.getStatus()); return false; } if (!var13) { var1.getSource().startProduction(var19); } } } catch (InterruptedException var15) { if (var10 != null) { this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10); } return false; } Object var20 = var19.getPixels(); ColorModel var14 = var19.getColorModel(); if (var11) { var8 = var6 + var19.getWidth(); var9 = var7 + var19.getHeight(); if (var4 <= var2) { var4 = var2 + var19.getWidth(); } if (var5 <= var3) { var5 = var3 + var19.getHeight(); } } if (var20 instanceof byte[]) { this.stream.sendPixels(this, (byte[])var20, (IndexColorModel)var14, var2, var3, var4, var5, var6, var7, var8, var9, var10); } else { this.stream.sendPixels(this, (int[])var20, var14, var2, var3, var4, var5, var6, var7, var8, var9, var10); } return true; } public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) { return this.blitImage(var1, var2, var3, var2, var3, 0, 0, -1, -1, (Color)null, true); } public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) { return this.blitImage(var1, var2, var3, var2, var3, 0, 0, -1, -1, var4, true); } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) { return var4 != 0 && var5 != 0 ? this.blitImage(var1, var2, var3, var2 + var4, var3 + var5, 0, 0, -1, -1, (Color)null, true) : true; } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) { return var4 != 0 && var5 != 0 ? this.blitImage(var1, var2, var3, var2 + var4, var3 + var5, 0, 0, -1, -1, var6, true) : true; } public boolean drawImage(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) { return var6 != var8 && var7 != var9 ? this.blitImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, (Color)null, false) : true; } else { return true; } } 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 (var2 != var4 && var3 != var5) { if (var6 != var8 && var7 != var9) { return this.blitImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, false); } else { this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10); return true; } } else { return true; } } public void clearRect(int var1, int var2, int var3, int var4) { this.stream.fillRect(this, var1, var2, var3, var4, this.stream.paperColor); } public void fillRect(int var1, int var2, int var3, int var4) { this.stream.sendRect(this, var1, var2, var3, var4, true); } public synchronized void drawRect(int var1, int var2, int var3, int var4) { this.stream.sendRect(this, var1, var2, var3, var4, false); } public synchronized void drawString(String var1, int var2, int var3) { this.stream.sendString(this, var1, var2, var3); } public void drawChars(char[] var1, int var2, int var3, int var4, int var5) { this.drawString(new String(var1, var2, var3), var4, var5); } public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) { this.drawString(new String(var1, 0, var2, var3), var4, var5); } public synchronized void drawLine(int var1, int var2, int var3, int var4) { this.stream.sendLine(this, var1, var2, var3, var4); } public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) { (new Exception()).printStackTrace(); } public String toString() { return this.getClass().getName() + "[" + this.originX + "," + this.originY + "]"; } }