| /* 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); | |
| } |