Mercurial > projects > dstep
diff dstep/quartzcore/CALayer.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | f8a3b67adfcb |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/quartzcore/CALayer.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,980 @@ +/** + * 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 (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 (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 (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 (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:"); + +`; +