mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			361 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			361 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>
 | |
|  * (*) Support for this API is not fully implemented in GNU Classpath yet.
 | |
|  * <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);
 | |
| }
 |