view dstep/quartzcore/CALayer.d @ 22:f8a3b67adfcb

Removed duplicated methods
author Jacob Carlborg <doob@me.com>
date Tue, 09 Feb 2010 18:02:03 +0100
parents 19885b43130e
children b9de51448c6b
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Sep 24, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.quartzcore.CALayer;

import dstep.applicationservices.coregraphics.CGAffineTransform;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.applicationservices.coregraphics.CGColor;
import dstep.applicationservices.coregraphics.CGContext;
import dstep.applicationservices.coregraphics.CGGeometry;
import dstep.foundation.NSArray;
import dstep.foundation.NSCoder;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSEnumerator;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;
import dstep.quartzcore.CAAnimation;
import dstep.quartzcore.CAConstraintLayoutManager;
import dstep.quartzcore.CAMediaTiming;
import dstep.quartzcore.CAScrollLayer;
import dstep.quartzcore.CATransform3D;

import bindings = dstep.quartzcore.CALayer_bindings;

private
{
	NSString kCAGravityCenter_;
	NSString kCAGravityTop_;
	NSString kCAGravityBottom_;
	NSString kCAGravityLeft_;
	NSString kCAGravityRight_;
	NSString kCAGravityTopLeft_;
	NSString kCAGravityTopRight_;
	NSString kCAGravityBottomLeft_;
	NSString kCAGravityBottomRight_;
	NSString kCAGravityResize_;
	NSString kCAGravityResizeAspect_;
	NSString kCAGravityResizeAspectFill_;
	NSString kCAFilterLinear_;
	NSString kCAFilterNearest_;
	NSString kCAOnOrderIn_;
	NSString kCAOnOrderOut_;
	NSString kCATransition_;
}

NSString kCAGravityCenter ()
{
	if (kCAGravityCenter_)
		return kCAGravityCenter_;

	return kCAGravityCenter_ = new NSString(bindings.kCAGravityCenter);
}

NSString kCAGravityTop ()
{
	if (kCAGravityTop_)
		return kCAGravityTop_;

	return kCAGravityTop_ = new NSString(bindings.kCAGravityTop);
}

NSString kCAGravityBottom ()
{
	if (kCAGravityBottom_)
		return kCAGravityBottom_;

	return kCAGravityBottom_ = new NSString(bindings.kCAGravityBottom);
}

NSString kCAGravityLeft ()
{
	if (kCAGravityLeft_)
		return kCAGravityLeft_;

	return kCAGravityLeft_ = new NSString(bindings.kCAGravityLeft);
}

NSString kCAGravityRight ()
{
	if (kCAGravityRight_)
		return kCAGravityRight_;

	return kCAGravityRight_ = new NSString(bindings.kCAGravityRight);
}

NSString kCAGravityTopLeft ()
{
	if (kCAGravityTopLeft_)
		return kCAGravityTopLeft_;

	return kCAGravityTopLeft_ = new NSString(bindings.kCAGravityTopLeft);
}

NSString kCAGravityTopRight ()
{
	if (kCAGravityTopRight_)
		return kCAGravityTopRight_;

	return kCAGravityTopRight_ = new NSString(bindings.kCAGravityTopRight);
}

NSString kCAGravityBottomLeft ()
{
	if (kCAGravityBottomLeft_)
		return kCAGravityBottomLeft_;

	return kCAGravityBottomLeft_ = new NSString(bindings.kCAGravityBottomLeft);
}

NSString kCAGravityBottomRight ()
{
	if (kCAGravityBottomRight_)
		return kCAGravityBottomRight_;

	return kCAGravityBottomRight_ = new NSString(bindings.kCAGravityBottomRight);
}

NSString kCAGravityResize ()
{
	if (kCAGravityResize_)
		return kCAGravityResize_;

	return kCAGravityResize_ = new NSString(bindings.kCAGravityResize);
}

NSString kCAGravityResizeAspect ()
{
	if (kCAGravityResizeAspect_)
		return kCAGravityResizeAspect_;

	return kCAGravityResizeAspect_ = new NSString(bindings.kCAGravityResizeAspect);
}

NSString kCAGravityResizeAspectFill ()
{
	if (kCAGravityResizeAspectFill_)
		return kCAGravityResizeAspectFill_;

	return kCAGravityResizeAspectFill_ = new NSString(bindings.kCAGravityResizeAspectFill);
}

NSString kCAFilterLinear ()
{
	if (kCAFilterLinear_)
		return kCAFilterLinear_;

	return kCAFilterLinear_ = new NSString(bindings.kCAFilterLinear);
}

NSString kCAFilterNearest ()
{
	if (kCAFilterNearest_)
		return kCAFilterNearest_;

	return kCAFilterNearest_ = new NSString(bindings.kCAFilterNearest);
}

NSString kCAOnOrderIn ()
{
	if (kCAOnOrderIn_)
		return kCAOnOrderIn_;

	return kCAOnOrderIn_ = new NSString(bindings.kCAOnOrderIn);
}

NSString kCAOnOrderOut ()
{
	if (kCAOnOrderOut_)
		return kCAOnOrderOut_;

	return kCAOnOrderOut_ = new NSString(bindings.kCAOnOrderOut);
}

NSString kCATransition ()
{
	if (kCATransition_)
		return kCATransition_;

	return kCATransition_ = new NSString(bindings.kCATransition);
}

enum CAAutoresizingMask

{
	kCALayerNotSizable = 0,
	kCALayerMinXMargin = 1U << 0,
	kCALayerWidthSizable = 1U << 1,
	kCALayerMaxXMargin = 1U << 2,
	kCALayerMinYMargin = 1U << 3,
	kCALayerHeightSizable = 1U << 4,
	kCALayerMaxYMargin = 1U << 5
}

enum CAEdgeAntialiasingMask

{
	kCALayerLeftEdge = 1U << 0,
	kCALayerRightEdge = 1U << 1,
	kCALayerBottomEdge = 1U << 2,
	kCALayerTopEdge = 1U << 3
}

class CALayer : NSObject, INSCoding, ICAMediaTiming
{
	mixin (ObjcWrap);
	
	void encodeWithCoder (NSCoder aCoder)
	{
		return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
	}
	
	CALayer initWithCoder (NSCoder aDecoder)
	{
		return invokeObjcSelf!(CALayer, "initWithCoder:", NSCoder)(aDecoder);
	}
	
	static Object layer ()
	{
		return invokeObjcSelfClass!(Object, "layer");
	}

	CALayer init ()
	{
		id result = invokeObjcSelf!(id, "init");
		return result is this.objcObject ? this : (result !is null ? new CALayer(result) : null);
	}

	this ()
	{
		super(CALayer.alloc.init.objcObject);
	}

	CALayer initWithLayer (Object layer)
	{
		id result = invokeObjcSelf!(id, "initWithLayer:", Object)(layer);
		return result is this.objcObject ? this : (result !is null ? new CALayer(result) : null);
	}

	this (Object layer)
	{
		super(CALayer.alloc.initWithLayer(layer).objcObject);
	}

	Object presentationLayer ()
	{
		return invokeObjcSelf!(Object, "presentationLayer");
	}

	Object modelLayer ()
	{
		return invokeObjcSelf!(Object, "modelLayer");
	}

	static Object defaultValueForKey (NSString key)
	{
		return invokeObjcSelfClass!(Object, "defaultValueForKey:", NSString)(key);
	}

	bool shouldArchiveValueForKey (NSString key)
	{
		return invokeObjcSelf!(bool, "shouldArchiveValueForKey:", NSString)(key);
	}

	CGRect bounds ()
	{
		return invokeObjcSelf!(CGRect, "bounds");
	}

	void setBounds (CGRect arg0)
	{
		return invokeObjcSelf!(void, "setBounds:", CGRect)(arg0);
	}

	CGPoint position ()
	{
		return invokeObjcSelf!(CGPoint, "position");
	}

	void setPosition (CGPoint arg0)
	{
		return invokeObjcSelf!(void, "setPosition:", CGPoint)(arg0);
	}

	CGFloat zPosition ()
	{
		return invokeObjcSelf!(CGFloat, "zPosition");
	}

	void setZPosition (CGFloat arg0)
	{
		return invokeObjcSelf!(void, "setZPosition:", CGFloat)(arg0);
	}

	CGPoint anchorPoint ()
	{
		return invokeObjcSelf!(CGPoint, "anchorPoint");
	}

	void setAnchorPoint (CGPoint arg0)
	{
		return invokeObjcSelf!(void, "setAnchorPoint:", CGPoint)(arg0);
	}

	CATransform3D transform ()
	{
		return invokeObjcSelf!(CATransform3D, "transform");
	}

	void setTransform (CATransform3D arg0)
	{
		return invokeObjcSelf!(void, "setTransform:", CATransform3D)(arg0);
	}

	CGAffineTransform affineTransform ()
	{
		return invokeObjcSelf!(CGAffineTransform, "affineTransform");
	}

	void setAffineTransform (CGAffineTransform m)
	{
		return invokeObjcSelf!(void, "setAffineTransform:", CGAffineTransform)(m);
	}

	CGRect frame ()
	{
		return invokeObjcSelf!(CGRect, "frame");
	}

	void setFrame (CGRect arg0)
	{
		return invokeObjcSelf!(void, "setFrame:", CGRect)(arg0);
	}

	bool isHidden ()
	{
		return invokeObjcSelf!(bool, "isHidden");
	}

	void setHidden (bool arg0)
	{
		return invokeObjcSelf!(void, "setHidden:", bool)(arg0);
	}

	bool isDoubleSided ()
	{
		return invokeObjcSelf!(bool, "isDoubleSided");
	}

	void setDoubleSided (bool arg0)
	{
		return invokeObjcSelf!(void, "setDoubleSided:", bool)(arg0);
	}

	void removeFromSuperlayer ()
	{
		return invokeObjcSelf!(void, "removeFromSuperlayer");
	}

	void addSublayer (CALayer layer)
	{
		return invokeObjcSelf!(void, "addSublayer:", CALayer)(layer);
	}

	void insertSublayer (CALayer layer, uint idx)
	{
		return invokeObjcSelf!(void, "insertSublayer:atIndex:", CALayer, uint)(layer, idx);
	}

	void insertSublayer (CALayer layer, CALayer sibling)
	{
		return invokeObjcSelf!(void, "insertSublayer:below:", CALayer, CALayer)(layer, sibling);
	}

	void insertSublayer_above (CALayer layer, CALayer sibling)
	{
		return invokeObjcSelf!(void, "insertSublayer:above:", CALayer, CALayer)(layer, sibling);
	}

	void replaceSublayer (CALayer layer, CALayer layer2)
	{
		return invokeObjcSelf!(void, "replaceSublayer:with:", CALayer, CALayer)(layer, layer2);
	}

	CATransform3D sublayerTransform ()
	{
		return invokeObjcSelf!(CATransform3D, "sublayerTransform");
	}

	void setSublayerTransform (CATransform3D arg0)
	{
		return invokeObjcSelf!(void, "setSublayerTransform:", CATransform3D)(arg0);
	}

	bool masksToBounds ()
	{
		return invokeObjcSelf!(bool, "masksToBounds");
	}

	void setMasksToBounds (bool arg0)
	{
		return invokeObjcSelf!(void, "setMasksToBounds:", bool)(arg0);
	}

	CGPoint convertPoint (CGPoint p, CALayer l)
	{
		return invokeObjcSelf!(CGPoint, "convertPoint:fromLayer:", CGPoint, CALayer)(p, l);
	}

	CGPoint convertPoint_toLayer (CGPoint p, CALayer l)
	{
		return invokeObjcSelf!(CGPoint, "convertPoint:toLayer:", CGPoint, CALayer)(p, l);
	}

	CGRect convertRect (CGRect r, CALayer l)
	{
		return invokeObjcSelf!(CGRect, "convertRect:fromLayer:", CGRect, CALayer)(r, l);
	}

	CGRect convertRect_toLayer (CGRect r, CALayer l)
	{
		return invokeObjcSelf!(CGRect, "convertRect:toLayer:", CGRect, CALayer)(r, l);
	}

	double convertTime (double t, CALayer l)
	{
		return invokeObjcSelf!(double, "convertTime:fromLayer:", double, CALayer)(t, l);
	}

	double convertTime_toLayer (double t, CALayer l)
	{
		return invokeObjcSelf!(double, "convertTime:toLayer:", double, CALayer)(t, l);
	}

	CALayer hitTest (CGPoint p)
	{
		id result = invokeObjcSelf!(id, "hitTest:", CGPoint)(p);
		return result is this.objcObject ? this : (result !is null ? new CALayer(result) : null);
	}

	bool containsPoint (CGPoint p)
	{
		return invokeObjcSelf!(bool, "containsPoint:", CGPoint)(p);
	}

	Object contents ()
	{
		return invokeObjcSelf!(Object, "contents");
	}

	void setContents (Object arg0)
	{
		return invokeObjcSelf!(void, "setContents:", Object)(arg0);
	}

	CGRect contentsRect ()
	{
		return invokeObjcSelf!(CGRect, "contentsRect");
	}

	void setContentsRect (CGRect arg0)
	{
		return invokeObjcSelf!(void, "setContentsRect:", CGRect)(arg0);
	}

	bool isOpaque ()
	{
		return invokeObjcSelf!(bool, "isOpaque");
	}

	void setOpaque (bool arg0)
	{
		return invokeObjcSelf!(void, "setOpaque:", bool)(arg0);
	}

	void display ()
	{
		return invokeObjcSelf!(void, "display");
	}

	void setNeedsDisplay ()
	{
		return invokeObjcSelf!(void, "setNeedsDisplay");
	}

	void setNeedsDisplayInRect (CGRect r)
	{
		return invokeObjcSelf!(void, "setNeedsDisplayInRect:", CGRect)(r);
	}

	bool needsDisplayOnBoundsChange ()
	{
		return invokeObjcSelf!(bool, "needsDisplayOnBoundsChange");
	}

	void setNeedsDisplayOnBoundsChange (bool arg0)
	{
		return invokeObjcSelf!(void, "setNeedsDisplayOnBoundsChange:", bool)(arg0);
	}

	void drawInContext (CGContextRef ctx)
	{
		return invokeObjcSelf!(void, "drawInContext:", CGContextRef)(ctx);
	}

	void renderInContext (CGContextRef ctx)
	{
		return invokeObjcSelf!(void, "renderInContext:", CGContextRef)(ctx);
	}

	uint edgeAntialiasingMask ()
	{
		return invokeObjcSelf!(uint, "edgeAntialiasingMask");
	}

	void setEdgeAntialiasingMask (uint arg0)
	{
		return invokeObjcSelf!(void, "setEdgeAntialiasingMask:", uint)(arg0);
	}

	CGColorRef backgroundColor ()
	{
		return invokeObjcSelf!(CGColorRef, "backgroundColor");
	}

	void setBackgroundColor (CGColorRef arg0)
	{
		return invokeObjcSelf!(void, "setBackgroundColor:", CGColorRef)(arg0);
	}

	CGFloat cornerRadius ()
	{
		return invokeObjcSelf!(CGFloat, "cornerRadius");
	}

	void setCornerRadius (CGFloat arg0)
	{
		return invokeObjcSelf!(void, "setCornerRadius:", CGFloat)(arg0);
	}

	CGFloat borderWidth ()
	{
		return invokeObjcSelf!(CGFloat, "borderWidth");
	}

	void setBorderWidth (CGFloat arg0)
	{
		return invokeObjcSelf!(void, "setBorderWidth:", CGFloat)(arg0);
	}

	CGColorRef borderColor ()
	{
		return invokeObjcSelf!(CGColorRef, "borderColor");
	}

	void setBorderColor (CGColorRef arg0)
	{
		return invokeObjcSelf!(void, "setBorderColor:", CGColorRef)(arg0);
	}

	float opacity ()
	{
		return invokeObjcSelf!(float, "opacity");
	}

	void setOpacity (float arg0)
	{
		return invokeObjcSelf!(void, "setOpacity:", float)(arg0);
	}

	Object compositingFilter ()
	{
		return invokeObjcSelf!(Object, "compositingFilter");
	}

	void setCompositingFilter (Object arg0)
	{
		return invokeObjcSelf!(void, "setCompositingFilter:", Object)(arg0);
	}

	CGColorRef shadowColor ()
	{
		return invokeObjcSelf!(CGColorRef, "shadowColor");
	}

	void setShadowColor (CGColorRef arg0)
	{
		return invokeObjcSelf!(void, "setShadowColor:", CGColorRef)(arg0);
	}

	float shadowOpacity ()
	{
		return invokeObjcSelf!(float, "shadowOpacity");
	}

	void setShadowOpacity (float arg0)
	{
		return invokeObjcSelf!(void, "setShadowOpacity:", float)(arg0);
	}

	CGSize shadowOffset ()
	{
		return invokeObjcSelf!(CGSize, "shadowOffset");
	}

	void setShadowOffset (CGSize arg0)
	{
		return invokeObjcSelf!(void, "setShadowOffset:", CGSize)(arg0);
	}

	CGFloat shadowRadius ()
	{
		return invokeObjcSelf!(CGFloat, "shadowRadius");
	}

	void setShadowRadius (CGFloat arg0)
	{
		return invokeObjcSelf!(void, "setShadowRadius:", CGFloat)(arg0);
	}

	uint autoresizingMask ()
	{
		return invokeObjcSelf!(uint, "autoresizingMask");
	}

	void setAutoresizingMask (uint arg0)
	{
		return invokeObjcSelf!(void, "setAutoresizingMask:", uint)(arg0);
	}

	Object layoutManager ()
	{
		return invokeObjcSelf!(Object, "layoutManager");
	}

	void setLayoutManager (Object arg0)
	{
		return invokeObjcSelf!(void, "setLayoutManager:", Object)(arg0);
	}

	CGSize preferredFrameSize ()
	{
		return invokeObjcSelf!(CGSize, "preferredFrameSize");
	}

	void setNeedsLayout ()
	{
		return invokeObjcSelf!(void, "setNeedsLayout");
	}

	void layoutIfNeeded ()
	{
		return invokeObjcSelf!(void, "layoutIfNeeded");
	}

	void layoutSublayers ()
	{
		return invokeObjcSelf!(void, "layoutSublayers");
	}

	void resizeSublayersWithOldSize (CGSize size)
	{
		return invokeObjcSelf!(void, "resizeSublayersWithOldSize:", CGSize)(size);
	}

	void resizeWithOldSuperlayerSize (CGSize size)
	{
		return invokeObjcSelf!(void, "resizeWithOldSuperlayerSize:", CGSize)(size);
	}

	static ICAAction defaultActionForKey (NSString event)
	{
		return invokeObjcSelfClass!(ICAAction, "defaultActionForKey:", NSString)(event);
	}

	ICAAction actionForKey (NSString event)
	{
		return invokeObjcSelf!(ICAAction, "actionForKey:", NSString)(event);
	}

	void addAnimation (CAAnimation anim, NSString key)
	{
		return invokeObjcSelf!(void, "addAnimation:forKey:", CAAnimation, NSString)(anim, key);
	}

	void removeAllAnimations ()
	{
		return invokeObjcSelf!(void, "removeAllAnimations");
	}

	void removeAnimationForKey (NSString key)
	{
		return invokeObjcSelf!(void, "removeAnimationForKey:", NSString)(key);
	}

	CAAnimation animationForKey (NSString key)
	{
		return invokeObjcSelf!(CAAnimation, "animationForKey:", NSString)(key);
	}

	Object delegate_ ()
	{
		return invokeObjcSelf!(Object, "delegate");
	}

	void setDelegate (Object arg0)
	{
		return invokeObjcSelf!(void, "setDelegate:", Object)(arg0);
	}

	double beginTime ()
	{
		return invokeObjcSelf!(double, "beginTime");
	}

	void beginTime (double arg0)
	{
		return invokeObjcSelf!(void, "setBeginTime:", double)(arg0);
	}
	
	alias beginTime setBeginTime;

	double duration ()
	{
		return invokeObjcSelf!(double, "duration");
	}

	void duration (double arg0)
	{
		return invokeObjcSelf!(void, "setDuration:", double)(arg0);
	}
	
	alias duration setDuration;

	float speed ()
	{
		return invokeObjcSelf!(float, "speed");
	}

	void speed (float arg0)
	{
		return invokeObjcSelf!(void, "setSpeed:", float)(arg0);
	}
	
	alias speed setSpeed;

	double timeOffset ()
	{
		return invokeObjcSelf!(double, "timeOffset");
	}

	void timeOffset (double arg0)
	{
		return invokeObjcSelf!(void, "setTimeOffset:", double)(arg0);
	}
	
	alias timeOffset setTimeOffset;

	float repeatCount ()
	{
		return invokeObjcSelf!(float, "repeatCount");
	}

	void repeatCount (float arg0)
	{
		return invokeObjcSelf!(void, "setRepeatCount:", float)(arg0);
	}
	
	alias repeatCount setRepeatCount;

	double repeatDuration ()
	{
		return invokeObjcSelf!(double, "repeatDuration");
	}

	void repeatDuration (double arg0)
	{
		return invokeObjcSelf!(void, "setRepeatDuration:", double)(arg0);
	}
	
	alias repeatDuration setRepeatDuration;
	
	NSString fillMode ()
	{
		return invokeObjcSelf!(NSString, "fillMode");
	}
	
	void fillMode (NSString mode)
	{
		return invokeObjcSelf!(void, "setFillMode:", NSString)(mode);
	}
	
	alias fillMode setFillMode;

	bool autoreverses ()
	{
		return invokeObjcSelf!(bool, "autoreverses");
	}

	void autoreverses (bool arg0)
	{
		return invokeObjcSelf!(void, "setAutoreverses:", bool)(arg0);
	}
	
	alias autoreverses setAutoreverses;
	
	// CAConstraintLayoutManager
	void addConstraint (CAConstraint c)
	{
		return invokeObjcSelf!(void, "addConstraint:", CAConstraint)(c);
	}
	
	// CALayerScrolling
	void scrollPoint (CGPoint p)
	{
		return invokeObjcSelf!(void, "scrollPoint:", CGPoint)(p);
	}

	void scrollRectToVisible (CGRect r)
	{
		return invokeObjcSelf!(void, "scrollRectToVisible:", CGRect)(r);
	}

	CGRect visibleRect ()
	{
		return invokeObjcSelf!(CGRect, "visibleRect");
	}
}

interface ICAAction
{
	static Object layer ();
	NSObject init ();
	NSObject initWithLayer (Object layer);
	Object presentationLayer ();
	Object modelLayer ();
	static Object defaultValueForKey (NSString key);
	bool shouldArchiveValueForKey (NSString key);
	CGRect bounds ();
	void setBounds (CGRect arg0);
	CGPoint position ();
	void setPosition (CGPoint arg0);
	CGFloat zPosition ();
	void setZPosition (CGFloat arg0);
	CGPoint anchorPoint ();
	void setAnchorPoint (CGPoint arg0);
	CATransform3D transform ();
	void setTransform (CATransform3D arg0);
	CGAffineTransform affineTransform ();
	void setAffineTransform (CGAffineTransform m);
	CGRect frame ();
	void setFrame (CGRect arg0);
	bool isHidden ();
	void setHidden (bool arg0);
	bool isDoubleSided ();
	void setDoubleSided (bool arg0);
	void removeFromSuperlayer ();
	void addSublayer (CALayer layer);
	void insertSublayer (CALayer layer, uint idx);
	void insertSublayer (CALayer layer, CALayer sibling);
	void insertSublayer (CALayer layer, CALayer sibling);
	void replaceSublayer (CALayer layer, CALayer layer2);
	CATransform3D sublayerTransform ();
	void setSublayerTransform (CATransform3D arg0);
	bool masksToBounds ();
	void setMasksToBounds (bool arg0);
	CGPoint convertPoint (CGPoint p, CALayer l);
	CGPoint convertPoint (CGPoint p, CALayer l);
	CGRect convertRect (CGRect r, CALayer l);
	CGRect convertRect (CGRect r, CALayer l);
	double convertTime (double t, CALayer l);
	double convertTime (double t, CALayer l);
	CALayer hitTest (CGPoint p);
	bool containsPoint (CGPoint p);
	Object contents ();
	void setContents (Object arg0);
	CGRect contentsRect ();
	void setContentsRect (CGRect arg0);
	bool isOpaque ();
	void setOpaque (bool arg0);
	void display ();
	void setNeedsDisplay ();
	void setNeedsDisplayInRect (CGRect r);
	bool needsDisplayOnBoundsChange ();
	void setNeedsDisplayOnBoundsChange (bool arg0);
	void drawInContext (CGContextRef ctx);
	void renderInContext (CGContextRef ctx);
	uint edgeAntialiasingMask ();
	void setEdgeAntialiasingMask (uint arg0);
	CGColorRef backgroundColor ();
	void setBackgroundColor (CGColorRef arg0);
	CGFloat cornerRadius ();
	void setCornerRadius (CGFloat arg0);
	CGFloat borderWidth ();
	void setBorderWidth (CGFloat arg0);
	CGColorRef borderColor ();
	void setBorderColor (CGColorRef arg0);
	float opacity ();
	void setOpacity (float arg0);
	Object compositingFilter ();
	void setCompositingFilter (Object arg0);
	CGColorRef shadowColor ();
	void setShadowColor (CGColorRef arg0);
	float shadowOpacity ();
	void setShadowOpacity (float arg0);
	CGSize shadowOffset ();
	void setShadowOffset (CGSize arg0);
	CGFloat shadowRadius ();
	void setShadowRadius (CGFloat arg0);
	uint autoresizingMask ();
	void setAutoresizingMask (uint arg0);
	Object layoutManager ();
	void setLayoutManager (Object arg0);
	CGSize preferredFrameSize ();
	void setNeedsLayout ();
	void layoutIfNeeded ();
	void layoutSublayers ();
	void resizeSublayersWithOldSize (CGSize size);
	void resizeWithOldSuperlayerSize (CGSize size);
	static ICAAction defaultActionForKey (NSString event);
	ICAAction actionForKey (NSString event);
	void addAnimation (CAAnimation anim, NSString key);
	void removeAllAnimations ();
	void removeAnimationForKey (NSString key);
	CAAnimation animationForKey (NSString key);
	Object delegate_ ();
	void setDelegate (Object arg0);
	void runActionForKey (NSString event, Object anObject, NSDictionary dict);
}

const TCALayerDelegate = `

	void displayLayer (CALayer layer)
	{
		return invokeObjcSelf!(void, "displayLayer:", CALayer)(layer);
	}

	void drawLayer (CALayer layer, CGContextRef ctx)
	{
		return invokeObjcSelf!(void, "drawLayer:inContext:", CALayer, CGContextRef)(layer, ctx);
	}

	ICAAction actionForLayer (CALayer layer, NSString event)
	{
		return invokeObjcSelf!(ICAAction, "actionForLayer:forKey:", CALayer, NSString)(layer, event);
	}

	//mixin ObjcBindMethod!(displayLayer, "displayLayer:");
	//mixin ObjcBindMethod!(drawLayer, "drawLayer:inContext:");
	//mixin ObjcBindMethod!(actionForLayer, "actionForLayer:forKey:");

`;

const TCALayoutManager = `

	CGSize preferredSizeOfLayer (CALayer layer)
	{
		return invokeObjcSelf!(CGSize, "preferredSizeOfLayer:", CALayer)(layer);
	}

	void invalidateLayoutOfLayer (CALayer layer)
	{
		return invokeObjcSelf!(void, "invalidateLayoutOfLayer:", CALayer)(layer);
	}

	void layoutSublayersOfLayer (CALayer layer)
	{
		return invokeObjcSelf!(void, "layoutSublayersOfLayer:", CALayer)(layer);
	}

	//mixin ObjcBindMethod!(preferredSizeOfLayer, "preferredSizeOfLayer:");
	//mixin ObjcBindMethod!(invalidateLayoutOfLayer, "invalidateLayoutOfLayer:");
	//mixin ObjcBindMethod!(layoutSublayersOfLayer, "layoutSublayersOfLayer:");

`;