Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CP_Graphics_Imp_GDI Class Reference

CP_Graphics_Imp subclass to perform drawing using Windows GDI. More...

Inheritance diagram for CP_Graphics_Imp_GDI:

CP_Graphics_Imp List of all members.

State

virtual void SaveState ()
virtual void RestoreState ()
virtual void ScaleCTM (float, float)
virtual void TranslateCTM (float, float)
virtual void RotateCTM (float)
virtual void SkewCTM (float, float)

Paths

virtual void DrawPath (CP_E_PathDrawingMode)
virtual void PathAddLines (const CP_Point[], SInt16)
virtual void PathAddArc (float, float, float, float, float, SInt16)

Public Member Functions

Constructor / Destructor
 CP_Graphics_Imp_GDI (CP_Canvas &inDestCanvas)
 Constructor.
virtual ~CP_Graphics_Imp_GDI ()
 Destructor.
Setters
virtual void SetAlpha (float inAlpha)
virtual void SetLineWidth (float lineWidth)
virtual void SetStrokeColor (CP_ARGBColor &inStrokeColor)
virtual void SetFillColor (CP_ARGBColor &inFillColor)
Bezier
virtual void StrokeBezier (const CP_Point &inStartPoint, const CP_Point &inControlPointOne, const CP_Point &inControlPointTwo, const CP_Point &inEndPoint)
virtual void StrokeQuadBezier (const CP_Point &inStartPoint, const CP_Point &inControlPointOne, const CP_Point &inEndPoint)
Gradient
virtual void DrawGradient (CP_E_GradientType inGradientType, CP_Rect &inDestBounds)
virtual void SetGradientAngle (SInt16 inAngle)
virtual void SetGradientColor (const SInt16 inIndex, const CP_ARGBColor &inColour)
virtual void SetGradientCount (SInt16 inGradientCount)
Icons
void DrawIcon (const CP_Rect &inBounds, CP_E_IconStyle inIconType, SInt16 inIconID)
void DrawIcon (CP_OSIcon &inPicture, const CP_Rect &inBounds)
Images
virtual void DrawImage (const CP_FileSystemSpec &inImageSpec, CP_Rect &inDestBounds)
virtual void DrawImage (const CP_FileSystemSpec &inImageSpec, CP_Rect &inSourceBounds, CP_Rect &inDestBounds)
virtual void DrawPicture (CP_OSPicture &inPicture, const CP_Rect &inBounds)
Lines
virtual void Line (const CP_Point &inPoint, const CP_Size &inSize)
virtual void Line (float inStartHorLocation, float inStartVerLocation, float inEndHorLocation, float inEndVerLocation)
Paths
virtual void BeginPath ()
virtual void ClosePath ()
virtual void StrokePath ()
virtual void FillPath ()
virtual void FillPath (CP_Pattern &inPattern)
virtual void PathMoveTo (const CP_Point &inPoint)
virtual void PathMoveTo (float inHorLocation, float inVerLocation)
virtual void PathAddLineTo (const CP_Point &inPoint)
virtual void PathAddLines (const CP_Point inPoint[], SInt16 inNumberPoints)
virtual void PathAddLine (const CP_Point &inStartPoint, const CP_Point &inEndPoint)
virtual void PathAddLine (float inStartH, float inStartV, float inEndH, float inEndV)
virtual void PathAddRect (const CP_Rect &inBounds)
virtual void PathAddOval (const CP_Rect &inBounds)
virtual void PathAddBezier (const CP_Point &inStartPoint, const CP_Point &inControlPointOne, const CP_Point &inControlPointTwo, const CP_Point &inEndPoint)
virtual void PathAddQuadBezier (const CP_Point &inStartPoint, const CP_Point &inControlPointOne, const CP_Point &inEndPoint)
virtual void PathAddPoly (CP_Point_Array &inPoints)
virtual void ClipPath ()
Polygons
virtual void StrokePoly (CP_Point_Array &inPoints)
virtual void FillPoly (CP_Point_Array &inPoints)
Rects
virtual void StrokeRect (const CP_Rect &inBounds)
virtual void EraseRect (const CP_Rect &inBounds)
virtual void FillRect (const CP_Rect &inBounds)
Round Rects
virtual void StrokeRoundRect (const CP_Rect &inBounds, SInt16 inHorRadius, SInt16 inVerRadius)
virtual void FillRoundRect (const CP_Rect &inBounds, SInt16 inHorRadius, SInt16 inVerRadius)
Oval
virtual void StrokeOval (const CP_Rect &inBounds)
virtual void FillOval (const CP_Rect &inBounds)
Text
virtual void DrawString (CP_FontSpec &inFontSpec, const CP_String &inText, const CP_Point &inStartPoint)
virtual void DrawText (CP_FontSpec &inFontSpec, const CP_String &inText, const CP_Rect &inBounds, SInt16 inHorAlign=CP_E_TextAlign_HorLeft, SInt16 inVerAlign=CP_E_TextAlign_VerTop, bool inWrapText=true)
virtual void DrawTrunc (CP_FontSpec &inFontSpec, const CP_String &inText, const CP_Rect &inBounds, SInt16 inHorAlign=CP_E_TextAlign_HorLeft, SInt16 inVerAlign=CP_E_TextAlign_VerTop)

Protected Attributes

bool fNeedTransform
CP_Region fClipPath
CP_S_PathOperation_Array fPath
CP_ARGBColor fStrokeColor
CP_ARGBColor fFillColor
CP_Point_Array fPoints
CP_Point_Array fTempRegionPoints
CP_E_GradientType fGradientType
SInt16 fGradientCount
CP_ARGBColor fColors [kCP_MaxGradientColors]
SInt16 fOffsets [kCP_MaxGradientColors]
SInt16 fGradientAngle
CP_Canvas fDestCanvas
float fAlpha
float fLineWidth

Private Member Functions

Misc
void FrameQuadCurve (CP_Canvas &inDestCanvas, const CP_Point &inStartPoint, const CP_Point &inControlPointOne, const CP_Point &inEndPoint)
void FrameCurve (CP_Canvas &inDestCanvas, kCP_QuadCurveCurve *inQuadCurve, SInt16 inLevel)
CP_Region CreatePathRegion ()
CP_Rect GetPolyBounds ()
void InitGradient ()

Detailed Description

This is the CP_Graphics_Imp class used by a CP_Graphics object when the user has selected Windows GDI as the underlying graphics engine. This will also be selected as the native platform type when not running under Windows and GDI+ drawing is not available.


Constructor & Destructor Documentation

CPLAT_Begin_Namespace_CPLAT CP_Graphics_Imp_GDI::CP_Graphics_Imp_GDI CP_Canvas inDestCanvas  ) 
 

Constructor.

Parameters:
inDestCanvas The CP_Canvas object to draw into.
Exceptions:
none 

CP_Graphics_Imp_GDI::~CP_Graphics_Imp_GDI  )  [virtual]
 

Destructor.

Exceptions:
none 


Member Function Documentation

void CP_Graphics_Imp_GDI::SetAlpha float  inAlpha  )  [virtual]
 

Sets the alpha value used when drawing.

Parameters:
inAlpha The alpha value used in drawing.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::SetLineWidth float  inLineWidth  )  [virtual]
 

Sets the line width used in stroking.

Parameters:
inLineWidth The line width used in drawing.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::SetStrokeColor CP_ARGBColor inStrokeColor  )  [virtual]
 

Sets the color used in stroking objects.

Parameters:
inStrokeColor The color used in stroking objects.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::SetFillColor CP_ARGBColor inFillColor  )  [virtual]
 

Sets the color used in filling objects.

Parameters:
inStrokeColor The color used in filling objects.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokeBezier const CP_Point inStartPoint,
const CP_Point inControlPointOne,
const CP_Point inControlPointTwo,
const CP_Point inEndPoint
[virtual]
 

Draws a Bezier curve using the passed in parameters, and then strokes it, using the current stroke color and stroke line width.

Parameters:
inStartPoint The starting point of the curve.
inControlPointOne The first control point curve.
inControlPointTwo The second control point curve.
inEndPoint The ending point of the curve.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokeQuadBezier const CP_Point inStartPoint,
const CP_Point inControlPointOne,
const CP_Point inEndPoint
[virtual]
 

Draws a Quad Bezier curve using the passed in parameters, and then strokes it, using the current stroke color and stroke line width.

Parameters:
inStartPoint The starting point of the curve.
inControlPointOne The first control point curve.
inEndPoint The ending point of the curve.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawGradient CP_E_GradientType  inGradientType,
CP_Rect inDestBounds
[virtual]
 

Draws a gradient in the specified bounds. The gradient can be of the following types:

  • CP_E_GradientType_TopToBottom,
  • CP_E_GradientType_BottomToTop,
  • CP_E_GradientType_LeftToRight,
  • CP_E_GradientType_RightToLeft,
  • CP_E_GradientType_Radial,
  • CP_E_GradientType_Sunburst,
  • CP_E_GradientType_InsetSunburst,
  • CP_E_GradientType_Shapeburst,
  • CP_E_GradientType_Angled

Parameters:
inGradientType The type of gradient to draw. See above for acceptable types.
inDestBounds The bounds of the drawn gradient.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

virtual void CP_Graphics_Imp_GDI::SetGradientAngle SInt16  inAngle  )  [virtual]
 

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::SetGradientColor const SInt16  inIndex,
const CP_ARGBColor inColor
[virtual]
 

Sets one of the colors used to draw the gradient.

Parameters:
inIndex Index where the color is used in drawing.
inColor The color to be used.
Exceptions:
none 
Returns:
void

virtual void CP_Graphics_Imp_GDI::SetGradientCount SInt16  inGradientCount  )  [virtual]
 

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawIcon const CP_Rect inBounds,
CP_E_IconStyle  inIconType,
SInt16  inIconID
[virtual]
 

Draws a icon resource in the passed in bounds. The image will be scaled to fit the rectangle.

Parameters:
inBounds The rectangle to draw the icon in.
inIconType Type type of icon to use.
inIconID Resource ID of the icon to draw.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawIcon CP_OSIcon inIcon,
const CP_Rect inBounds
[virtual]
 

Draws the CP_OSicon in the passed in bounds. The image will be scaled to fit the rectangle.

Parameters:
inIcon A CP_OSIcon that contains the icon to draw.
inBounds The rectangle to draw the picture in.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawImage const CP_FileSystemSpec inImageSpec,
CP_Rect inDestBounds
[virtual]
 

Draws a picture image into the specified area. The image will be scaled to fit into the destination area.

Parameters:
inImageResID Picture resource id.
inDestBounds The area to draw the picture into.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawImage const CP_FileSystemSpec inImageSpec,
CP_Rect inSourceBounds,
CP_Rect inDestBounds
[virtual]
 

Draws a picture image into the specified area. The image will be scaled to fit into the destination area. The image is located in the passed in file spec.

Parameters:
inImageSpec The location of the file containing the image to be displayed.
inDestBounds The area to draw the image into.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawPicture CP_OSPicture inPicture,
const CP_Rect inBounds
[virtual]
 

Draw the passed in OSPicture in the destination bounds, scaling the image as needed to fit.

Parameters:
inPicture The picture to be drawn.
inBounds The destination area to draw the picture.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::Line const CP_Point inPoint,
const CP_Size inSize
[virtual]
 

Draws a line from the passed in start location and going for the distance specified in inSize.

Parameters:
inPoint Starting location of the line.
inSize Size to draw the line.
Exceptions:
none 
Returns:
void

void CP_Graphics_Imp_GDI::Line float  inStartHorLocation,
float  inStartVerLocation,
float  inEndHorLocation,
float  inEndVerLocation
[virtual]
 

Draws a line from the passed in start location to the ending location.

Parameters:
inStartHorLocation The starting horizontal location.
inStartVerLocation The starting vertical location.
inEndHorLocation The ending horizontal location.
inEndVerLocation The ending vertical location.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::BeginPath  )  [virtual]
 

Marks the beginning of a path. This indicates that all subsequent drawing operations until ClosePath is called is collected into the current path. After ClosePath is called, you can then stroke or fill the path. The only drawing calls that are added, are the ones that begin with Path, such as PathMoveTo, PathAddOval, PathAddRect, etc.

        CP_Graphics             graphics( inDestCanvas );

        graphics.BeginPath();

            do some path drawing commands here

        graphics.EndPath();
        graphics.StrokePath();

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::ClosePath  )  [virtual]
 

Closes the current path. Every call to ClosePath needs to have a corresponding BeginPath call.

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokePath  )  [virtual]
 

Strokes the current path.

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillPath  )  [virtual]
 

Fills the current path.

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillPath CP_Pattern inPattern  )  [virtual]
 

Fills the current path with the passed in pattern.

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathMoveTo const CP_Point inPoint  )  [virtual]
 

Sets the current point in the path to that of the passed in point. This is the location where subsequent drawing operations will begin unless the call specifies a new starting point in its params.

Parameters:
inPoint The location to move to.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathMoveTo float  inHorLocation,
float  inVerLocation
[virtual]
 

Sets the current point in the path to that of the passed in coordinates. This is the location where subsequent drawing operations will begin unless the call specifies a new starting point in its params.

Parameters:
inHorLocation The horizontal location to move to.
inVerLocation The vertical location to move to.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddLineTo const CP_Point inPoint  )  [virtual]
 

Adds a line to our path. The line will be drawn from the current point to the location specified in inPoint.

Parameters:
inPoint The ending location of the line.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddLines const CP_Point  inPoint[],
SInt16  inNumberPoints
[virtual]
 

Add inNumberPoints lines to our path. The first point is the starting point, then each additional point has a line drawn from the last point to that point.

Parameters:
inPoint An array of points.
inNumberPoints The number of points in the above array of points.
Exceptions:
none 
Returns:
void

void CP_Graphics_Imp_GDI::PathAddLine const CP_Point inStartPoint,
const CP_Point inEndPoint
[virtual]
 

Adds a starting and ending point to the current path.

Parameters:
inStartPoint The starting point to add.
inEndPoint The ending point to add.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddLine float  inStartH,
float  inStartV,
float  inEndH,
float  inEndV
[virtual]
 

Adds a line to the current path using the specified coordinates.

Parameters:
inStartH Horizontal starting point.
inStartV Vertical starting point.
inEndH Horizontal ending point.
inEndV Vertical ending point.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddRect const CP_Rect inBounds  )  [virtual]
 

Adds a rect to the current path.

Parameters:
inBounds The bounds of the rectangle to add.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddOval const CP_Rect inBounds  )  [virtual]
 

Adds an oval to the current path.

Parameters:
inBounds The bounds of the oval to add.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddBezier const CP_Point inStartPoint,
const CP_Point inControlPointOne,
const CP_Point inControlPointTwo,
const CP_Point inEndPoint
[virtual]
 

Adds a bezier curve to the current path.

Parameters:
inStartPoint The starting point of the curve.
inControlPointOne The first control point curve.
inControlPointTwo The second control point curve.
inEndPoint The ending point of the curve.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddQuadBezier const CP_Point inStartPoint,
const CP_Point inControlPointOne,
const CP_Point inEndPoint
[virtual]
 

Adds a quadratic bezier curve to the current path.

Parameters:
inStartPoint The starting point of the curve.
inControlPointOne The first control point curve.
inEndPoint The ending point of the curve.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::PathAddPoly CP_Point_Array inPoints  )  [virtual]
 

Adds a polygon to the current path as specified in the passed in points array.

Parameters:
inPoints An array of points to draw the polygon.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::ClipPath  )  [virtual]
 

Sets the clipping path of the canvas being drawn into to that of the current path.

Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokePoly CP_Point_Array inPoints  )  [virtual]
 

Draws the polygon specified by the passed in points array, then strokes it.

Parameters:
inPoints Points of the polygon to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillPoly CP_Point_Array inPoints  )  [virtual]
 

Draws the polygon specified by the passed in points array, and fills it.

Parameters:
inPoints Points of the polygon to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokeRect const CP_Rect inBounds  )  [virtual]
 

Draws a rect specified by the passed in bounds, then strokes it.

Parameters:
inBounds Area of the rect to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::EraseRect const CP_Rect inBounds  )  [virtual]
 

Erases the passed in rect using the canvases current background color.

Parameters:
inBounds The rectangle to erase.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillRect const CP_Rect inBounds  )  [virtual]
 

Draws a rect specified by the passed in bounds, then fills it.

Parameters:
inBounds Area of the rect to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokeRoundRect const CP_Rect inBounds,
SInt16  inHorRadius,
SInt16  inVerRadius
[virtual]
 

Draws a rounded rect specified by the passed in rect, then strokes it.

Parameters:
inBounds The bounds of the rect to be drawn.
inHorRadius Horizontal radius of the corners.
inVerRadius Vertical radius of the corners.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillRoundRect const CP_Rect inBounds,
SInt16  inHorRadius,
SInt16  inVerRadius
[virtual]
 

Draws a rounded rect specified by the passed in rect, then fills it.

Parameters:
inBounds The bounds of the rect to be drawn.
inHorRadius Horizontal radius of the corners.
inVerRadius Vertical radius of the corners.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::StrokeOval const CP_Rect inBounds  )  [virtual]
 

Draws an oval specified by the passed in rect, then strokes it.

Parameters:
inBounds The bounds of the oval to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FillOval const CP_Rect inBounds  )  [virtual]
 

Draws an oval specified by the passed in rect, then fills it.

Parameters:
inBounds The bounds of the oval to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawString CP_FontSpec inFontSpec,
const CP_String inText,
const CP_Point inStartPoint
[virtual]
 

Draws the passed in text at the location specified. The text will not be wrapped.

Parameters:
inFontSpec FontSpec object that describes the font and justification of the text.
inText The text to be drawn.
inStartPoint The starting point to draw the text.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawText CP_FontSpec inFontSpec,
const CP_String inText,
const CP_Rect inBounds,
SInt16  inHorAlign = CP_E_TextAlign_HorLeft,
SInt16  inVerAlign = CP_E_TextAlign_VerTop,
bool  inWrapText = true
[virtual]
 

Draws the passed in text at the locatio specified. The text will be wrapped to fit in the passed in bounds.

Parameters:
inFontSpec FontSpec object that describes the font and justification of the text.
inText The text to be drawn.
inBounds The bounds to draw the text in.
inHorAlign The horizontal alignment of the text. It should be one of the following:
  • CP_E_TextAlign_HorLeft
  • CP_E_TextAlign_HorCenter
  • CP_E_TextAlign_HorRight
inVerAlign The vertical alignment of the text. It should be one of the following:
  • CP_E_TextAlign_VerTop
  • CP_E_TextAlign_VerMiddle
  • CP_E_TextAlign_VerBottom
inWrapText If true, then the text is wrapped at the right edge of the passed in bounds.
Exceptions:
none 
Returns:
void

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::DrawTrunc CP_FontSpec inFontSpec,
const CP_String inText,
const CP_Rect inBounds,
SInt16  inHorAlign = CP_E_TextAlign_HorLeft,
SInt16  inVerAlign = CP_E_TextAlign_VerTop
[virtual]
 

Reimplemented from CP_Graphics_Imp.

void CP_Graphics_Imp_GDI::FrameQuadCurve CP_Canvas inDestCanvas,
const CP_Point inStartPoint,
const CP_Point inControlPointOne,
const CP_Point inEndPoint
[private]
 

Private routine to draw the quadratic bezier curve.

Parameters:
inStartPoint The starting point of the curve.
inControlPointOne The first control point curve.
inEndPoint The ending point of the curve.
Exceptions:
none 
Returns:
void

void CP_Graphics_Imp_GDI::FrameCurve CP_Canvas inDestCanvas,
kCP_QuadCurveCurve inQuadCurve,
SInt16  inLevel
[private]
 

Private routine to draw the bezier curve.

Parameters:
kCP_QuadCurveCurve Pointer to a tructure that describe the curves data.
inLevel The level of the curve.
Exceptions:
none 
Returns:
void

CP_Region CP_Graphics_Imp_GDI::CreatePathRegion  )  [private]
 

Creates a MacOS Region that contains all of the recorded path drawing operations. This is the region that can then be stroked, filled or used as a clipping path. This is a private, internal routine to this class.

Exceptions:
none 
Returns:
RgnHandle MacOS region.

CP_Rect CP_Graphics_Imp_GDI::GetPolyBounds  )  [private]
 

Private routine to return the bounds of a polygon.

Exceptions:
none 
Returns:
void

void CP_Graphics_Imp_GDI::InitGradient  )  [private]
 

Initialize our gradient to a default top to bottom, black & white pattern.

Exceptions:
none 
Returns:
void

virtual float CP_Graphics_Imp::GetLineWidth  )  [virtual, inherited]
 

Returns the current width used in drawing lines.

Exceptions:
none 
Returns:
float The width of drawn lines.

virtual float CP_Graphics_Imp::GetAlpha  )  [virtual, inherited]
 

Returns the current alpha value used when drawing.

Exceptions:
none 
Returns:
float The alpha value used in drawing.

virtual CP_ARGBColor CP_Graphics_Imp::GetStrokeColor  )  [virtual, inherited]
 

Returns the current color used in stroking.

Exceptions:
none 
Returns:
CP_ARGBColor The color used in stroking.

virtual CP_ARGBColor CP_Graphics_Imp::GetFillColor  )  [virtual, inherited]
 

Returns the current color used in filling.

Exceptions:
none 
Returns:
CP_ARGBColor The color used in filling.

CP_Canvas CP_Graphics_Imp::GetCanvas  )  [inherited]
 

Returns the CP_Canvas object to be drawn into.

Exceptions:
none 
Returns:
CP_Canvas The canvas used to draw into.

virtual void CP_Graphics_Imp::SetLineJoin CP_E_GraphicsLineJoin   )  [virtual, inherited]
 

Sets the line join for determing how lines will be drawn when they join. Note: Some platforms do not support line join, and they will be drawn in the normal style. Current values for inLineJoint can be:

  • CP_E_GraphicsLineJoin_Miter
  • CP_E_GraphicsLineJoin_Round
  • CP_E_GraphicsLineJoin_JoinBevel

Parameters:
inLineJoint The way that the lines will join when drawn.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::SetLineCap CP_E_GraphicsLineCap   )  [virtual, inherited]
 

Sets the line cap for determing how lines ending will be drawn. Note: Some platforms do not support line caps, and they will be drawn in the normal style. Current values for inLineCap can be:

  • CP_E_GraphicsLineCap_Butt,
  • CP_E_GraphicsLineCap_Round,
  • CP_E_GraphicsLineCap_Square

Parameters:
inLineCap The way that the line ends are drawn.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::SaveState  )  [virtual, inherited]
 

Saves the current graphics state.

Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::RestoreState  )  [virtual, inherited]
 

Restore the current graphics state. Each RestoreState needs to have a matching SaveState called before calling this.

        CP_Graphics             graphics( inDestCanvas );

        graphics.SaveState();

            do some drawing and state changes here, such as setting colors, line styles

        graphics.RestoreState();

Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::ScaleCTM float  ,
float 
[virtual, inherited]
 

Sets the scaling amount to be used in the current transformation matrix.

Parameters:
inHorAmt The horizontal amount to scale.
inVerAmt The vertical amount to scale.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::TranslateCTM float  ,
float 
[virtual, inherited]
 

Sets the translation amount to be used in the current transformation matrix.

Parameters:
inHorAmt Horizontal amount to use in translation.
inVerAmt Vertical amount to use in translation.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::RotateCTM float   )  [virtual, inherited]
 

Sets the rotation amount to be used in the current transformation matrix.

Parameters:
inAngle The angle to use in rotation.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::SkewCTM float  ,
float 
[virtual, inherited]
 

Sets the skewing amount to be used in the current transformation matrix.

Parameters:
inHorAmt The horizontal amount to skew.
inVerAmt The vertical amount to skew.
Exceptions:
none 
Returns:
void

virtual void CP_Graphics_Imp::StrokeArc float  ,
float  ,
float  ,
float  ,
float 
[virtual, inherited]
 

Draws an arc using the passed in parameters, and then strokes it, using the current stroke color and stroke line width.

Parameters:
inHorCenter The horizontal center coordinate of the arc.
inVerCenter The vertical center coordinate of the arc.
inRadius The radius of the arc.
inStartAngle The starting angle of the arc.
inEndAngle The ending angle of the arc.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::FillArc float  ,
float  ,
float  ,
float  ,
float 
[virtual, inherited]
 

Draws an arc using the passed in parameters, and then fills it, using the current fill color.

Parameters:
inHorCenter The horizontal center coordinate of the arc.
inVerCenter The vertical center coordinate of the arc.
inRadius The radius of the arc.
inStartAngle The starting angle of the arc.
inEndAngle The ending angle of the arc.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::SetGradientColor const   SInt16,
const CP_ARGBColor
[virtual, inherited]
 

Sets one of the colors used to draw the gradient.

Parameters:
inIndex Index where the color is used in drawing.
inColor The color to be used.
Exceptions:
none 
Returns:
void

virtual void CP_Graphics_Imp::DrawImage SInt16  ,
CP_Rect
[virtual, inherited]
 

Draws a picture image into the specified area. The image will be scaled to fit into the destination area.

Parameters:
inImageResID Picture resource id.
inDestBounds The area to draw the picture into.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::DrawPath CP_E_PathDrawingMode   )  [virtual, inherited]
 

Draws the current path using the passed in path drawing mode, which can be one of the following:

  • CP_E_Graphics_PathFill
  • CP_E_Graphics_PathEOFill
  • CP_E_Graphics_PathStroke
  • CP_E_Graphics_PathFillStroke
  • CP_E_Graphics_PathEOFillStroke

Parameters:
inPathDrawMode The path drawing mode to use.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::PathAddLines const   CP_Point[],
SInt16 
[virtual, inherited]
 

Add inNumberPoints lines to our path. The first point is the starting point, then each additional point has a line drawn from the last point to that point.

Parameters:
inPoint An array of points.
inNumberPoints The number of points in the above array of points.
Exceptions:
none 
Returns:
void

virtual void CP_Graphics_Imp::PathAddArc float  ,
float  ,
float  ,
float  ,
float  ,
SInt16 
[virtual, inherited]
 

Add an arc of a circle to the context's path, possibly preceded by a straight line segment. `(inHorCenter, inVerCenter)' is the center of the arc; `inRadius' is its radius; `inStartAngle' is the angle to the first endpoint of the arc; `inEndAngle' is the angle to the second endpoint of the arc; and `inClockwise' is 1 if the arc is to be drawn clockwise, 0 otherwise. `inStartAngle' and `inEndAngle' are measured in radians.

Parameters:
inHorCenter The horizontal center coordinate of the arc.
inVerCenter The vertical center coordinate of the arc.
inRadius The radius of the arc.
inStartAngle The starting angle of the arc.
inEndAngle The ending angle of the arc.
inClockwise Flag to indicate if the arc is drawn clockwise or counter clockwise.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::StrokeRegion const CP_Region  )  [virtual, inherited]
 

Draws a region specified by the passed in region, then strokes it.

Parameters:
inRegion Region to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::FillRegion const CP_Region  )  [virtual, inherited]
 

Draws a region specified by the passed in region, then fills it.

Parameters:
inRegion Region to be drawn.
Exceptions:
none 
Returns:
void

Reimplemented in CP_Graphics_Imp_Quartz.

virtual void CP_Graphics_Imp::SetTextRenderingFlags SInt16   )  [virtual, inherited]
 

Sets a flag to indicate how the text will be drawn in the destination canvas, if the platform supports them. Such as transparent or opaque.

Parameters:
inFlags The flags to set.
Exceptions:
none 
Returns:
void


Member Data Documentation

bool CP_Graphics_Imp_GDI::fNeedTransform [protected]
 

CP_Region CP_Graphics_Imp_GDI::fClipPath [protected]
 

Flag to indicate if any drawing operation needs transformation.

CP_S_PathOperation_Array CP_Graphics_Imp_GDI::fPath [protected]
 

Region used for clipping.

CP_ARGBColor CP_Graphics_Imp_GDI::fStrokeColor [protected]
 

An array of path operations.

Reimplemented from CP_Graphics_Imp.

CP_ARGBColor CP_Graphics_Imp_GDI::fFillColor [protected]
 

Color used when stroking an area.

Reimplemented from CP_Graphics_Imp.

CP_Point_Array CP_Graphics_Imp_GDI::fPoints [protected]
 

Color used when filling an area.

CP_Point_Array CP_Graphics_Imp_GDI::fTempRegionPoints [protected]
 

Points used to draw the polygon.

CP_E_GradientType CP_Graphics_Imp_GDI::fGradientType [protected]
 

Points used to draw a region. Working copy.

SInt16 CP_Graphics_Imp_GDI::fGradientCount [protected]
 

Type of gradient.

CP_ARGBColor CP_Graphics_Imp_GDI::fColors[kCP_MaxGradientColors] [protected]
 

Number of colors in gradient.

SInt16 CP_Graphics_Imp_GDI::fOffsets[kCP_MaxGradientColors] [protected]
 

List of colors in gradient.

SInt16 CP_Graphics_Imp_GDI::fGradientAngle [protected]
 

Offsets used to draw gradient.

CP_Canvas CP_Graphics_Imp::fDestCanvas [protected, inherited]
 

float CP_Graphics_Imp::fAlpha [protected, inherited]
 

Destination canvas to draw into.

float CP_Graphics_Imp::fLineWidth [protected, inherited]
 

Alpha value for drawing.


The documentation for this class was generated from the following files:
Generated on Sat Sep 17 20:01:43 2005 for CPLAT by  doxygen 1.4.0