Mercurial > projects > dstep
diff dstep/foundation/NSEnumerator.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 | 89f3c3ef1fd2 |
children | b9de51448c6b |
line wrap: on
line diff
--- a/dstep/foundation/NSEnumerator.d Mon Aug 03 15:31:48 2009 +0200 +++ b/dstep/foundation/NSEnumerator.d Sun Jan 03 22:06:11 2010 +0100 @@ -7,22 +7,40 @@ module dstep.foundation.NSEnumerator; import dstep.foundation.NSArray; +import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.objc.bridge.Bridge; -import dstep.objc.objc : id; +import dstep.objc.objc; struct NSFastEnumerationState { uint state; id* itemsPtr; - unsigned long* mutationsPtr; - unsigned long* extra; + ulong* mutationsPtr; + ulong* extra; } +const TNSExtendedEnumerator = ` + + NSArray allObjects () + { + return invokeObjcSelf!(NSArray, "allObjects"); + } +`; + class NSEnumerator : NSObject, INSFastEnumeration { - mixin ObjcWrap; - mixin TNSExtendedEnumerator; + mixin (ObjcWrap); + + this () + { + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); + } Object nextObject () { @@ -33,18 +51,15 @@ { return invokeObjcSelf!(NSUInteger, "countByEnumeratingWithState:objects:count:", NSFastEnumerationState*, id*, NSUInteger)(state, stackbuf, len); } -} - -interface INSFastEnumeration -{ - NSUInteger countByEnumeratingWithState (NSFastEnumerationState* state, id* stackbuf, NSUInteger len); -} - -template TNSExtendedEnumerator () -{ + + // TNSExtendedEnumerator NSArray allObjects () { return invokeObjcSelf!(NSArray, "allObjects"); } } +interface INSFastEnumeration +{ + NSUInteger countByEnumeratingWithState (NSFastEnumerationState* state, id* stackbuf, NSUInteger len); +} \ No newline at end of file