view dstep/quartzcore/CAAnimation.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.CAAnimation;

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.NSObject;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSString;
import dstep.foundation.NSZone;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;
import dstep.quartzcore.CALayer;
import dstep.quartzcore.CAMediaTiming;
import dstep.quartzcore.CAMediaTimingFunction;
import dstep.quartzcore.CATransform3D;

import bindings = dstep.quartzcore.CAAnimation_bindings;

private
{
	NSString kCAAnimationLinear_;
	NSString kCAAnimationDiscrete_;
	NSString kCAAnimationPaced_;
	NSString kCAAnimationRotateAuto_;
	NSString kCAAnimationRotateAutoReverse_;
	NSString kCATransitionFade_;
	NSString kCATransitionMoveIn_;
	NSString kCATransitionPush_;
	NSString kCATransitionReveal_;
	NSString kCATransitionFromRight_;
	NSString kCATransitionFromLeft_;
	NSString kCATransitionFromTop_;
	NSString kCATransitionFromBottom_;
}

NSString kCAAnimationLinear ()
{
	if (kCAAnimationLinear_)
		return kCAAnimationLinear_;

	return kCAAnimationLinear_ = new NSString(bindings.kCAAnimationLinear);
}

NSString kCAAnimationDiscrete ()
{
	if (kCAAnimationDiscrete_)
		return kCAAnimationDiscrete_;

	return kCAAnimationDiscrete_ = new NSString(bindings.kCAAnimationDiscrete);
}

NSString kCAAnimationPaced ()
{
	if (kCAAnimationPaced_)
		return kCAAnimationPaced_;

	return kCAAnimationPaced_ = new NSString(bindings.kCAAnimationPaced);
}

NSString kCAAnimationRotateAuto ()
{
	if (kCAAnimationRotateAuto_)
		return kCAAnimationRotateAuto_;

	return kCAAnimationRotateAuto_ = new NSString(bindings.kCAAnimationRotateAuto);
}

NSString kCAAnimationRotateAutoReverse ()
{
	if (kCAAnimationRotateAutoReverse_)
		return kCAAnimationRotateAutoReverse_;

	return kCAAnimationRotateAutoReverse_ = new NSString(bindings.kCAAnimationRotateAutoReverse);
}

NSString kCATransitionFade ()
{
	if (kCATransitionFade_)
		return kCATransitionFade_;

	return kCATransitionFade_ = new NSString(bindings.kCATransitionFade);
}

NSString kCATransitionMoveIn ()
{
	if (kCATransitionMoveIn_)
		return kCATransitionMoveIn_;

	return kCATransitionMoveIn_ = new NSString(bindings.kCATransitionMoveIn);
}

NSString kCATransitionPush ()
{
	if (kCATransitionPush_)
		return kCATransitionPush_;

	return kCATransitionPush_ = new NSString(bindings.kCATransitionPush);
}

NSString kCATransitionReveal ()
{
	if (kCATransitionReveal_)
		return kCATransitionReveal_;

	return kCATransitionReveal_ = new NSString(bindings.kCATransitionReveal);
}

NSString kCATransitionFromRight ()
{
	if (kCATransitionFromRight_)
		return kCATransitionFromRight_;

	return kCATransitionFromRight_ = new NSString(bindings.kCATransitionFromRight);
}

NSString kCATransitionFromLeft ()
{
	if (kCATransitionFromLeft_)
		return kCATransitionFromLeft_;

	return kCATransitionFromLeft_ = new NSString(bindings.kCATransitionFromLeft);
}

NSString kCATransitionFromTop ()
{
	if (kCATransitionFromTop_)
		return kCATransitionFromTop_;

	return kCATransitionFromTop_ = new NSString(bindings.kCATransitionFromTop);
}

NSString kCATransitionFromBottom ()
{
	if (kCATransitionFromBottom_)
		return kCATransitionFromBottom_;

	return kCATransitionFromBottom_ = new NSString(bindings.kCATransitionFromBottom);
}

class CAAnimation : NSObject, INSCoding, INSCopying, ICAMediaTiming, ICAAction
{
	mixin (ObjcWrap);

	static Object animation ()
	{
		return invokeObjcSelfClass!(Object, "animation");
	}

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

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

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

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

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

	void setRemovedOnCompletion (bool arg0)
	{
		return invokeObjcSelf!(void, "setRemovedOnCompletion:", bool)(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;

	static Object layer ()
	{
		return invokeObjcSelfClass!(Object, "layer");
	}

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

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

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

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

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

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

	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 (dstep.quartzcore.CALayer.CALayer layer)
	{
		return invokeObjcSelf!(void, "addSublayer:", dstep.quartzcore.CALayer.CALayer)(layer);
	}

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

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

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

	void replaceSublayer (dstep.quartzcore.CALayer.CALayer layer, dstep.quartzcore.CALayer.CALayer layer2)
	{
		return invokeObjcSelf!(void, "replaceSublayer:with:", dstep.quartzcore.CALayer.CALayer, dstep.quartzcore.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, dstep.quartzcore.CALayer.CALayer l)
	{
		return invokeObjcSelf!(CGPoint, "convertPoint:fromLayer:", CGPoint, dstep.quartzcore.CALayer.CALayer)(p, l);
	}

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

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

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

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

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

	dstep.quartzcore.CALayer.CALayer hitTest (CGPoint p)
	{
		return invokeObjcSelf!(dstep.quartzcore.CALayer.CALayer, "hitTest:", CGPoint)(p);
	}

	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);
	}

	void runActionForKey (NSString event, Object anObject, NSDictionary dict)
	{
		return invokeObjcSelf!(void, "runActionForKey:object:arguments:", NSString, Object, NSDictionary)(event, anObject, dict);
	}
	
	void encodeWithCoder (NSCoder aCoder)
	{
		return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
	}
	
	CAAnimation initWithCoder (NSCoder aDecoder)
	{
		return invokeObjcSelf!(CAAnimation, "initWithCoder:", NSCoder)(aDecoder);
	}
	
	CAAnimation copyWithZone (NSZone* zone)
	{
		return invokeObjcSelf!(CAAnimation, "copyWithZone:", NSZone*)(zone);
	}
}

class CAPropertyAnimation : CAAnimation
{
	mixin (ObjcWrap);

	static Object animationWithKeyPath (NSString path)
	{
		return invokeObjcSelfClass!(Object, "animationWithKeyPath:", NSString)(path);
	}

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

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

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

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

const TCAAnimationDelegate = `

	void animationDidStart (CAAnimation anim)
	{
		return invokeObjcSelf!(void, "animationDidStart:", CAAnimation)(anim);
	}

	void animationDidStop (CAAnimation anim, bool flag)
	{
		return invokeObjcSelf!(void, "animationDidStop:finished:", CAAnimation, bool)(anim, flag);
	}

	//mixin ObjcBindMethod!(animationDidStart, "animationDidStart:");
	//mixin ObjcBindMethod!(animationDidStop, "animationDidStop:finished:");

`;