1b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato/*
2b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * ProGuard -- shrinking, optimization, obfuscation, and preverification
3b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *             of Java bytecode.
4b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
5b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu)
6b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
7b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This program is free software; you can redistribute it and/or modify it
8b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * under the terms of the GNU General Public License as published by the Free
9b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * Software Foundation; either version 2 of the License, or (at your option)
10b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * any later version.
11b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
12b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This program is distributed in the hope that it will be useful, but WITHOUT
13b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * more details.
16b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
17b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * You should have received a copy of the GNU General Public License along
18b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * with this program; if not, write to the Free Software Foundation, Inc.,
19b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato */
21b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratopackage proguard.gui.splash;
22b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
23b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.*;
24b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.RenderingHints.Key;
25b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.font.*;
26b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.geom.AffineTransform;
27b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.image.*;
28b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.awt.image.renderable.RenderableImage;
29b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.text.AttributedCharacterIterator;
30b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport java.util.Map;
31b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
32b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato/**
33b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This Graphics2D allows to fix some basic settings (Color, Font, Paint, Stroke,
34b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * XORMode) of a delegate Graphics2D, overriding any subsequent attempts to
35b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * change those settings.
36b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
37b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * @author Eric Lafortune
38b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * @noinspection deprecation
39b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato */
40b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratofinal class OverrideGraphics2D extends Graphics2D
41b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato{
42b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private final Graphics2D graphics;
43b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
44b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Color  overrideColor;
45b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Font   overrideFont;
46b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Paint  overridePaint;
47b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Stroke overrideStroke;
48b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Color  overrideXORMode;
49b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
50b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Color  color;
51b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Font   font;
52b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Paint  paint;
53b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    private Stroke stroke;
54b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
55b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
56b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
57b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Creates a new OverrideGraphics2D.
58b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param graphics the delegate Graphics2D.
59b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
60b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public OverrideGraphics2D(Graphics2D graphics)
61b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
62b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.graphics = graphics;
63b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.color    = graphics.getColor();
64b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.font     = graphics.getFont();
65b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.paint    = graphics.getPaint();
66b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.stroke   = graphics.getStroke();
67b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
68b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
69b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
70b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
71b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Fixes the Color of the Graphics2D.
72b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     *
73b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param color the fixed Color, or <code>null</code> to undo the fixing.
74b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
75b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setOverrideColor(Color color)
76b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
77b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.overrideColor = color;
78b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setColor(color != null ? color : this.color);
79b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
80b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
81b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
82b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Fixes the Font of the Graphics2D.
83b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     *
84b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param font the fixed Font, or <code>null</code> to undo the fixing.
85b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
86b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setOverrideFont(Font font)
87b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
88b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.overrideFont = font;
89b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setFont(font != null ? font : this.font);
90b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
91b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
92b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
93b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Fixes the Paint of the Graphics2D.
94b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     *
95b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param paint the fixed Paint, or <code>null</code> to undo the fixing.
96b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
97b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setOverridePaint(Paint paint)
98b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
99b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.overridePaint = paint;
100b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setPaint(paint != null ? paint : this.paint);
101b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
102b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
103b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
104b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Fixes the Stroke of the Graphics2D.
105b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     *
106b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param stroke the fixed Stroke, or <code>null</code> to undo the fixing.
107b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
108b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setOverrideStroke(Stroke stroke)
109b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
110b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.overrideStroke = stroke;
111b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setStroke(stroke != null ? stroke : this.stroke);
112b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
113b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
114b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    /**
115b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * Fixes the XORMode of the Graphics2D.
116b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     *
117b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     * @param color the fixed XORMode Color, or <code>null</code> to undo the fixing.
118b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato     */
119b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setOverrideXORMode(Color color)
120b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
121b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.overrideXORMode = color;
122b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (color != null)
123b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
124b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setXORMode(color);
125b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
126b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        else
127b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
128b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setPaintMode();
129b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
130b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
131b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
132b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
133b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    // Implementations for Graphics2D.
134b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
135b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setColor(Color color)
136b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
137b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.color = color;
138b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overrideColor == null)
139b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
140b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setColor(color);
141b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
142b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
143b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
144b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setFont(Font font)
145b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
146b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.font = font;
147b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overrideFont == null)
148b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
149b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setFont(font);
150b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
151b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
152b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
153b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setPaint(Paint paint)
154b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
155b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.paint = paint;
156b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overridePaint == null)
157b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
158b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setPaint(paint);
159b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
160b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
161b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
162b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setStroke(Stroke stroke)
163b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
164b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        this.stroke = stroke;
165b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overrideStroke == null)
166b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
167b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setStroke(stroke);
168b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
169b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
170b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
171b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setXORMode(Color color)
172b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
173b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overrideXORMode == null)
174b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
175b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setXORMode(color);
176b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
177b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
178b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
179b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setPaintMode()
180b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
181b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        if (overrideXORMode == null)
182b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {
183b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            graphics.setPaintMode();
184b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        }
185b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
186b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
187b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
188b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Color getColor()
189b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
190b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return overrideColor != null ? color : graphics.getColor();
191b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
192b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
193b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Font getFont()
194b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
195b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return overrideFont != null ? font : graphics.getFont();
196b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
197b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
198b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Paint getPaint()
199b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
200b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return overridePaint != null ? paint : graphics.getPaint();
201b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
202b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
203b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Stroke getStroke()
204b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
205b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return overrideStroke != null ? stroke : graphics.getStroke();
206b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
207b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
208b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
209b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Graphics create()
210b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
211b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        OverrideGraphics2D g = new OverrideGraphics2D((Graphics2D)graphics.create());
212b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideColor(overrideColor);
213b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideFont(overrideFont);
214b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverridePaint(overridePaint);
215b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideStroke(overrideStroke);
216b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
217b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return g;
218b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
219b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
220b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Graphics create(int x, int y, int width, int height)
221b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
222b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        OverrideGraphics2D g = new OverrideGraphics2D((Graphics2D)graphics.create(x, y, width, height));
223b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideColor(overrideColor);
224b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideFont(overrideFont);
225b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverridePaint(overridePaint);
226b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        g.setOverrideStroke(overrideStroke);
227b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
228b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return g;
229b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
230b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
231b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
232b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    // Delegation for Graphics2D
233b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
234b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void addRenderingHints(Map hints)
235b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
236b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.addRenderingHints(hints);
237b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
238b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
239b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void clearRect(int x, int y, int width, int height)
240b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
241b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.clearRect(x, y, width, height);
242b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
243b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
244b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void clip(Shape s)
245b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
246b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.clip(s);
247b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
248b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
249b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void clipRect(int x, int y, int width, int height)
250b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
251b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.clipRect(x, y, width, height);
252b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
253b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
254b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void copyArea(int x, int y, int width, int height, int dx, int dy)
255b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
256b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.copyArea(x, y, width, height, dx, dy);
257b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
258b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
259b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void dispose()
260b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
261b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.dispose();
262b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
263b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
264b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void draw(Shape s)
265b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
266b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.draw(s);
267b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
268b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
269b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void draw3DRect(int x, int y, int width, int height, boolean raised)
270b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
271b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.draw3DRect(x, y, width, height, raised);
272b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
273b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
274b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
275b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
276b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawArc(x, y, width, height, startAngle, arcAngle);
277b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
278b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
279b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawBytes(byte[] data, int offset, int length, int x, int y)
280b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
281b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawBytes(data, offset, length, x, y);
282b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
283b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
284b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawChars(char[] data, int offset, int length, int x, int y)
285b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
286b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawChars(data, offset, length, x, y);
287b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
288b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
289b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawGlyphVector(GlyphVector g, float x, float y)
290b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
291b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawGlyphVector(g, x, y);
292b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
293b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
294b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
295b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
296b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer);
297b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
298b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
299b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
300b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
301b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);
302b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
303b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
304b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
305b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
306b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, x, y, width, height, bgcolor, observer);
307b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
308b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
309b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
310b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
311b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, x, y, width, height, observer);
312b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
313b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
314b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
315b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
316b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, x, y, bgcolor, observer);
317b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
318b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
319b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, int x, int y, ImageObserver observer)
320b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
321b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, x, y, observer);
322b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
323b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
324b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
325b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
326b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.drawImage(img, xform, obs);
327b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
328b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
329b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
330b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
331b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawImage(img, op, x, y);
332b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
333b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
334b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawLine(int x1, int y1, int x2, int y2)
335b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
336b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawLine(x1, y1, x2, y2);
337b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
338b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
339b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawOval(int x, int y, int width, int height)
340b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
341b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawOval(x, y, width, height);
342b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
343b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
344b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
345b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
346b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawPolygon(xPoints, yPoints, nPoints);
347b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
348b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
349b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawPolygon(Polygon p)
350b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
351b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawPolygon(p);
352b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
353b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
354b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
355b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
356b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawPolyline(xPoints, yPoints, nPoints);
357b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
358b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
359b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawRect(int x, int y, int width, int height)
360b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
361b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawRect(x, y, width, height);
362b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
363b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
364b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawRenderableImage(RenderableImage img, AffineTransform xform)
365b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
366b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawRenderableImage(img, xform);
367b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
368b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
369b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawRenderedImage(RenderedImage img, AffineTransform xform)
370b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
371b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawRenderedImage(img, xform);
372b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
373b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
374b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
375b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
376b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawRoundRect(x, y, width, height, arcWidth, arcHeight);
377b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
378b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
379b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawString(String s, float x, float y)
380b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
381b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawString(s, x, y);
382b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
383b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
384b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawString(String str, int x, int y)
385b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
386b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawString(str, x, y);
387b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
388b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
389b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawString(AttributedCharacterIterator iterator, float x, float y)
390b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
391b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawString(iterator, x, y);
392b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
393b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
394b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void drawString(AttributedCharacterIterator iterator, int x, int y)
395b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
396b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.drawString(iterator, x, y);
397b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
398b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
399b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean equals(Object obj)
400b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
401b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.equals(obj);
402b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
403b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
404b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fill(Shape s)
405b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
406b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fill(s);
407b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
408b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
409b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fill3DRect(int x, int y, int width, int height, boolean raised)
410b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
411b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fill3DRect(x, y, width, height, raised);
412b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
413b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
414b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
415b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
416b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillArc(x, y, width, height, startAngle, arcAngle);
417b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
418b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
419b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillOval(int x, int y, int width, int height)
420b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
421b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillOval(x, y, width, height);
422b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
423b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
424b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
425b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
426b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillPolygon(xPoints, yPoints, nPoints);
427b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
428b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
429b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillPolygon(Polygon p)
430b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
431b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillPolygon(p);
432b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
433b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
434b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillRect(int x, int y, int width, int height)
435b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
436b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillRect(x, y, width, height);
437b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
438b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
439b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
440b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
441b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.fillRoundRect(x, y, width, height, arcWidth, arcHeight);
442b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
443b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
444b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Color getBackground()
445b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
446b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getBackground();
447b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
448b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
449b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Shape getClip()
450b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
451b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getClip();
452b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
453b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
454b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Rectangle getClipBounds()
455b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
456b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getClipBounds();
457b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
458b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
459b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Rectangle getClipBounds(Rectangle r)
460b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
461b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getClipBounds(r);
462b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
463b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
464b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Rectangle getClipRect()
465b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
466b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getClipRect();
467b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
468b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
469b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Composite getComposite()
470b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
471b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getComposite();
472b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
473b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
474b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public GraphicsConfiguration getDeviceConfiguration()
475b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
476b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getDeviceConfiguration();
477b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
478b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
479b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public FontMetrics getFontMetrics()
480b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
481b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getFontMetrics();
482b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
483b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
484b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public FontMetrics getFontMetrics(Font f)
485b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
486b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getFontMetrics(f);
487b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
488b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
489b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public FontRenderContext getFontRenderContext()
490b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
491b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getFontRenderContext();
492b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
493b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
494b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public Object getRenderingHint(Key hintKey)
495b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
496b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getRenderingHint(hintKey);
497b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
498b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
499b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public RenderingHints getRenderingHints()
500b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
501b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getRenderingHints();
502b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
503b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
504b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public AffineTransform getTransform()
505b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
506b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.getTransform();
507b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
508b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
509b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public int hashCode()
510b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
511b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.hashCode();
512b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
513b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
514b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean hit(Rectangle rect, Shape s, boolean onStroke)
515b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
516b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.hit(rect, s, onStroke);
517b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
518b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
519b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public boolean hitClip(int x, int y, int width, int height)
520b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
521b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.hitClip(x, y, width, height);
522b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
523b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
524b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void rotate(double theta)
525b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
526b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.rotate(theta);
527b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
528b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
529b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void rotate(double theta, double x, double y)
530b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
531b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.rotate(theta, x, y);
532b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
533b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
534b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void scale(double sx, double sy)
535b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
536b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.scale(sx, sy);
537b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
538b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
539b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setBackground(Color color)
540b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
541b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setBackground(color);
542b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
543b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
544b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setClip(int x, int y, int width, int height)
545b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
546b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setClip(x, y, width, height);
547b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
548b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
549b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setClip(Shape clip)
550b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
551b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setClip(clip);
552b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
553b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
554b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setComposite(Composite comp)
555b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
556b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setComposite(comp);
557b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
558b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
559b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setRenderingHint(Key hintKey, Object hintValue)
560b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
561b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setRenderingHint(hintKey, hintValue);
562b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
563b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
564b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setRenderingHints(Map hints)
565b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
566b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setRenderingHints(hints);
567b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
568b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
569b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void setTransform(AffineTransform Tx)
570b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
571b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.setTransform(Tx);
572b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
573b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
574b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void shear(double shx, double shy)
575b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
576b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.shear(shx, shy);
577b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
578b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
579b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public String toString()
580b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
581b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        return graphics.toString();
582b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
583b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
584b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void transform(AffineTransform Tx)
585b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
586b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.transform(Tx);
587b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
588b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
589b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void translate(double tx, double ty)
590b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
591b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.translate(tx, ty);
592b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
593b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
594b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public void translate(int x, int y)
595b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
596b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        graphics.translate(x, y);
597b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    }
598b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato}
599