Class QuickDrawContext
java.lang.Object
com.twelvemonkeys.imageio.plugins.pict.QuickDrawContext
Emulates an Apple QuickDraw rendering context, backed by a Java
Graphics2D.- Version:
- $Id: QuickDrawContext.java,v 1.0 Oct 3, 2007 1:24:35 AM haraldk Exp$
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Patternprivate Colorprivate Colorprivate Patternprivate final Graphics2Dprivate intprivate Patternprivate Point2Dprivate Dimension2Dprivate intprivate intprivate Pattern -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidcopyBits(BufferedImage pSrcBitmap, Rectangle pSrcRect, Rectangle pDstRect, int pMode, Shape pMaskRgn) CopyBits.voidcopyDeepMask(BufferedImage pSrcBitmap, BufferedImage pMaskBitmap, Rectangle pSrcRect, Rectangle pMaskRect, Rectangle pDstRect, int pSrcCopy, Shape pMaskRgn) CopyDeepMask -- available to basic QuickDraw only in System 7, combines the functionality of both CopyBits and CopyMaskvoidcopyMask(BufferedImage pSrcBitmap, BufferedImage pMaskBitmap, Rectangle pSrcRect, Rectangle pMaskRect, Rectangle pDstRect, int pSrcCopy, Shape pMaskRgn) CopyMaskprotected voiddispose()voiddrawString(String pString) DrawString - draws the text of a Pascal string.voideraseArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle) EraseArc(r,int,int) // fills the arc's interior with the background patternvoideraseOval(Rectangle2D pRectangle) EraseOval(r) // fills the oval's interior with the background patternvoidvoideraseRect(Rectangle2D pRectangle) EraseRect(r) // fills the rectangle's interior with the background patternvoideraseRegion(Area pArea) voideraseRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH) EraseRoundRect(r,int,int) // fills the rectangle's interior with the background patternprivate voideraseShape(Shape pShape) voidfillArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle, Pattern pPattern) FillArc(r,int,int, pat) // fills an arc's interior with any pattern you specify.voidfillOval(Rectangle2D pRectangle, Pattern pPattern) FillOval(r, pat) // fills an oval's interior with any pattern you specify.voidvoidfillRect(Rectangle2D pRectangle, Pattern pPattern) FillRect(r, pat) // fills a rectangle's interior with any pattern you specify.voidfillRegion(Area pArea, Pattern pPattern) voidfillRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH, Pattern pPattern) FillRoundRect(r,int,int,pat) // fills a rectangle's interior with any pattern you specify.private voidvoidframeArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle) FrameArc(r,int,int) // outline arc with the size, pattern, and pattern mode of the graphics pen.voidframeOval(Rectangle2D pRectangle) FrameOval(r) // outline oval with the size, pattern, and pattern mode of the graphics pen.voidvoidframeRect(Rectangle2D pRectangle) FrameRect(r) // outline rect with the size, pattern, and pattern mode of the graphics pen.voidframeRegion(Area pArea) voidframeRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH) FrameRoundRect(r,int,int) // outline round rect with the size, pattern, and pattern mode of the graphics pen.private voidframeShape(Shape pShape) (package private) Colorprivate CompositegetCompositeFor(int pMode) (package private) ColorReturns the pen position.private StrokegetStroke(Dimension2D pPenSize) voidhidePen()HidePen Visibility (decrements visibility by one!)voidinvertArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle) InvertArc(r,int,int) // reverses the color of all pixels in the arcvoidinvertOval(Rectangle2D pRectangle) InvertOval(r) // reverses the color of all pixels in the ovalvoidinvertPoly(Polygon pPolygon) voidinvertRect(Rectangle2D pRectangle) InvertRect(r) // reverses the color of all pixels in the rectvoidinvertRegion(Area pArea) voidinvertRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH) InvertRoundRect(r,int,int) // reverses the color of all pixels in the rectprivate voidinvertShape(Shape pShape) private booleanTells whether pen is visible.final voidline(double pDeltaX, double pDeltaY) voidlineTo(double pX, double pY) final voidfinal voidmove(double pDeltaX, double pDeltaY) voidmoveTo(double pX, double pY) final voidvoidpaintArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle) PaintArc(r,int,int) // fills an arc's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.voidpaintOval(Rectangle2D pRectangle) PaintOval(r) // fills an oval's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.voidvoidpaintRect(Rectangle2D pRectangle) PaintRect(r) // fills a rectangle's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.voidpaintRegion(Area pArea) voidpaintRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH) PaintRooundRect(r,int,int) // fills a rectangle's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.private voidpaintShape(Shape pShape) voidsetBackground(Color pColor) voidsetBackgroundPattern(Pattern pPaint) voidsetClipRegion(Shape pClip) voidsetFillPattern(Pattern fillPattern) voidsetForeground(Color pColor) voidvoidsetPenMode(int pPenMode) PenMode // Sets pen pattern modefinal voidPenNormal // Reset (except posiotion)voidsetPenPattern(Pattern pPattern) PenPat invalid input: '&' PenPixPat // Sets pen bit pattern or pix patternvoidsetPenSize(Dimension2D pSize) Sets the pen size.(package private) voidsetTextFace(int face) (package private) voidsetTextFont(int fontFamily) voidsetTextFont(String fontName) (package private) voidsetTextMode(int pSourceMode) (package private) voidvoidsetTextSize(int pSize) protected voidprotected voidsetupForFill(Pattern pPattern) Sets up paint context for fill.protected voidprotected voidSets up context for line drawing/painting.protected voidSets up context for text drawing.voidshowPen()ShowPen Visibility (increments visibility by one!)private static Arc2D.DoubletoArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle, boolean pClosed) Converts a rectangle to an arc.private static Ellipse2D.DoubletoOval(Rectangle2D pRectangle) private static RoundRectangle2D.DoubletoRoundRect(Rectangle2D pRectangle, int pArcW, int pArcH)
-
Field Details
-
graphics
-
background
-
penVisibility
private int penVisibility -
penPosition
-
penPattern
-
penSize
-
penMode
private int penMode -
bgColor
-
fgColor
-
textMode
private int textMode -
textPattern
-
fillPattern
-
-
Constructor Details
-
QuickDrawContext
QuickDrawContext(Graphics2D pGraphics)
-
-
Method Details
-
dispose
protected void dispose() -
closePicture
public void closePicture() -
setClipRegion
-
setTextFont
void setTextFont(int fontFamily) -
setTextFont
-
setTextFace
void setTextFace(int face) -
setTextMode
void setTextMode(int pSourceMode) -
setTextSize
public void setTextSize(int pSize) -
setTextRatio
void setTextRatio() -
setOrigin
-
setForeground
-
getForeground
Color getForeground() -
setBackground
-
getBackground
Color getBackground() -
hidePen
public void hidePen()HidePen Visibility (decrements visibility by one!) -
showPen
public void showPen()ShowPen Visibility (increments visibility by one!) -
isPenVisible
private boolean isPenVisible()Tells whether pen is visible.- Returns:
trueif pen is visible
-
getPenPosition
-
setPenSize
Sets the pen size. PenSize- Parameters:
pSize- the new size
-
setPenMode
public void setPenMode(int pPenMode) PenMode // Sets pen pattern mode- Parameters:
pPenMode- the new pen mode
-
setPenPattern
PenPat invalid input: '&' PenPixPat // Sets pen bit pattern or pix pattern- Parameters:
pPattern- the new pattern
-
setPenNormal
public final void setPenNormal()PenNormal // Reset (except posiotion) -
setBackgroundPattern
-
setFillPattern
-
getCompositeFor
-
setupForText
protected void setupForText()Sets up context for text drawing. -
setupForPaint
protected void setupForPaint()Sets up context for line drawing/painting. -
getStroke
-
setupForFill
Sets up paint context for fill.- Parameters:
pPattern- the pattern to use for filling.
-
setupForErase
protected void setupForErase() -
setupForInvert
protected void setupForInvert() -
moveTo
public void moveTo(double pX, double pY) -
moveTo
-
move
public final void move(double pDeltaX, double pDeltaY) -
lineTo
public void lineTo(double pX, double pY) -
lineTo
-
line
public final void line(double pDeltaX, double pDeltaY) -
frameRect
FrameRect(r) // outline rect with the size, pattern, and pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to frame
-
paintRect
PaintRect(r) // fills a rectangle's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to paint
-
fillRect
FillRect(r, pat) // fills a rectangle's interior with any pattern you specify. The procedure transfers the pattern with the patCopy pattern mode, which directly copies your requested pattern into the shape.- Parameters:
pRectangle- the rectangle to fillpPattern- the pattern to use
-
eraseRect
EraseRect(r) // fills the rectangle's interior with the background pattern- Parameters:
pRectangle- the rectangle to erase
-
invertRect
InvertRect(r) // reverses the color of all pixels in the rect- Parameters:
pRectangle- the rectangle to invert
-
toRoundRect
-
frameRoundRect
FrameRoundRect(r,int,int) // outline round rect with the size, pattern, and pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to framepArcW- width of the oval defining the rounded corner.pArcH- height of the oval defining the rounded corner.
-
paintRoundRect
PaintRooundRect(r,int,int) // fills a rectangle's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to paintpArcW- width of the oval defining the rounded corner.pArcH- height of the oval defining the rounded corner.
-
fillRoundRect
FillRoundRect(r,int,int,pat) // fills a rectangle's interior with any pattern you specify. The procedure transfers the pattern with the patCopy pattern mode, which directly copies your requested pattern into the shape.- Parameters:
pRectangle- the rectangle to fillpArcW- width of the oval defining the rounded corner.pArcH- height of the oval defining the rounded corner.pPattern- the pattern to use
-
eraseRoundRect
EraseRoundRect(r,int,int) // fills the rectangle's interior with the background pattern- Parameters:
pRectangle- the rectangle to erasepArcW- width of the oval defining the rounded corner.pArcH- height of the oval defining the rounded corner.
-
invertRoundRect
InvertRoundRect(r,int,int) // reverses the color of all pixels in the rect- Parameters:
pRectangle- the rectangle to invertpArcW- width of the oval defining the rounded corner.pArcH- height of the oval defining the rounded corner.
-
toOval
-
frameOval
FrameOval(r) // outline oval with the size, pattern, and pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to frame
-
paintOval
PaintOval(r) // fills an oval's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to paint
-
fillOval
FillOval(r, pat) // fills an oval's interior with any pattern you specify. The procedure transfers the pattern with the patCopy pattern mode, which directly copies your requested pattern into the shape.- Parameters:
pRectangle- the rectangle to fillpPattern- the pattern to use
-
eraseOval
EraseOval(r) // fills the oval's interior with the background pattern- Parameters:
pRectangle- the rectangle to erase
-
invertOval
InvertOval(r) // reverses the color of all pixels in the oval- Parameters:
pRectangle- the rectangle to invert
-
toArc
private static Arc2D.Double toArc(Rectangle2D pRectangle, int pStartAngle, int pArcAngle, boolean pClosed) Converts a rectangle to an arc.- Parameters:
pRectangle- the framing rectanglepStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)pClosed- specifies if the arc should be closed- Returns:
- the arc
-
frameArc
FrameArc(r,int,int) // outline arc with the size, pattern, and pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to framepStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)
-
paintArc
PaintArc(r,int,int) // fills an arc's interior with the pattern of the graphics pen, using the pattern mode of the graphics pen.- Parameters:
pRectangle- the rectangle to paintpStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)
-
fillArc
FillArc(r,int,int, pat) // fills an arc's interior with any pattern you specify. The procedure transfers the pattern with the patCopy pattern mode, which directly copies your requested pattern into the shape.- Parameters:
pRectangle- the rectangle to fillpStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)pPattern- the pattern to use
-
eraseArc
EraseArc(r,int,int) // fills the arc's interior with the background pattern- Parameters:
pRectangle- the rectangle to erasepStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)
-
invertArc
InvertArc(r,int,int) // reverses the color of all pixels in the arc- Parameters:
pRectangle- the rectangle to invertpStartAngle- start angle in degrees (starting from 12'o clock, this differs from Java)pArcAngle- rotation angle in degrees (starting frompStartAngle, this differs from Java arcs)
-
framePoly
-
paintPoly
-
fillPoly
-
erasePoly
-
invertPoly
-
frameRegion
-
paintRegion
-
fillRegion
-
eraseRegion
-
invertRegion
-
frameShape
-
paintShape
-
fillShape
-
invertShape
-
eraseShape
-
copyBits
public void copyBits(BufferedImage pSrcBitmap, Rectangle pSrcRect, Rectangle pDstRect, int pMode, Shape pMaskRgn) CopyBits.Note that the destination is always
this.- Parameters:
pSrcBitmap- the source bitmap to copy pixels frompSrcRect- the source rectanglepDstRect- the destination rectanglepMode- the blending modepMaskRgn- the mask region
-
copyMask
public void copyMask(BufferedImage pSrcBitmap, BufferedImage pMaskBitmap, Rectangle pSrcRect, Rectangle pMaskRect, Rectangle pDstRect, int pSrcCopy, Shape pMaskRgn) CopyMask -
copyDeepMask
public void copyDeepMask(BufferedImage pSrcBitmap, BufferedImage pMaskBitmap, Rectangle pSrcRect, Rectangle pMaskRect, Rectangle pDstRect, int pSrcCopy, Shape pMaskRgn) CopyDeepMask -- available to basic QuickDraw only in System 7, combines the functionality of both CopyBits and CopyMask -
drawString
DrawString - draws the text of a Pascal string.- Parameters:
pString- a Pascal string (a string of length less than or equal to 255 chars).
-