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

  1. package sun.awt.windows;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Font;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import java.awt.image.ImageObserver;
  10. import java.io.CharConversionException;
  11. import sun.awt.CharsetString;
  12. import sun.awt.FontDescriptor;
  13. import sun.awt.PlatformFont;
  14. import sun.awt.image.Image;
  15. import sun.awt.image.ImageRepresentation;
  16. import sun.awt.image.OffScreenImageSource;
  17.  
  18. public class WGraphics extends Graphics {
  19.    int pData;
  20.    Color foreground;
  21.    Font font;
  22.    int originX;
  23.    int originY;
  24.    private Image image;
  25.  
  26.    private native void createFromComponent(WComponentPeer var1);
  27.  
  28.    private native void createFromGraphics(WGraphics var1);
  29.  
  30.    private native void createFromPrintJob(WPrintJob var1);
  31.  
  32.    private native void createFromHDC(int var1);
  33.  
  34.    private native void imageCreate(ImageRepresentation var1);
  35.  
  36.    private native void pSetFont(Font var1);
  37.  
  38.    private native void pSetForeground(int var1);
  39.  
  40.    private native void createFromBrowserHDC(int var1, int var2, int var3);
  41.  
  42.    WGraphics(WPrintJob var1) {
  43.       this.createFromPrintJob(var1);
  44.    }
  45.  
  46.    WGraphics(WGraphics var1) {
  47.       this.createFromGraphics(var1);
  48.    }
  49.  
  50.    WGraphics(WComponentPeer var1) {
  51.       this.createFromComponent(var1);
  52.    }
  53.  
  54.    WGraphics(int var1) {
  55.       this.createFromHDC(var1);
  56.    }
  57.  
  58.    WGraphics(int var1, int var2, int var3) {
  59.       this.createFromBrowserHDC(var1, var2, var3);
  60.    }
  61.  
  62.    public WGraphics(WImage var1) {
  63.       OffScreenImageSource var2 = (OffScreenImageSource)((Image)var1).getSource();
  64.       this.imageCreate(var2.getImageRep());
  65.       this.image = var1;
  66.    }
  67.  
  68.    public Graphics create() {
  69.       WGraphics var1 = new WGraphics(this);
  70.       var1.foreground = this.foreground;
  71.       var1.font = this.font;
  72.       var1.originX = this.originX;
  73.       var1.originY = this.originY;
  74.       var1.image = this.image;
  75.       return var1;
  76.    }
  77.  
  78.    public void translate(int var1, int var2) {
  79.       this.originX += var1;
  80.       this.originY += var2;
  81.    }
  82.  
  83.    public native void _dispose();
  84.  
  85.    public native void dispose();
  86.  
  87.    public void finalize() {
  88.       super.finalize();
  89.       this._dispose();
  90.    }
  91.  
  92.    public void setFont(Font var1) {
  93.       if (var1 != null && this.font != var1) {
  94.          this.font = var1;
  95.          this.pSetFont(var1);
  96.       }
  97.  
  98.    }
  99.  
  100.    public Font getFont() {
  101.       return this.font;
  102.    }
  103.  
  104.    public FontMetrics getFontMetrics(Font var1) {
  105.       return WFontMetrics.getFontMetrics(var1);
  106.    }
  107.  
  108.    public void setColor(Color var1) {
  109.       if (var1 != null && var1 != this.foreground) {
  110.          this.foreground = var1;
  111.          this.pSetForeground(var1.getRGB());
  112.       }
  113.  
  114.    }
  115.  
  116.    public Color getColor() {
  117.       return this.foreground;
  118.    }
  119.  
  120.    public native void setPaintMode();
  121.  
  122.    public native void setXORMode(Color var1);
  123.  
  124.    public native Rectangle getClipBounds();
  125.  
  126.    private native void changeClip(int var1, int var2, int var3, int var4, boolean var5);
  127.  
  128.    private native void removeClip();
  129.  
  130.    public void clipRect(int var1, int var2, int var3, int var4) {
  131.       this.changeClip(var1, var2, var3, var4, false);
  132.    }
  133.  
  134.    public void setClip(int var1, int var2, int var3, int var4) {
  135.       this.changeClip(var1, var2, var3, var4, true);
  136.    }
  137.  
  138.    public Shape getClip() {
  139.       return this.getClipBounds();
  140.    }
  141.  
  142.    public void setClip(Shape var1) {
  143.       if (var1 == null) {
  144.          this.removeClip();
  145.       } else if (var1 instanceof Rectangle) {
  146.          Rectangle var2 = (Rectangle)var1;
  147.          this.changeClip(var2.x, var2.y, var2.width, var2.height, true);
  148.       } else {
  149.          throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects");
  150.       }
  151.    }
  152.  
  153.    public native void clearRect(int var1, int var2, int var3, int var4);
  154.  
  155.    public native void fillRect(int var1, int var2, int var3, int var4);
  156.  
  157.    public native void drawRect(int var1, int var2, int var3, int var4);
  158.  
  159.    public void drawString(String var1, int var2, int var3) {
  160.       this.drawChars(var1.toCharArray(), 0, var1.length(), var2, var3);
  161.    }
  162.  
  163.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  164.       PlatformFont var6 = (PlatformFont)this.font.getPeer();
  165.       if (var6.mightHaveMultiFontMetrics()) {
  166.          this.drawMFChars(var1, var2, var3, var4, var5, this.font, var6);
  167.       } else {
  168.          this.drawSFChars(var1, var2, var3, var4, var5);
  169.       }
  170.    }
  171.  
  172.    private native void drawSFChars(char[] var1, int var2, int var3, int var4, int var5);
  173.  
  174.    private void drawMFChars(char[] var1, int var2, int var3, int var4, int var5, Font var6, PlatformFont var7) {
  175.       if (var3 != 0) {
  176.          CharsetString[] var8 = var7.makeMultiCharsetString(var1, var2, var3);
  177.          byte[] var9 = null;
  178.          int var10 = 0;
  179.          int var11 = 0;
  180.  
  181.          for(int var12 = 0; var12 < var8.length; ++var12) {
  182.             CharsetString var13 = var8[var12];
  183.             if (WFontMetrics.needsConversion(var6, var13.fontDescriptor)) {
  184.                try {
  185.                   int var14 = var13.fontDescriptor.fontCharset.getMaxBytesPerChar() * var13.length;
  186.                   if (var14 > var10) {
  187.                      var10 = var14;
  188.                      var9 = new byte[var14];
  189.                   }
  190.  
  191.                   int var15 = var13.fontDescriptor.fontCharset.convert(var13.charsetChars, var13.offset, var13.offset + var13.length, var9, 0, var9.length);
  192.                   var11 += this.drawMFCharsConvertedSegment(var6, var13.fontDescriptor, var9, var15, var4 + var11, var5);
  193.                } catch (CharConversionException var16) {
  194.                }
  195.             } else {
  196.                var11 += this.drawMFCharsSegment(var6, var13.fontDescriptor, var13.charsetChars, var13.offset, var13.length, var4 + var11, var5);
  197.             }
  198.          }
  199.  
  200.       }
  201.    }
  202.  
  203.    private native int drawMFCharsSegment(Font var1, FontDescriptor var2, char[] var3, int var4, int var5, int var6, int var7);
  204.  
  205.    private native int drawMFCharsConvertedSegment(Font var1, FontDescriptor var2, byte[] var3, int var4, int var5, int var6);
  206.  
  207.    public native void drawBytes(byte[] var1, int var2, int var3, int var4, int var5);
  208.  
  209.    public native void drawLine(int var1, int var2, int var3, int var4);
  210.  
  211.    public boolean drawImage(java.awt.Image var1, int var2, int var3, ImageObserver var4) {
  212.       WImage var5 = (WImage)var1;
  213.       if (((Image)var5).hasError()) {
  214.          if (var4 != null) {
  215.             var4.imageUpdate(var1, 192, -1, -1, -1, -1);
  216.          }
  217.  
  218.          return false;
  219.       } else {
  220.          ImageRepresentation var6 = var5.getImageRep();
  221.          return var6.drawImage(this, var2, var3, (Color)null, var4);
  222.       }
  223.    }
  224.  
  225.    public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  226.       if (var4 != 0 && var5 != 0) {
  227.          WImage var7 = (WImage)var1;
  228.          if (((Image)var7).hasError()) {
  229.             if (var6 != null) {
  230.                var6.imageUpdate(var1, 192, -1, -1, -1, -1);
  231.             }
  232.  
  233.             return false;
  234.          } else {
  235.             ImageRepresentation var8 = var7.getImageRep();
  236.             return var8.drawScaledImage(this, var2, var3, var4, var5, (Color)null, var6);
  237.          }
  238.       } else {
  239.          return true;
  240.       }
  241.    }
  242.  
  243.    public boolean drawImage(java.awt.Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  244.       WImage var6 = (WImage)var1;
  245.       if (((Image)var6).hasError()) {
  246.          if (var5 != null) {
  247.             var5.imageUpdate(var1, 192, -1, -1, -1, -1);
  248.          }
  249.  
  250.          return false;
  251.       } else {
  252.          ImageRepresentation var7 = var6.getImageRep();
  253.          return var7.drawImage(this, var2, var3, var4, var5);
  254.       }
  255.    }
  256.  
  257.    public boolean drawImage(java.awt.Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  258.       if (var4 != 0 && var5 != 0) {
  259.          WImage var8 = (WImage)var1;
  260.          if (((Image)var8).hasError()) {
  261.             if (var7 != null) {
  262.                var7.imageUpdate(var1, 192, -1, -1, -1, -1);
  263.             }
  264.  
  265.             return false;
  266.          } else {
  267.             ImageRepresentation var9 = var8.getImageRep();
  268.             return var9.drawScaledImage(this, var2, var3, var4, var5, var6, var7);
  269.          }
  270.       } else {
  271.          return true;
  272.       }
  273.    }
  274.  
  275.    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) {
  276.       if (var2 != var4 && var3 != var5) {
  277.          WImage var11 = (WImage)var1;
  278.          if (((Image)var11).hasError()) {
  279.             if (var10 != null) {
  280.                var10.imageUpdate(var1, 192, -1, -1, -1, -1);
  281.             }
  282.  
  283.             return false;
  284.          } else {
  285.             ImageRepresentation var12 = var11.getImageRep();
  286.             return var12.drawStretchImage(this, var2, var3, var4, var5, var6, var7, var8, var9, (Color)null, var10);
  287.          }
  288.       } else {
  289.          return true;
  290.       }
  291.    }
  292.  
  293.    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) {
  294.       if (var2 != var4 && var3 != var5) {
  295.          WImage var12 = (WImage)var1;
  296.          if (((Image)var12).hasError()) {
  297.             if (var11 != null) {
  298.                var11.imageUpdate(var1, 192, -1, -1, -1, -1);
  299.             }
  300.  
  301.             return false;
  302.          } else {
  303.             ImageRepresentation var13 = var12.getImageRep();
  304.             return var13.drawStretchImage(this, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  305.          }
  306.       } else {
  307.          return true;
  308.       }
  309.    }
  310.  
  311.    public native void copyArea(int var1, int var2, int var3, int var4, int var5, int var6);
  312.  
  313.    public native void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6);
  314.  
  315.    public native void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6);
  316.  
  317.    public native void drawPolygon(int[] var1, int[] var2, int var3);
  318.  
  319.    public native void drawPolyline(int[] var1, int[] var2, int var3);
  320.  
  321.    public native void fillPolygon(int[] var1, int[] var2, int var3);
  322.  
  323.    public native void drawOval(int var1, int var2, int var3, int var4);
  324.  
  325.    public native void fillOval(int var1, int var2, int var3, int var4);
  326.  
  327.    public native void drawArc(int var1, int var2, int var3, int var4, int var5, int var6);
  328.  
  329.    public native void fillArc(int var1, int var2, int var3, int var4, int var5, int var6);
  330.  
  331.    public String toString() {
  332.       return this.getClass().getName() + "[" + this.originX + "," + this.originY + "]";
  333.    }
  334.  
  335.    native void print(WComponentPeer var1);
  336.  
  337.    public native void close(WPrintJob var1);
  338. }
  339.