Mercurial > projects > dstep
diff dstep/foundation/NSFormatter.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/NSFormatter.d Mon Aug 03 15:31:48 2009 +0200 +++ b/dstep/foundation/NSFormatter.d Sun Jan 03 22:06:11 2010 +0100 @@ -7,16 +7,28 @@ module dstep.foundation.NSFormatter; import dstep.foundation.NSAttributedString; +import dstep.foundation.NSCoder; import dstep.foundation.NSDictionary; import dstep.foundation.NSObject; import dstep.foundation.NSRange; import dstep.foundation.NSString; +import dstep.foundation.NSZone; import dstep.objc.bridge.Bridge; -import dstep.objc.objc : id; +import dstep.objc.objc; class NSFormatter : NSObject, INSCopying, INSCoding { - mixin ObjcWrap; + mixin (ObjcWrap); + + this () + { + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); + } NSString stringForObjectValue (Object obj) { @@ -33,19 +45,61 @@ return invokeObjcSelf!(NSString, "editingStringForObjectValue:", Object)(obj); } - bool getObjectValue (id* obj, NSString string, NSString** error) + bool getObjectValue (out NSObject obj, NSString string, ref NSString error) { - return invokeObjcSelf!(bool, "getObjectValue:forString:errorDescription:", id*, NSString, NSString**)(obj, string, error); + id err; + id object; + + if (error) + err = new objc_object; + + bool result = invokeObjcSelf!(bool, "getObjectValue:forString:errorDescription:", id*, NSString, id*)(&object, string, &err); + + if (err) + error = new NSString(err); + + if (object) + obj = new NSObject(object); + + return result; } - bool isPartialStringValid (NSString partialString, NSString** newString, NSString** error) + bool isPartialStringValid (NSString partialString, out NSString newString, ref NSString error) { - return invokeObjcSelf!(bool, "isPartialStringValid:newEditingString:errorDescription:", NSString, NSString**, NSString**)(partialString, newString, error); + id err; + id newStr = new objc_object; + + if (error) + err = new objc_object; + + bool result = invokeObjcSelf!(bool, "isPartialStringValid:newEditingString:errorDescription:", NSString, id*, id*)(partialString, &newStr, &err); + + if (err) + error = new NSString(err); + + if (newStr) + newString = new NSString(newStr); + + return result; } - bool isPartialStringValid (NSString** partialStringPtr, NSRangePointer proposedSelRangePtr, NSString origString, NSRange origSelRange, NSString** error) + bool isPartialStringValid (ref NSString partialStringPtr, NSRangePointer proposedSelRangePtr, NSString origString, NSRange origSelRange, ref NSString error) { - return invokeObjcSelf!(bool, "isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:", NSString**, NSRangePointer, NSString, NSRange, NSString**)(partialStringPtr, proposedSelRangePtr, origString, origSelRange, error); + id partialString = new objc_object; + id err; + + if (error) + err = new objc_object; + + bool result = invokeObjcSelf!(bool, "isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:", id*, NSRangePointer, NSString, NSRange, id*)(&partialString, proposedSelRangePtr, origString, origSelRange, &err); + + if (err) + error = new NSString(err); + + if (partialString) + partialStringPtr = new NSString(partialString); + + return result; } Object copyWithZone (NSZone* zone) @@ -65,13 +119,7 @@ this (NSCoder aDecoder) { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder); - - if (result) - objcObject = ret; - - dObject = this; + typeof(this).alloc.initWithCoder(aDecoder); } }