mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			359 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Java
		
	
	
	
/* Copyright (C) 2000, 2002, 2004, 2006,  Free Software Foundation
 | 
						|
 | 
						|
This file is part of GNU Classpath.
 | 
						|
 | 
						|
GNU Classpath is free software; you can redistribute it and/or modify
 | 
						|
it under the terms of the GNU General Public License as published by
 | 
						|
the Free Software Foundation; either version 2, or (at your option)
 | 
						|
any later version.
 | 
						|
 | 
						|
GNU Classpath is distributed in the hope that it will be useful, but
 | 
						|
WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
General Public License for more details.
 | 
						|
 | 
						|
You should have received a copy of the GNU General Public License
 | 
						|
along with GNU Classpath; see the file COPYING.  If not, write to the
 | 
						|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
						|
02110-1301 USA.
 | 
						|
 | 
						|
Linking this library statically or dynamically with other modules is
 | 
						|
making a combined work based on this library.  Thus, the terms and
 | 
						|
conditions of the GNU General Public License cover the whole
 | 
						|
combination.
 | 
						|
 | 
						|
As a special exception, the copyright holders of this library give you
 | 
						|
permission to link this library with independent modules to produce an
 | 
						|
executable, regardless of the license terms of these independent
 | 
						|
modules, and to copy and distribute the resulting executable under
 | 
						|
terms of your choice, provided that you also meet, for each linked
 | 
						|
independent module, the terms and conditions of the license of that
 | 
						|
module.  An independent module is a module which is not derived from
 | 
						|
or based on this library.  If you modify this library, you may extend
 | 
						|
this exception to your version of the library, but you are not
 | 
						|
obligated to do so.  If you do not wish to do so, delete this
 | 
						|
exception statement from your version. */
 | 
						|
 | 
						|
 | 
						|
package java.awt;
 | 
						|
 | 
						|
import java.awt.font.FontRenderContext;
 | 
						|
import java.awt.font.GlyphVector;
 | 
						|
import java.awt.geom.AffineTransform;
 | 
						|
import java.awt.image.BufferedImage;
 | 
						|
import java.awt.image.BufferedImageOp;
 | 
						|
import java.awt.image.ImageObserver;
 | 
						|
import java.awt.image.RenderedImage;
 | 
						|
import java.awt.image.renderable.RenderableImage;
 | 
						|
import java.awt.print.PageFormat;
 | 
						|
import java.awt.print.Printable;
 | 
						|
import java.text.AttributedCharacterIterator;
 | 
						|
import java.util.Map;
 | 
						|
 | 
						|
/**
 | 
						|
 * An abstract class defining a device independent two-dimensional vector
 | 
						|
 * graphics API.  Concrete subclasses implement this API for output of
 | 
						|
 * vector graphics to:
 | 
						|
 * <p>
 | 
						|
 * <ul>
 | 
						|
 * <li>a {@link javax.swing.JComponent} - in the
 | 
						|
 *     {@link javax.swing.JComponent#paint(Graphics)} method, the incoming
 | 
						|
 *     {@link Graphics} should always be an instance of
 | 
						|
 *     <code>Graphics2D</code>;</li>
 | 
						|
 * <li>a {@link BufferedImage} - see
 | 
						|
 *     {@link BufferedImage#createGraphics()};</li>
 | 
						|
 * <li>a {@link java.awt.print.PrinterJob} - in the
 | 
						|
 *     {@link Printable#print(Graphics, PageFormat, int)} method, the incoming
 | 
						|
 *     {@link Graphics} should always be an instance of
 | 
						|
 *     <code>Graphics2D</code>.</li>
 | 
						|
 * </ul>
 | 
						|
 * <p>
 | 
						|
 * Third party libraries provide support for output to other formats via this
 | 
						|
 * API, including encapsulated postscript (EPS), portable document format (PDF),
 | 
						|
 * and scalable vector graphics (SVG).
 | 
						|
 *
 | 
						|
 * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
 | 
						|
 */
 | 
						|
public abstract class Graphics2D extends Graphics
 | 
						|
{
 | 
						|
 | 
						|
  protected Graphics2D()
 | 
						|
  {
 | 
						|
  }
 | 
						|
 | 
						|
  public void draw3DRect(int x, int y, int width, int height,
 | 
						|
                         boolean raised)
 | 
						|
  {
 | 
						|
    super.draw3DRect(x, y, width, height, raised);
 | 
						|
  }
 | 
						|
 | 
						|
  public void fill3DRect(int x, int y, int width, int height,
 | 
						|
                         boolean raised)
 | 
						|
  {
 | 
						|
    super.fill3DRect(x, y, width, height, raised);
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws an outline around a shape using the current stroke and paint.
 | 
						|
   *
 | 
						|
   * @param shape  the shape (<code>null</code> not permitted).
 | 
						|
   *
 | 
						|
   * @see #getStroke()
 | 
						|
   * @see #getPaint()
 | 
						|
   */
 | 
						|
  public abstract void draw(Shape shape);
 | 
						|
 | 
						|
  public abstract boolean drawImage(Image image, AffineTransform xform,
 | 
						|
                                    ImageObserver obs);
 | 
						|
 | 
						|
  public abstract void drawImage(BufferedImage image,
 | 
						|
                                 BufferedImageOp op,
 | 
						|
                                 int x,
 | 
						|
                                 int y);
 | 
						|
 | 
						|
  public abstract void drawRenderedImage(RenderedImage image,
 | 
						|
                                         AffineTransform xform);
 | 
						|
 | 
						|
  public abstract void drawRenderableImage(RenderableImage image,
 | 
						|
                                           AffineTransform xform);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws a string at the specified location, using the current font.
 | 
						|
   *
 | 
						|
   * @param text  the string to draw.
 | 
						|
   * @param x  the x-coordinate.
 | 
						|
   * @param y  the y-coordinate.
 | 
						|
   *
 | 
						|
   * @see Graphics#setFont(Font)
 | 
						|
   */
 | 
						|
  public abstract void drawString(String text, int x, int y);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws a string at the specified location, using the current font.
 | 
						|
   *
 | 
						|
   * @param text  the string to draw.
 | 
						|
   * @param x  the x-coordinate.
 | 
						|
   * @param y  the y-coordinate.
 | 
						|
   *
 | 
						|
   * @see Graphics#setFont(Font)
 | 
						|
   */
 | 
						|
  public abstract void drawString(String text, float x, float y);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws an attributed string at the specified location.
 | 
						|
   *
 | 
						|
   * @param iterator  the source of the attributed text.
 | 
						|
   * @param x  the x-coordinate.
 | 
						|
   * @param y  the y-coordinate.
 | 
						|
   */
 | 
						|
  public abstract void drawString(AttributedCharacterIterator iterator,
 | 
						|
                                  int x, int y);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws an attributed string at the specified location.
 | 
						|
   *
 | 
						|
   * @param iterator  the source of the attributed text.
 | 
						|
   * @param x  the x-coordinate.
 | 
						|
   * @param y  the y-coordinate.
 | 
						|
   */
 | 
						|
  public abstract void drawString(AttributedCharacterIterator iterator,
 | 
						|
                                  float x, float y);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Fills the interior of the specified <code>shape</code> using the current
 | 
						|
   * paint.
 | 
						|
   *
 | 
						|
   * @param shape  the shape to fill (<code>null</code> not permitted).
 | 
						|
   *
 | 
						|
   * @see #draw(Shape)
 | 
						|
   * @see #getPaint()
 | 
						|
   */
 | 
						|
  public abstract void fill(Shape shape);
 | 
						|
 | 
						|
  public abstract boolean hit(Rectangle rect, Shape text,
 | 
						|
                              boolean onStroke);
 | 
						|
 | 
						|
  public abstract GraphicsConfiguration getDeviceConfiguration();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the current compositing rule.
 | 
						|
   *
 | 
						|
   * @param comp  the composite.
 | 
						|
   *
 | 
						|
   * @see #getComposite()
 | 
						|
   */
 | 
						|
  public abstract void setComposite(Composite comp);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the paint to be used for subsequent drawing operations.
 | 
						|
   *
 | 
						|
   * @param paint  the paint (<code>null</code> not permitted).
 | 
						|
   *
 | 
						|
   * @see #getPaint()
 | 
						|
   */
 | 
						|
  public abstract void setPaint(Paint paint);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the stroke to be used for subsequent drawing operations.
 | 
						|
   *
 | 
						|
   * @param stroke  the stroke (<code>null</code> not permitted).
 | 
						|
   *
 | 
						|
   * @see #getStroke()
 | 
						|
   */
 | 
						|
  public abstract void setStroke(Stroke stroke);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Adds or updates a hint in the current rendering hints table.
 | 
						|
   *
 | 
						|
   * @param hintKey  the hint key.
 | 
						|
   * @param hintValue  the hint value.
 | 
						|
   */
 | 
						|
  public abstract void setRenderingHint(RenderingHints.Key hintKey,
 | 
						|
                                        Object hintValue);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current value of a rendering hint.
 | 
						|
   *
 | 
						|
   * @param hintKey  the key for the hint.
 | 
						|
   *
 | 
						|
   * @return The value for the specified hint.
 | 
						|
   */
 | 
						|
  public abstract Object getRenderingHint(RenderingHints.Key hintKey);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Replaces the current rendering hints with the supplied hints.
 | 
						|
   *
 | 
						|
   * @param hints  the hints.
 | 
						|
   *
 | 
						|
   * @see #addRenderingHints(Map)
 | 
						|
   */
 | 
						|
  public abstract void setRenderingHints(Map<?,?> hints);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Adds/updates the rendering hint.
 | 
						|
   *
 | 
						|
   * @param hints  the hints to add or update.
 | 
						|
   */
 | 
						|
  public abstract void addRenderingHints(Map<?,?> hints);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current rendering hints.
 | 
						|
   *
 | 
						|
   * @return The current rendering hints.
 | 
						|
   */
 | 
						|
  public abstract RenderingHints getRenderingHints();
 | 
						|
 | 
						|
  public abstract void translate(int x, int y);
 | 
						|
 | 
						|
  public abstract void translate(double tx, double ty);
 | 
						|
 | 
						|
  public abstract void rotate(double theta);
 | 
						|
 | 
						|
  public abstract void rotate(double theta, double x, double y);
 | 
						|
 | 
						|
  public abstract void scale(double scaleX, double scaleY);
 | 
						|
 | 
						|
  public abstract void shear(double shearX, double shearY);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the current transform to a concatenation of <code>transform</code>
 | 
						|
   * and the existing transform.
 | 
						|
   *
 | 
						|
   * @param transform  the transform.
 | 
						|
   */
 | 
						|
  public abstract void transform(AffineTransform transform);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the current transform.  If the caller specifies a <code>null</code>
 | 
						|
   * transform, this method should set the current transform to the
 | 
						|
   * identity transform.
 | 
						|
   *
 | 
						|
   * @param transform  the transform (<code>null</code> permitted).
 | 
						|
   *
 | 
						|
   * @see #getTransform()
 | 
						|
   */
 | 
						|
  public abstract void setTransform(AffineTransform transform);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current transform.
 | 
						|
   *
 | 
						|
   * @return The current transform.
 | 
						|
   *
 | 
						|
   * @see #setTransform(AffineTransform)
 | 
						|
   */
 | 
						|
  public abstract AffineTransform getTransform();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current paint.
 | 
						|
   *
 | 
						|
   * @return The current paint.
 | 
						|
   *
 | 
						|
   * @see #setPaint(Paint)
 | 
						|
   */
 | 
						|
  public abstract Paint getPaint();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current compositing rule.
 | 
						|
   *
 | 
						|
   * @return The current compositing rule.
 | 
						|
   *
 | 
						|
   * @see #setComposite(Composite)
 | 
						|
   */
 | 
						|
  public abstract Composite getComposite();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the background color (used by the
 | 
						|
   * {@link Graphics#clearRect(int, int, int, int)} method).
 | 
						|
   *
 | 
						|
   * @param color  the color.
 | 
						|
   *
 | 
						|
   * @see #getBackground()
 | 
						|
   */
 | 
						|
  public abstract void setBackground(Color color);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the color used by the
 | 
						|
   * {@link Graphics#clearRect(int, int, int, int)} method.
 | 
						|
   *
 | 
						|
   * @return The background color.
 | 
						|
   *
 | 
						|
   * @see #setBackground(Color)
 | 
						|
   */
 | 
						|
  public abstract Color getBackground();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the current stroke.
 | 
						|
   *
 | 
						|
   * @return The current stroke.
 | 
						|
   *
 | 
						|
   * @see #setStroke(Stroke)
 | 
						|
   */
 | 
						|
  public abstract Stroke getStroke();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Sets the clip region to the intersection of the current clipping region
 | 
						|
   * and <code>s</code>.
 | 
						|
   *
 | 
						|
   * @param s  the shape to intersect with the current clipping region.
 | 
						|
   *
 | 
						|
   * @see Graphics#setClip(Shape)
 | 
						|
   */
 | 
						|
  public abstract void clip(Shape s);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the font render context.
 | 
						|
   *
 | 
						|
   * @return The font render context.
 | 
						|
   */
 | 
						|
  public abstract FontRenderContext getFontRenderContext();
 | 
						|
 | 
						|
  /**
 | 
						|
   * Draws a glyph vector at the specified location.
 | 
						|
   *
 | 
						|
   * @param g  the glyph vector.
 | 
						|
   * @param x  the x-coordinate.
 | 
						|
   * @param y  the y-coordinate.
 | 
						|
   */
 | 
						|
  public abstract void drawGlyphVector(GlyphVector g, float x, float y);
 | 
						|
}
 |