view dstep/applicationservices/coregraphics/CGPath.d @ 12:9f0b49a2f64e

Added the ApplicationServices frameworks: ATS, ColorSync and CoreGraphics
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 14:00:21 +0200
parents
children
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Aug 1, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.applicationservices.coregraphics.CGPath;

import dstep.corefoundation.CFBase;
import dstep.applicationservices.coregraphics.CGAffineTransform;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.applicationservices.coregraphics.CGGeometry;

struct CGPath;

alias CGPath* CGMutablePathRef;
alias CGPath* CGPathRef;
alias int CGPathElementType;

extern (C)
{
	alias void function (void*, CGPathElement*) CGPathApplierFunction;
}

enum /*CGPathElementType*/ 
{
	kCGPathElementMoveToPoint,
	kCGPathElementAddLineToPoint,
	kCGPathElementAddQuadCurveToPoint,
	kCGPathElementAddCurveToPoint,
	kCGPathElementCloseSubpath
}

struct CGPathElement
{
	int type;
	CGPoint* points;
}

extern (C)
{
	uint CGPathGetTypeID ();
	CGMutablePathRef CGPathCreateMutable ();
	CGPathRef CGPathCreateCopy (CGPathRef path);
	CGMutablePathRef CGPathCreateMutableCopy (CGPathRef path);
	CGPathRef CGPathRetain (CGPathRef path);
	void CGPathRelease (CGPathRef path);
	bool CGPathEqualToPath (CGPathRef path1, CGPathRef path2);
	void CGPathMoveToPoint (CGMutablePathRef path, CGAffineTransform* m, CGFloat x, CGFloat y);
	void CGPathAddLineToPoint (CGMutablePathRef path, CGAffineTransform* m, CGFloat x, CGFloat y);
	void CGPathAddQuadCurveToPoint (CGMutablePathRef path, CGAffineTransform* m, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y);
	void CGPathAddCurveToPoint (CGMutablePathRef path, CGAffineTransform* m, CGFloat cp1x, CGFloat cp1y, CGFloat cp2x, CGFloat cp2y, CGFloat x, CGFloat y);
	void CGPathCloseSubpath (CGMutablePathRef path);
	void CGPathAddRect (CGMutablePathRef path, CGAffineTransform* m, CGRect rect);
	void CGPathAddRects (CGMutablePathRef path, CGAffineTransform* m, CGRect* rects, uint count);
	void CGPathAddLines (CGMutablePathRef path, CGAffineTransform* m, CGPoint* points, uint count);
	void CGPathAddEllipseInRect (CGMutablePathRef path, CGAffineTransform* m, CGRect rect);
	void CGPathAddArc (CGMutablePathRef path, CGAffineTransform* m, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, bool clockwise);
	void CGPathAddArcToPoint (CGMutablePathRef path, CGAffineTransform* m, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius);
	void CGPathAddPath (CGMutablePathRef path1, CGAffineTransform* m, CGPathRef path2);
	bool CGPathIsEmpty (CGPathRef path);
	bool CGPathIsRect (CGPathRef path, CGRect* rect);
	CGPoint CGPathGetCurrentPoint (CGPathRef path);
	CGRect CGPathGetBoundingBox (CGPathRef path);
	bool CGPathContainsPoint (CGPathRef path, CGAffineTransform* m, CGPoint point, bool eoFill);
	void CGPathApply (CGPathRef path, void* info, CGPathApplierFunction function_);
}