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