home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / motif / PSGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  8.0 KB  |  328 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Rectangle;
  10. import java.awt.Shape;
  11. import java.awt.Toolkit;
  12. import java.awt.image.ColorModel;
  13. import java.awt.image.ImageObserver;
  14. import java.awt.image.IndexColorModel;
  15. import java.awt.image.PixelGrabber;
  16.  
  17. public class PSGraphics extends Graphics {
  18.    public static Dimension Letter = new Dimension(612, 792);
  19.    public static Dimension Legal = new Dimension(612, 1008);
  20.    public static Dimension Executive = new Dimension(540, 720);
  21.    // $FF: renamed from: A4 java.awt.Dimension
  22.    public static Dimension field_0 = new Dimension(Integer.MIN_VALUE, Integer.MIN_VALUE);
  23.    PSPrintStream stream;
  24.    int pageNumber;
  25.    Color foreground;
  26.    Font font;
  27.    Rectangle clipRect;
  28.    int originX;
  29.    int originY;
  30.    int adjustX;
  31.    int adjustY;
  32.    FontMetrics curMetrics;
  33.  
  34.    public PSGraphics(PSPrintStream var1, int var2) {
  35.       this.stream = var1;
  36.       this.pageNumber = var2;
  37.       this.newAdjust();
  38.    }
  39.  
  40.    public PSGraphics(PSGraphics var1) {
  41.       this.stream = var1.stream;
  42.       this.pageNumber = var1.pageNumber;
  43.       this.foreground = var1.foreground;
  44.       this.font = var1.font;
  45.       this.clipRect = var1.clipRect;
  46.       this.originX = var1.originX;
  47.       this.originY = var1.originY;
  48.       this.adjustX = var1.adjustX;
  49.       this.adjustY = var1.adjustY;
  50.       this.curMetrics = var1.curMetrics;
  51.    }
  52.  
  53.    public Graphics create() {
  54.       return new PSGraphics(this);
  55.    }
  56.  
  57.    public void dispose() {
  58.    }
  59.  
  60.    private void newAdjust() {
  61.       this.adjustX = this.originX;
  62.       this.adjustY = this.stream.paperDim.height - this.originY;
  63.    }
  64.  
  65.    public Font getFont() {
  66.       return this.font;
  67.    }
  68.  
  69.    public FontMetrics getFontMetrics(Font var1) {
  70.       return Toolkit.getDefaultToolkit().getFontMetrics(var1);
  71.    }
  72.  
  73.    public void setFont(Font var1) {
  74.       if (var1 != null && this.font != var1) {
  75.          this.font = var1;
  76.          this.curMetrics = null;
  77.       }
  78.  
  79.    }
  80.  
  81.    public Color getColor() {
  82.       return this.foreground;
  83.    }
  84.  
  85.    public void setColor(Color var1) {
  86.       this.foreground = var1;
  87.    }
  88.  
  89.    public void translate(int var1, int var2) {
  90.       this.originX += var1;
  91.       this.originY += var2;
  92.       this.newAdjust();
  93.    }
  94.  
  95.    public void setPaintMode() {
  96.    }
  97.  
  98.    public void setXORMode(Color var1) {
  99.    }
  100.  
  101.    public Rectangle getClipBounds() {
  102.       return this.clipRect == null ? null : new Rectangle(this.clipRect.x - this.originX, this.clipRect.y - this.originY, this.clipRect.width, this.clipRect.height);
  103.    }
  104.  
  105.    public synchronized void clipRect(int var1, int var2, int var3, int var4) {
  106.       if (var3 <= 0) {
  107.          var3 = 0;
  108.       }
  109.  
  110.       if (var4 <= 0) {
  111.          var4 = 0;
  112.       }
  113.  
  114.       Rectangle var5 = new Rectangle(var1 + this.originX, var2 + this.originY, var3, var4);
  115.       if (this.clipRect != null) {
  116.          var5 = var5.intersection(this.clipRect);
  117.       }
  118.  
  119.       this.clipRect = var5;
  120.    }
  121.  
  122.    public synchronized void setClip(int var1, int var2, int var3, int var4) {
  123.       if (var3 <= 0) {
  124.          var3 = 0;
  125.       }
  126.  
  127.       if (var4 <= 0) {
  128.          var4 = 0;
  129.       }
  130.  
  131.       this.clipRect = new Rectangle(var1 + this.originX, var2 + this.originY, var3, var4);
  132.    }
  133.  
  134.    public Shape getClip() {
  135.       return this.getClipBounds();
  136.    }
  137.  
  138.    public void setClip(Shape var1) {
  139.       if (var1 instanceof Rectangle) {
  140.          Rectangle var2 = (Rectangle)var1;
  141.          this.setClip(var2.x, var2.y, var2.width, var2.height);
  142.       } else {
  143.          throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects");
  144.       }
  145.    }
  146.  
  147.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  148.       this.stream.sendRoundRect(this, var1, var2, var3, var4, (float)var5 / 2.0F, (float)var6 / 2.0F, true);
  149.    }
  150.  
  151.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  152.       this.stream.sendRoundRect(this, var1, var2, var3, var4, (float)var5 / 2.0F, (float)var6 / 2.0F, false);
  153.    }
  154.  
  155.    public void drawOval(int var1, int var2, int var3, int var4) {
  156.       this.drawArc(var1, var2, var3, var4, 0, 360);
  157.    }
  158.  
  159.    public void fillOval(int var1, int var2, int var3, int var4) {
  160.       this.fillArc(var1, var2, var3, var4, 0, 360);
  161.    }
  162.  
  163.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  164.       this.stream.sendArc(this, var1 + var3 / 2, var2 + var4 / 2, var3 / 2, var4 / 2, var5, var5 + var6, false);
  165.    }
  166.  
  167.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  168.       this.stream.sendArc(this, var1 + var3 / 2, var2 + var4 / 2, var3 / 2, var4 / 2, var5, var5 + var6, true);
  169.    }
  170.  
  171.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  172.       this.stream.sendPolygon(this, var1, var2, var3, true, false);
  173.    }
  174.  
  175.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  176.       this.stream.sendPolygon(this, var1, var2, var3, false, false);
  177.    }
  178.  
  179.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  180.       this.stream.sendPolygon(this, var1, var2, var3, false, true);
  181.    }
  182.  
  183.    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) {
  184.       if (!var11) {
  185.          if (var8 < var6) {
  186.             int var12 = var2;
  187.             var2 = var4;
  188.             var4 = var12;
  189.             var12 = var6;
  190.             var6 = var8;
  191.             var8 = var12;
  192.          }
  193.  
  194.          if (var9 < var7) {
  195.             int var17 = var3;
  196.             var3 = var5;
  197.             var5 = var17;
  198.             var17 = var7;
  199.             var7 = var9;
  200.             var9 = var17;
  201.          }
  202.       }
  203.  
  204.       PixelGrabber var19 = new PixelGrabber(var1, var6, var7, var8 - var6, var9 - var7, false);
  205.  
  206.       try {
  207.          boolean var13 = false;
  208.  
  209.          while(!var13) {
  210.             var13 = var19.grabPixels(5000L);
  211.             if ((var19.getStatus() & 192) != 0) {
  212.                if (var10 != null) {
  213.                   this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10);
  214.                }
  215.  
  216.                System.out.println("Image status: " + var19.getStatus());
  217.                return false;
  218.             }
  219.  
  220.             if (!var13) {
  221.                var1.getSource().startProduction(var19);
  222.             }
  223.          }
  224.       } catch (InterruptedException var15) {
  225.          if (var10 != null) {
  226.             this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10);
  227.          }
  228.  
  229.          return false;
  230.       }
  231.  
  232.       Object var20 = var19.getPixels();
  233.       ColorModel var14 = var19.getColorModel();
  234.       if (var11) {
  235.          var8 = var6 + var19.getWidth();
  236.          var9 = var7 + var19.getHeight();
  237.          if (var4 <= var2) {
  238.             var4 = var2 + var19.getWidth();
  239.          }
  240.  
  241.          if (var5 <= var3) {
  242.             var5 = var3 + var19.getHeight();
  243.          }
  244.       }
  245.  
  246.       if (var20 instanceof byte[]) {
  247.          this.stream.sendPixels(this, (byte[])var20, (IndexColorModel)var14, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  248.       } else {
  249.          this.stream.sendPixels(this, (int[])var20, var14, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  250.       }
  251.  
  252.       return true;
  253.    }
  254.  
  255.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  256.       return this.blitImage(var1, var2, var3, var2, var3, 0, 0, -1, -1, (Color)null, true);
  257.    }
  258.  
  259.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  260.       return this.blitImage(var1, var2, var3, var2, var3, 0, 0, -1, -1, var4, true);
  261.    }
  262.  
  263.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  264.       return var4 != 0 && var5 != 0 ? this.blitImage(var1, var2, var3, var2 + var4, var3 + var5, 0, 0, -1, -1, (Color)null, true) : true;
  265.    }
  266.  
  267.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  268.       return var4 != 0 && var5 != 0 ? this.blitImage(var1, var2, var3, var2 + var4, var3 + var5, 0, 0, -1, -1, var6, true) : true;
  269.    }
  270.  
  271.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  272.       if (var2 != var4 && var3 != var5) {
  273.          return var6 != var8 && var7 != var9 ? this.blitImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, (Color)null, false) : true;
  274.       } else {
  275.          return true;
  276.       }
  277.    }
  278.  
  279.    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) {
  280.       if (var2 != var4 && var3 != var5) {
  281.          if (var6 != var8 && var7 != var9) {
  282.             return this.blitImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, false);
  283.          } else {
  284.             this.stream.fillRect(this, var2, var3, var4 - var2, var5 - var3, var10);
  285.             return true;
  286.          }
  287.       } else {
  288.          return true;
  289.       }
  290.    }
  291.  
  292.    public void clearRect(int var1, int var2, int var3, int var4) {
  293.       this.stream.fillRect(this, var1, var2, var3, var4, this.stream.paperColor);
  294.    }
  295.  
  296.    public void fillRect(int var1, int var2, int var3, int var4) {
  297.       this.stream.sendRect(this, var1, var2, var3, var4, true);
  298.    }
  299.  
  300.    public synchronized void drawRect(int var1, int var2, int var3, int var4) {
  301.       this.stream.sendRect(this, var1, var2, var3, var4, false);
  302.    }
  303.  
  304.    public synchronized void drawString(String var1, int var2, int var3) {
  305.       this.stream.sendString(this, var1, var2, var3);
  306.    }
  307.  
  308.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  309.       this.drawString(new String(var1, var2, var3), var4, var5);
  310.    }
  311.  
  312.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  313.       this.drawString(new String(var1, 0, var2, var3), var4, var5);
  314.    }
  315.  
  316.    public synchronized void drawLine(int var1, int var2, int var3, int var4) {
  317.       this.stream.sendLine(this, var1, var2, var3, var4);
  318.    }
  319.  
  320.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  321.       (new Exception()).printStackTrace();
  322.    }
  323.  
  324.    public String toString() {
  325.       return this.getClass().getName() + "[" + this.originX + "," + this.originY + "]";
  326.    }
  327. }
  328.