FSF GCC merge 02/23/03
[official-gcc.git] / libjava / gnu / awt / j2d / AbstractGraphicsState.java
blob1c29bc202f6cd5a1d50824262b507812906e59b4
1 /* Copyright (C) 2000, 2001 Free Software Foundation
3 This file is part of libgcj.
5 This software is copyrighted work licensed under the terms of the
6 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
7 details. */
9 package gnu.awt.j2d;
11 import java.awt.Color;
12 import java.awt.Image;
13 import java.awt.Shape;
14 import java.awt.Rectangle;
15 import java.awt.Graphics;
16 import java.awt.Graphics2D;
17 import java.awt.GraphicsConfiguration;
18 import java.awt.Font;
19 import java.awt.FontMetrics;
20 import java.awt.image.ImageObserver;
22 /**
23 * Base class for graphics state objects (State pattern, GOF book)
24 * that represents the current pipeline configuration. The Graphics2D
25 * object forwards most of the requests to the state object. The
26 * Graphics2D object itself only administers properties that are not
27 * specific for a certain state.
29 public abstract class AbstractGraphicsState implements Cloneable
31 Graphics2DImpl frontend;
33 public void setFrontend(Graphics2DImpl frontend)
35 this.frontend = frontend;
38 public void dispose()
40 frontend = null;
43 // -------- Graphics methods:
45 public abstract void setColor(Color color);
47 public abstract void setPaintMode();
49 public abstract void setXORMode(Color altColor);
51 public abstract void setFont(Font font);
53 public abstract FontMetrics getFontMetrics(Font font);
55 public abstract void setClip(Shape clip);
57 public abstract Shape getClip();
58 public abstract Rectangle getClipBounds();
60 public abstract void copyArea(int x, int y,
61 int width, int height,
62 int dx, int dy);
64 public abstract void drawLine(int x1, int y1,
65 int x2, int y2);
67 public abstract void fillRect(int x, int y,
68 int width, int height);
70 public abstract void clearRect(int x, int y,
71 int width, int height);
73 public abstract void drawRoundRect(int x, int y,
74 int width, int height,
75 int arcWidth, int arcHeight);
77 public abstract void fillRoundRect(int x, int y,
78 int width, int height,
79 int arcWidth, int arcHeight);
81 public abstract void drawOval(int x, int y,
82 int width, int height);
84 public abstract void fillOval(int x, int y,
85 int width, int height);
87 public abstract void drawArc(int x, int y,
88 int width, int height,
89 int startAngle, int arcAngle);
91 public abstract void fillArc(int x, int y,
92 int width, int height,
93 int startAngle, int arcAngle);
95 public abstract void drawPolyline(int[] xPoints, int[] yPoints,int nPoints);
97 public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
99 public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints);
101 public abstract boolean drawImage(Image image, int x, int y,
102 ImageObserver observer);
105 // -------- Graphics2D methods:
107 public abstract void draw(Shape shape);
109 public abstract void fill(Shape shape);
111 public abstract boolean hit(Rectangle rect, Shape text, boolean onStroke);
113 public abstract void drawString(String text, int x, int y);
115 public abstract void drawString(String text, float x, float y);
117 public abstract void translate(int x, int y);
119 public abstract void translate(double tx, double ty);
121 public abstract void rotate(double theta);
123 public abstract void rotate(double theta, double x, double y);
125 public abstract void scale(double scaleX, double scaleY);
127 public abstract void shear(double shearX, double shearY);
129 public Object clone ()
131 return super.clone ();