home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / CFJava.cab / CFJavaRuntime.cab / netscape / application / Graphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-10-01  |  13.9 KB  |  681 lines

  1. package netscape.application;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Font;
  5. import netscape.util.InconsistencyException;
  6. import netscape.util.Vector;
  7.  
  8. public class Graphics {
  9.    Vector graphicsStates = new Vector();
  10.    java.awt.Graphics primaryAwtGraphics;
  11.    java.awt.Graphics currentAwtGraphics;
  12.    static int graphicsCount;
  13.    int graphicsID;
  14.    Rect primaryClipRect;
  15.    Bitmap buffer;
  16.    public static final int LEFT_JUSTIFIED = 0;
  17.    public static final int CENTERED = 1;
  18.    public static final int RIGHT_JUSTIFIED = 2;
  19.  
  20.    public Graphics(View var1) {
  21.       this.graphicsID = graphicsCount++;
  22.       Rect var2 = var1.convertRectToView((View)null, var1.bounds);
  23.       var2.x -= var1.bounds.x;
  24.       var2.y -= var1.bounds.y;
  25.       this.buffer = null;
  26.       this.init(var2, var1.rootView().panel.getGraphics());
  27.    }
  28.  
  29.    public Graphics(Bitmap var1) {
  30.       this.graphicsID = graphicsCount++;
  31.       this.buffer = var1;
  32.       this.init(new Rect(0, 0, var1.width(), var1.height()), var1.awtImage.getGraphics());
  33.    }
  34.  
  35.    Graphics(Rect var1, java.awt.Graphics var2) {
  36.       this.graphicsID = graphicsCount++;
  37.       this.init(new Rect(var1), var2);
  38.    }
  39.  
  40.    static Graphics newGraphics(View var0) {
  41.       return (Graphics)(debugViewCount() == 0 ? new Graphics(var0) : new DebugGraphics(var0));
  42.    }
  43.  
  44.    static Graphics newGraphics(Bitmap var0) {
  45.       return (Graphics)(debugViewCount() == 0 ? new Graphics(var0) : new DebugGraphics(var0));
  46.    }
  47.  
  48.    void init(Rect var1, java.awt.Graphics var2) {
  49.       GraphicsState var3 = new GraphicsState();
  50.       this.graphicsStates.addElement(var3);
  51.       var3.absoluteClipRect = var1;
  52.       this.primaryAwtGraphics = var2;
  53.       this.currentAwtGraphics = this.primaryAwtGraphics;
  54.       this.primaryAwtGraphics.clipRect(var1.x, var1.y, var1.width, var1.height);
  55.       this.primaryClipRect = var1;
  56.       var3.xOffset = var1.x;
  57.       var3.yOffset = var1.y;
  58.    }
  59.  
  60.    public void pushState() {
  61.       GraphicsState var1 = this.state();
  62.       GraphicsState var2;
  63.       if (var1 != null) {
  64.          var2 = (GraphicsState)var1.clone();
  65.       } else {
  66.          var2 = new GraphicsState();
  67.       }
  68.  
  69.       this.graphicsStates.addElement(var2);
  70.    }
  71.  
  72.    final void restoreAwtGraphics(java.awt.Graphics var1, GraphicsState var2) {
  73.       if (var2.font != null) {
  74.          if (var2.font.wasDownloaded()) {
  75.             var1.setFont((Font)null);
  76.          } else {
  77.             var1.setFont(var2.font._awtFont);
  78.          }
  79.       }
  80.  
  81.       if (var2.color == null) {
  82.          var1.setColor((Color)null);
  83.       } else {
  84.          var1.setColor(var2.color._color);
  85.          if (var2.xorColor != null) {
  86.             var1.setXORMode(var2.xorColor._color);
  87.          } else {
  88.             var1.setPaintMode();
  89.          }
  90.       }
  91.    }
  92.  
  93.    public void popState() {
  94.       GraphicsState var1 = this.state();
  95.       this.graphicsStates.removeLastElement();
  96.       if (var1.awtGraphics != null) {
  97.          var1.awtGraphics.dispose();
  98.          this.currentAwtGraphics = this.awtGraphics();
  99.       }
  100.  
  101.       var1 = this.state();
  102.       if (var1 != null) {
  103.          this.restoreAwtGraphics(this.currentAwtGraphics, var1);
  104.       }
  105.  
  106.    }
  107.  
  108.    final GraphicsState state() {
  109.       return (GraphicsState)this.graphicsStates.lastElement();
  110.    }
  111.  
  112.    java.awt.Graphics awtGraphics() {
  113.       int var1 = this.graphicsStates.count();
  114.  
  115.       while(var1-- > 0) {
  116.          GraphicsState var2 = (GraphicsState)this.graphicsStates.elementAt(var1);
  117.          if (var2.awtGraphics != null) {
  118.             return var2.awtGraphics;
  119.          }
  120.       }
  121.  
  122.       return this.primaryAwtGraphics;
  123.    }
  124.  
  125.    public void setFont(netscape.application.Font var1) {
  126.       GraphicsState var2 = this.state();
  127.       var2.font = var1;
  128.       if (var1 != null && !var1.wasDownloaded()) {
  129.          this.currentAwtGraphics.setFont(var1._awtFont);
  130.       } else {
  131.          this.currentAwtGraphics.setFont((Font)null);
  132.       }
  133.    }
  134.  
  135.    public netscape.application.Font font() {
  136.       return this.state().font;
  137.    }
  138.  
  139.    public void setColor(netscape.application.Color var1) {
  140.       GraphicsState var2 = this.state();
  141.       var2.color = var1;
  142.       this.currentAwtGraphics.setColor(var1 == null ? null : var1._color);
  143.    }
  144.  
  145.    public netscape.application.Color color() {
  146.       return this.state().color;
  147.    }
  148.  
  149.    public void translate(int var1, int var2) {
  150.       GraphicsState var3 = this.state();
  151.       var3.xOffset += var1;
  152.       var3.yOffset += var2;
  153.       var3.clipRect = null;
  154.    }
  155.  
  156.    public int xTranslation() {
  157.       GraphicsState var1 = this.state();
  158.       return var1.xOffset;
  159.    }
  160.  
  161.    public int yTranslation() {
  162.       GraphicsState var1 = this.state();
  163.       return var1.yOffset;
  164.    }
  165.  
  166.    public Point translation() {
  167.       GraphicsState var1 = this.state();
  168.       return new Point(var1.xOffset, var1.yOffset);
  169.    }
  170.  
  171.    public void setClipRect(Rect var1, boolean var2) {
  172.       GraphicsState var3 = this.state();
  173.       Rect var5 = this.absoluteClipRect();
  174.       Rect var7;
  175.       if (var1 == null) {
  176.          var7 = this.primaryClipRect;
  177.          var7 = new Rect(var7);
  178.       } else {
  179.          var7 = new Rect(var1);
  180.          var7.moveBy(var3.xOffset, var3.yOffset);
  181.       }
  182.  
  183.       if (var2) {
  184.          var7.intersectWith(var5);
  185.       }
  186.  
  187.       if (!var7.equals(var5)) {
  188.          if (!var2 && var3.awtGraphics != null) {
  189.             var3.awtGraphics.dispose();
  190.             var3.awtGraphics = null;
  191.          }
  192.  
  193.          if (var3.awtGraphics == null) {
  194.             var3.awtGraphics = this.primaryAwtGraphics.create();
  195.             this.currentAwtGraphics = var3.awtGraphics;
  196.             if (var3.color != null) {
  197.                this.currentAwtGraphics.setColor(netscape.application.Color.white._color);
  198.                this.currentAwtGraphics.setColor(var3.color._color);
  199.             }
  200.          }
  201.  
  202.          this.currentAwtGraphics.clipRect(var7.x, var7.y, var7.width, var7.height);
  203.          var3.absoluteClipRect = var7;
  204.          var3.clipRect = null;
  205.          this.restoreAwtGraphics(this.currentAwtGraphics, var3);
  206.       }
  207.  
  208.    }
  209.  
  210.    public void setClipRect(Rect var1) {
  211.       this.setClipRect(var1, true);
  212.    }
  213.  
  214.    public Rect clipRect() {
  215.       GraphicsState var1 = this.state();
  216.       if (var1.clipRect != null) {
  217.          return var1.clipRect;
  218.       } else {
  219.          int var2 = this.graphicsStates.count();
  220.  
  221.          while(var2-- > 0) {
  222.             GraphicsState var3 = (GraphicsState)this.graphicsStates.elementAt(var2);
  223.             if (var3.absoluteClipRect != null) {
  224.                var1.clipRect = new Rect(var3.absoluteClipRect);
  225.                var1.clipRect.moveBy(-var1.xOffset, -var1.yOffset);
  226.                return var1.clipRect;
  227.             }
  228.          }
  229.  
  230.          return null;
  231.       }
  232.    }
  233.  
  234.    Rect absoluteClipRect() {
  235.       int var1 = this.graphicsStates.count();
  236.  
  237.       while(var1-- > 0) {
  238.          GraphicsState var2 = (GraphicsState)this.graphicsStates.elementAt(var1);
  239.          if (var2.absoluteClipRect != null) {
  240.             return var2.absoluteClipRect;
  241.          }
  242.       }
  243.  
  244.       return null;
  245.    }
  246.  
  247.    public void clearClipRect() {
  248.       this.setClipRect((Rect)null, false);
  249.    }
  250.  
  251.    public Bitmap buffer() {
  252.       return this.buffer;
  253.    }
  254.  
  255.    public boolean isDrawingBuffer() {
  256.       return this.buffer != null;
  257.    }
  258.  
  259.    public void dispose() {
  260.       int var1 = this.graphicsStates.count();
  261.  
  262.       while(var1-- > 0) {
  263.          GraphicsState var2 = (GraphicsState)this.graphicsStates.elementAt(var1);
  264.          if (var2.awtGraphics != null) {
  265.             var2.awtGraphics.dispose();
  266.          }
  267.       }
  268.  
  269.       this.graphicsStates.removeAllElements();
  270.       this.primaryAwtGraphics.dispose();
  271.       this.primaryAwtGraphics = null;
  272.       this.currentAwtGraphics = null;
  273.    }
  274.  
  275.    public void sync() {
  276.       Application.application().syncGraphics();
  277.    }
  278.  
  279.    public void setPaintMode() {
  280.       GraphicsState var1 = this.state();
  281.       var1.xorColor = null;
  282.       this.currentAwtGraphics.setPaintMode();
  283.    }
  284.  
  285.    public void setXORMode(netscape.application.Color var1) {
  286.       if (var1 == null) {
  287.          this.setPaintMode();
  288.       } else {
  289.          GraphicsState var2 = this.state();
  290.          var2.xorColor = var1;
  291.          this.currentAwtGraphics.setXORMode(var1._color);
  292.       }
  293.    }
  294.  
  295.    public void drawRect(Rect var1) {
  296.       this.drawRect(var1.x, var1.y, var1.width, var1.height);
  297.    }
  298.  
  299.    public void drawRect(int var1, int var2, int var3, int var4) {
  300.       GraphicsState var5 = this.state();
  301.       var1 += var5.xOffset;
  302.       var2 += var5.yOffset;
  303.       this.currentAwtGraphics.drawRect(var1, var2, var3 - 1, var4 - 1);
  304.    }
  305.  
  306.    public void fillRect(Rect var1) {
  307.       this.fillRect(var1.x, var1.y, var1.width, var1.height);
  308.    }
  309.  
  310.    public void fillRect(int var1, int var2, int var3, int var4) {
  311.       GraphicsState var5 = this.state();
  312.       var1 += var5.xOffset;
  313.       var2 += var5.yOffset;
  314.       this.currentAwtGraphics.fillRect(var1, var2, var3, var4);
  315.    }
  316.  
  317.    public void drawRoundedRect(Rect var1, int var2, int var3) {
  318.       this.drawRoundedRect(var1.x, var1.y, var1.width, var1.height, var2, var3);
  319.    }
  320.  
  321.    public void drawRoundedRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  322.       GraphicsState var7 = this.state();
  323.       var1 += var7.xOffset;
  324.       var2 += var7.yOffset;
  325.       this.currentAwtGraphics.drawRoundRect(var1, var2, var3 - 1, var4 - 1, var5, var6);
  326.    }
  327.  
  328.    public void fillRoundedRect(Rect var1, int var2, int var3) {
  329.       this.fillRoundedRect(var1.x, var1.y, var1.width, var1.height, var2, var3);
  330.    }
  331.  
  332.    public void fillRoundedRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  333.       GraphicsState var7 = this.state();
  334.       var1 += var7.xOffset;
  335.       var2 += var7.yOffset;
  336.       this.currentAwtGraphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  337.    }
  338.  
  339.    public void drawLine(int var1, int var2, int var3, int var4) {
  340.       GraphicsState var5 = this.state();
  341.       var1 += var5.xOffset;
  342.       var2 += var5.yOffset;
  343.       var3 += var5.xOffset;
  344.       var4 += var5.yOffset;
  345.       this.currentAwtGraphics.drawLine(var1, var2, var3, var4);
  346.    }
  347.  
  348.    public void drawPoint(int var1, int var2) {
  349.       GraphicsState var3 = this.state();
  350.       var1 += var3.xOffset;
  351.       var2 += var3.yOffset;
  352.       this.currentAwtGraphics.drawLine(var1, var2, var1, var2);
  353.    }
  354.  
  355.    public void drawOval(Rect var1) {
  356.       this.drawOval(var1.x, var1.y, var1.width - 1, var1.height - 1);
  357.    }
  358.  
  359.    public void drawOval(int var1, int var2, int var3, int var4) {
  360.       GraphicsState var5 = this.state();
  361.       var1 += var5.xOffset;
  362.       var2 += var5.yOffset;
  363.       this.currentAwtGraphics.drawOval(var1, var2, var3, var4);
  364.    }
  365.  
  366.    public void fillOval(Rect var1) {
  367.       this.fillOval(var1.x, var1.y, var1.width, var1.height);
  368.    }
  369.  
  370.    public void fillOval(int var1, int var2, int var3, int var4) {
  371.       GraphicsState var5 = this.state();
  372.       var1 += var5.xOffset;
  373.       var2 += var5.yOffset;
  374.       this.currentAwtGraphics.fillOval(var1, var2, var3, var4);
  375.    }
  376.  
  377.    public void drawArc(Rect var1, int var2, int var3) {
  378.       this.drawArc(var1.x, var1.y, var1.width, var1.height, var2, var3);
  379.    }
  380.  
  381.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  382.       GraphicsState var7 = this.state();
  383.       var1 += var7.xOffset;
  384.       var2 += var7.yOffset;
  385.       this.currentAwtGraphics.drawArc(var1, var2, var3, var4, var5, var6);
  386.    }
  387.  
  388.    public void fillArc(Rect var1, int var2, int var3) {
  389.       this.fillArc(var1.x, var1.y, var1.width, var1.height, var2, var3);
  390.    }
  391.  
  392.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  393.       GraphicsState var7 = this.state();
  394.       var1 += var7.xOffset;
  395.       var2 += var7.yOffset;
  396.       this.currentAwtGraphics.fillArc(var1, var2, var3, var4, var5, var6);
  397.    }
  398.  
  399.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  400.       GraphicsState var4 = this.state();
  401.       if (var4.xOffset == 0 && var4.yOffset == 0) {
  402.          this.currentAwtGraphics.drawPolygon(var1, var2, var3);
  403.       } else {
  404.          this.currentAwtGraphics.translate(var4.xOffset, var4.yOffset);
  405.          this.currentAwtGraphics.drawPolygon(var1, var2, var3);
  406.          this.currentAwtGraphics.translate(-var4.xOffset, -var4.yOffset);
  407.       }
  408.    }
  409.  
  410.    public void drawPolygon(Polygon var1) {
  411.       this.drawPolygon(var1.xPoints, var1.yPoints, var1.numPoints);
  412.    }
  413.  
  414.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  415.       GraphicsState var4 = this.state();
  416.       if (var4.xOffset == 0 && var4.yOffset == 0) {
  417.          this.currentAwtGraphics.fillPolygon(var1, var2, var3);
  418.       } else {
  419.          this.currentAwtGraphics.translate(var4.xOffset, var4.yOffset);
  420.          this.currentAwtGraphics.fillPolygon(var1, var2, var3);
  421.          this.currentAwtGraphics.translate(-var4.xOffset, -var4.yOffset);
  422.       }
  423.    }
  424.  
  425.    public void fillPolygon(Polygon var1) {
  426.       this.fillPolygon(var1.xPoints, var1.yPoints, var1.numPoints);
  427.    }
  428.  
  429.    public void drawBitmapAt(Bitmap var1, int var2, int var3) {
  430.       GraphicsState var4 = this.state();
  431.       var2 += var4.xOffset;
  432.       var3 += var4.yOffset;
  433.       if (var1 != null) {
  434.          if (!var1.loadsIncrementally()) {
  435.             var1.loadData();
  436.          }
  437.  
  438.          if (!var1.isValid()) {
  439.             System.err.println("Graphics.drawBitmapAt() - Invalid bitmap: " + var1.name());
  440.          } else {
  441.             this.currentAwtGraphics.drawImage(var1.awtImage, var2, var3, var1.bitmapObserver());
  442.          }
  443.       }
  444.    }
  445.  
  446.    public void drawBitmapScaled(Bitmap var1, int var2, int var3, int var4, int var5) {
  447.       GraphicsState var6 = this.state();
  448.       if (var1 != null) {
  449.          var2 += var6.xOffset;
  450.          var3 += var6.yOffset;
  451.          var1.createScaledVersion(var4, var5);
  452.          if (!var1.isValid()) {
  453.             System.err.println("Graphics.drawBitmapScaled() - Invalid bitmap: " + var1.name());
  454.          } else {
  455.             this.currentAwtGraphics.drawImage(var1.awtImage, var2, var3, var4, var5, var1.bitmapObserver());
  456.          }
  457.       }
  458.    }
  459.  
  460.    public void drawStringInRect(String var1, int var2, int var3, int var4, int var5, int var6) {
  461.       if (this.font() == null) {
  462.          throw new InconsistencyException("No font set");
  463.       } else {
  464.          FontMetrics var7 = this.font().fontMetrics();
  465.          if (var7 == null) {
  466.             throw new InconsistencyException("No metrics for Font " + this.font());
  467.          } else {
  468.             int var8 = var7.stringWidth(var1);
  469.             if (var8 > var4) {
  470.                var8 = var4;
  471.             }
  472.  
  473.             int var9;
  474.             if (var6 == 1) {
  475.                var9 = var2 + (var4 - var8) / 2;
  476.             } else if (var6 == 2) {
  477.                var9 = var2 + var4 - var8;
  478.             } else {
  479.                var9 = var2;
  480.             }
  481.  
  482.             int var11 = (var5 - var7.ascent() - var7.descent()) / 2;
  483.             if (var11 < 0) {
  484.                var11 = 0;
  485.             }
  486.  
  487.             int var10 = var3 + var5 - var11 - var7.descent();
  488.             this.drawString(var1, var9, var10);
  489.          }
  490.       }
  491.    }
  492.  
  493.    public void drawStringInRect(String var1, Rect var2, int var3) {
  494.       if (var2 == null) {
  495.          throw new InconsistencyException("Null Rect passed to drawStringInRect.");
  496.       } else {
  497.          this.drawStringInRect(var1, var2.x, var2.y, var2.width, var2.height, var3);
  498.       }
  499.    }
  500.  
  501.    public void drawString(String var1, int var2, int var3) {
  502.       if (var1 == null) {
  503.          throw new InconsistencyException("Null String passed to drawString.");
  504.       } else {
  505.          netscape.application.Font var4 = this.font();
  506.          if (var4 != null && var4.wasDownloaded()) {
  507.             FontMetrics var5 = var4.fontMetrics();
  508.             int[] var7 = var5.widthsArray();
  509.             int var9 = var5.widthsArrayBase();
  510.             Vector var6 = var4.glyphVector();
  511.             var3 -= var5.ascent();
  512.  
  513.             for(int var8 = 0; var8 < var1.length(); ++var8) {
  514.                int var10 = var1.charAt(var8) - var9;
  515.                if (var10 >= 0 && var10 < var7.length - var9) {
  516.                   this.drawBitmapAt((Bitmap)var6.elementAt(var10), var2, var3);
  517.                   var2 += var7[var1.charAt(var8)];
  518.                } else if (var1.charAt(var8) == ' ') {
  519.                   var2 += var7[32];
  520.                }
  521.             }
  522.  
  523.          } else {
  524.             GraphicsState var11 = this.state();
  525.             var2 += var11.xOffset;
  526.             var3 += var11.yOffset;
  527.             this.currentAwtGraphics.drawString(var1, var2, var3);
  528.          }
  529.       }
  530.    }
  531.  
  532.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  533.       netscape.application.Font var6 = this.font();
  534.       if (var6 != null && var6.wasDownloaded()) {
  535.          FontMetrics var7 = var6.fontMetrics();
  536.          int[] var9 = var7.widthsArray();
  537.          int var11 = var7.widthsArrayBase();
  538.          Vector var8 = var6.glyphVector();
  539.          var5 -= var7.ascent();
  540.  
  541.          for(int var10 = 0; var10 < var3; ++var10) {
  542.             int var12 = var1[var10] - var11;
  543.             if (var12 >= 0 && var12 < var9.length - var11) {
  544.                this.drawBitmapAt((Bitmap)var8.elementAt(var12), var4, var5);
  545.                var4 += var9[var1[var10]];
  546.             } else if ((char)var1[var10] == ' ') {
  547.                var4 += var9[32];
  548.             }
  549.          }
  550.  
  551.       } else {
  552.          GraphicsState var13 = this.state();
  553.          var4 += var13.xOffset;
  554.          var5 += var13.yOffset;
  555.          this.currentAwtGraphics.drawBytes(var1, var2, var3, var4, var5);
  556.       }
  557.    }
  558.  
  559.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  560.       netscape.application.Font var6 = this.font();
  561.       if (var6 != null) {
  562.          if (!var6.wasDownloaded()) {
  563.             GraphicsState var13 = this.state();
  564.             var4 += var13.xOffset;
  565.             var5 += var13.yOffset;
  566.             this.currentAwtGraphics.drawChars(var1, var2, var3, var4, var5);
  567.          } else {
  568.             FontMetrics var7 = var6.fontMetrics();
  569.             int[] var9 = var7.widthsArray();
  570.             int var11 = var7.widthsArrayBase();
  571.             Vector var8 = var6.glyphVector();
  572.             var5 -= var7.ascent();
  573.  
  574.             for(int var10 = 0; var10 < var3; ++var10) {
  575.                int var12 = var1[var10] - var11;
  576.                if (var12 >= 0 && var12 < var9.length - var11) {
  577.                   this.drawBitmapAt((Bitmap)var8.elementAt(var12), var4, var5);
  578.                   var4 += var9[var1[var10]];
  579.                } else if (var1[var10] == ' ') {
  580.                   var4 += var9[32];
  581.                }
  582.             }
  583.  
  584.          }
  585.       }
  586.    }
  587.  
  588.    void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  589.       GraphicsState var7 = this.state();
  590.       var1 += var7.xOffset;
  591.       var2 += var7.yOffset;
  592.       var5 += var7.xOffset;
  593.       var6 += var7.yOffset;
  594.       this.currentAwtGraphics.copyArea(var1, var2, var3, var4, var5 - var1, var6 - var2);
  595.    }
  596.  
  597.    public String toString() {
  598.       int var3 = this.graphicsStates.count();
  599.       String var2 = this.buffer != null ? " for Bitmap " : " ";
  600.       StringBuffer var1 = new StringBuffer("Graphics" + var2 + var3 + " states:\n");
  601.  
  602.       while(var3-- > 0) {
  603.          GraphicsState var4 = (GraphicsState)this.graphicsStates.elementAt(var3);
  604.          var1.append(var4.toString());
  605.          var1.append("\n");
  606.       }
  607.  
  608.       return var1.toString();
  609.    }
  610.  
  611.    String toShortString() {
  612.       StringBuffer var1 = new StringBuffer("Graphics" + (this.isDrawingBuffer() ? "<B>" : "") + "(" + this.graphicsID + ")");
  613.       int var2 = this.graphicsStates.count();
  614.  
  615.       while(var2-- > 0) {
  616.          var1.append("-");
  617.       }
  618.  
  619.       var1.append(">");
  620.       return var1.toString();
  621.    }
  622.  
  623.    public void setDebugOptions(int var1) {
  624.       if (var1 != 0) {
  625.          throw new InconsistencyException("Can't set non zero debugOptions on a Graphics.  Use DebugGraphics instead.");
  626.       }
  627.    }
  628.  
  629.    public int debugOptions() {
  630.       return 0;
  631.    }
  632.  
  633.    static DebugGraphicsInfo info() {
  634.       Application var0 = Application.application();
  635.       if (var0.debugGraphicsInfo == null) {
  636.          var0.debugGraphicsInfo = new DebugGraphicsInfo();
  637.       }
  638.  
  639.       return var0.debugGraphicsInfo;
  640.    }
  641.  
  642.    void setDebug(View var1) {
  643.    }
  644.  
  645.    static void setViewDebug(View var0, int var1) {
  646.       DebugGraphicsInfo var2 = info();
  647.       var2.setViewDebug(var0, var1);
  648.    }
  649.  
  650.    static int shouldViewDebug(View var0) {
  651.       Application var1 = Application.application();
  652.       if (var1.debugGraphicsInfo == null) {
  653.          return 0;
  654.       } else {
  655.          DebugGraphicsInfo var2 = var1.debugGraphicsInfo;
  656.  
  657.          int var3;
  658.          for(var3 = 0; var0 != null; var0 = var0._superview) {
  659.             var3 |= var2.viewDebug(var0);
  660.          }
  661.  
  662.          return var3;
  663.       }
  664.    }
  665.  
  666.    static int viewDebug(View var0) {
  667.       Application var1 = Application.application();
  668.       if (var1.debugGraphicsInfo == null) {
  669.          return 0;
  670.       } else {
  671.          DebugGraphicsInfo var2 = var1.debugGraphicsInfo;
  672.          return var2.viewDebug(var0);
  673.       }
  674.    }
  675.  
  676.    static int debugViewCount() {
  677.       Application var0 = Application.application();
  678.       return var0 != null && var0.debugGraphicsInfo != null && var0.debugGraphicsInfo.viewToDebug != null ? var0.debugGraphicsInfo.viewToDebug.count() : 0;
  679.    }
  680. }
  681.