Mercurial > projects > dstep
diff dstep/foundation/NSScriptObjectSpecifiers.d @ 14:89f3c3ef1fd2
Added the Foundation framework
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 15:23:15 +0200 |
parents | |
children | 7ff919f595d5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/foundation/NSScriptObjectSpecifiers.d Mon Aug 03 15:23:15 2009 +0200 @@ -0,0 +1,528 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Aug 3, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.foundation.NSScriptObjectSpecifiers; + +import dstep.foundation.NSAppleEventDescriptor; +import dstep.foundation.NSArray; +import dstep.foundation.NSObject; +import dstep.foundation.NSScriptClassDescription; +import dstep.foundation.NSScriptWhoseTest; +import dstep.foundation.NSString; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc : id; + +alias NSUInteger NSInsertionPosition; +alias NSUInteger NSRelativePosition; +alias NSUInteger NSWhoseSubelementIdentifier; + +enum +{ + NSNoSpecifierError = 0, + NSNoTopLevelContainersSpecifierError, + NSContainerSpecifierError, + NSUnknownKeySpecifierError, + NSInvalidIndexSpecifierError, + NSInternalSpecifierError, + NSOperationNotSupportedForKeySpecifierError +} + +enum +{ + NSPositionAfter, + NSPositionBefore, + NSPositionBeginning, + NSPositionEnd, + NSPositionReplace +} + +enum +{ + NSRelativeAfter = 0, + NSRelativeBefore +} + +enum +{ + NSIndexSubelement = 0, + NSEverySubelement = 1, + NSMiddleSubelement = 2, + NSRandomSubelement = 3, + NSNoSubelement = 4 +} + +class NSIndexSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(classDesc, container, property, index); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(objcObject, classDesc, container, property, index); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSInteger index () + { + return invokeObjcSelf!(NSInteger, "index"); + } + + void setIndex (NSInteger index) + { + return invokeObjcSelf!(void, "setIndex:", NSInteger)(index); + } +} + +class NSRangeSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(classDesc, container, property, startSpec, endSpec); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, startSpec, endSpec); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSScriptObjectSpecifier startSpecifier () + { + return invokeObjcSelf!(NSScriptObjectSpecifier, "startSpecifier"); + } + + void setStartSpecifier (NSScriptObjectSpecifier startSpec) + { + return invokeObjcSelf!(void, "setStartSpecifier:", NSScriptObjectSpecifier)(startSpec); + } + + NSScriptObjectSpecifier endSpecifier () + { + return invokeObjcSelf!(NSScriptObjectSpecifier, "endSpecifier"); + } + + void setEndSpecifier (NSScriptObjectSpecifier endSpec) + { + return invokeObjcSelf!(void, "setEndSpecifier:", NSScriptObjectSpecifier)(endSpec); + } +} + +class NSUniqueIDSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(classDesc, container, property, uniqueID); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(objcObject, classDesc, container, property, uniqueID); + + if (result) + objcObject = ret; + + dObject = this; + } + + Object uniqueID () + { + return invokeObjcSelf!(Object, "uniqueID"); + } + + void setUniqueID (Object uniqueID) + { + return invokeObjcSelf!(void, "setUniqueID:", Object)(uniqueID); + } +} + +class NSRelativeSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(classDesc, container, property, relPos, baseSpecifier); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, relPos, baseSpecifier); + + if (result) + objcObject = ret; + + dObject = this; + } + + uint relativePosition () + { + return invokeObjcSelf!(uint, "relativePosition"); + } + + void setRelativePosition (uint relPos) + { + return invokeObjcSelf!(void, "setRelativePosition:", uint)(relPos); + } + + NSScriptObjectSpecifier baseSpecifier () + { + return invokeObjcSelf!(NSScriptObjectSpecifier, "baseSpecifier"); + } + + void setBaseSpecifier (NSScriptObjectSpecifier baseSpecifier) + { + return invokeObjcSelf!(void, "setBaseSpecifier:", NSScriptObjectSpecifier)(baseSpecifier); + } +} + +class NSNameSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(classDesc, container, property, name); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(objcObject, classDesc, container, property, name); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSString name () + { + return invokeObjcSelf!(NSString, "name"); + } + + void setName (NSString name) + { + return invokeObjcSelf!(void, "setName:", NSString)(name); + } +} + +class NSPositionalSpecifier : NSObject +{ + mixin ObjcWrap; + + Object initWithPosition (uint position, NSScriptObjectSpecifier specifier) + { + return invokeObjcSelf!(Object, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(position, specifier); + } + + this (uint position, NSScriptObjectSpecifier specifier) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(objcObject, position, specifier); + + if (result) + objcObject = ret; + + dObject = this; + } + + uint position () + { + return invokeObjcSelf!(uint, "position"); + } + + NSScriptObjectSpecifier objectSpecifier () + { + return invokeObjcSelf!(NSScriptObjectSpecifier, "objectSpecifier"); + } + + void setInsertionClassDescription (NSScriptClassDescription classDescription) + { + return invokeObjcSelf!(void, "setInsertionClassDescription:", NSScriptClassDescription)(classDescription); + } + + void evaluate () + { + return invokeObjcSelf!(void, "evaluate"); + } + + Object insertionContainer () + { + return invokeObjcSelf!(Object, "insertionContainer"); + } + + NSString insertionKey () + { + return invokeObjcSelf!(NSString, "insertionKey"); + } + + NSInteger insertionIndex () + { + return invokeObjcSelf!(NSInteger, "insertionIndex"); + } + + bool insertionReplaces () + { + return invokeObjcSelf!(bool, "insertionReplaces"); + } +} + +class NSScriptObjectSpecifier : NSObject, INSCoding +{ + mixin ObjcWrap; + + static NSScriptObjectSpecifier objectSpecifierWithDescriptor (NSAppleEventDescriptor descriptor) + { + return invokeObjcSelfClass!(NSScriptObjectSpecifier, "objectSpecifierWithDescriptor:", NSAppleEventDescriptor)(descriptorreturn result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } + + Object initWithContainerSpecifier (NSScriptObjectSpecifier container, NSString property) + { + return invokeObjcSelf!(Object, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(container, property); + } + + this (NSScriptObjectSpecifier container, NSString property) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(objcObject, container, property); + + if (result) + objcObject = ret; + + dObject = this; + } + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(classDesc, container, property); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(objcObject, classDesc, container, property); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSScriptObjectSpecifier childSpecifier () + { + id result = invokeObjcSelf!(id, "childSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } + + void setChildSpecifier (NSScriptObjectSpecifier child) + { + return invokeObjcSelf!(void, "setChildSpecifier:", NSScriptObjectSpecifier)(child); + } + + NSScriptObjectSpecifier containerSpecifier () + { + id result = invokeObjcSelf!(id, "containerSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } + + void setContainerSpecifier (NSScriptObjectSpecifier subRef) + { + return invokeObjcSelf!(void, "setContainerSpecifier:", NSScriptObjectSpecifier)(subRef); + } + + bool containerIsObjectBeingTested () + { + return invokeObjcSelf!(bool, "containerIsObjectBeingTested"); + } + + void setContainerIsObjectBeingTested (bool flag) + { + return invokeObjcSelf!(void, "setContainerIsObjectBeingTested:", bool)(flag); + } + + bool containerIsRangeContainerObject () + { + return invokeObjcSelf!(bool, "containerIsRangeContainerObject"); + } + + void setContainerIsRangeContainerObject (bool flag) + { + return invokeObjcSelf!(void, "setContainerIsRangeContainerObject:", bool)(flag); + } + + NSString key () + { + return invokeObjcSelf!(NSString, "key"); + } + + void setKey (NSString key) + { + return invokeObjcSelf!(void, "setKey:", NSString)(key); + } + + NSScriptClassDescription containerClassDescription () + { + return invokeObjcSelf!(NSScriptClassDescription, "containerClassDescription"); + } + + void setContainerClassDescription (NSScriptClassDescription classDesc) + { + return invokeObjcSelf!(void, "setContainerClassDescription:", NSScriptClassDescription)(classDesc); + } + + NSScriptClassDescription keyClassDescription () + { + return invokeObjcSelf!(NSScriptClassDescription, "keyClassDescription"); + } + + NSInteger* indicesOfObjectsByEvaluatingWithContainer (Object container, NSInteger* count) + { + return invokeObjcSelf!(NSInteger*, "indicesOfObjectsByEvaluatingWithContainer:count:", Object, NSInteger*)(container, count); + } + + Object objectsByEvaluatingWithContainers (Object containers) + { + return invokeObjcSelf!(Object, "objectsByEvaluatingWithContainers:", Object)(containers); + } + + Object objectsByEvaluatingSpecifier () + { + return invokeObjcSelf!(Object, "objectsByEvaluatingSpecifier"); + } + + NSInteger evaluationErrorNumber () + { + return invokeObjcSelf!(NSInteger, "evaluationErrorNumber"); + } + + void setEvaluationErrorNumber (NSInteger error) + { + return invokeObjcSelf!(void, "setEvaluationErrorNumber:", NSInteger)(error); + } + + NSScriptObjectSpecifier evaluationErrorSpecifier () + { + id result = invokeObjcSelf!(id, "evaluationErrorSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } + + NSAppleEventDescriptor descriptor () + { + return invokeObjcSelf!(NSAppleEventDescriptor, "descriptor"); + } + + void encodeWithCoder (NSCoder aCoder) + { + return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); + } + + Object initWithCoder (NSCoder aDecoder) + { + return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); + } + + this (NSCoder aDecoder) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder); + + if (result) + objcObject = ret; + + dObject = this; + } +} + +class NSWhoseSpecifier : NSScriptObjectSpecifier +{ + mixin ObjcWrap; + + Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test) + { + return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(classDesc, container, property, test); + } + + this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(objcObject, classDesc, container, property, test); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSScriptWhoseTest test () + { + return invokeObjcSelf!(NSScriptWhoseTest, "test"); + } + + void setTest (NSScriptWhoseTest test) + { + return invokeObjcSelf!(void, "setTest:", NSScriptWhoseTest)(test); + } + + uint startSubelementIdentifier () + { + return invokeObjcSelf!(uint, "startSubelementIdentifier"); + } + + void setStartSubelementIdentifier (uint subelement) + { + return invokeObjcSelf!(void, "setStartSubelementIdentifier:", uint)(subelement); + } + + NSInteger startSubelementIndex () + { + return invokeObjcSelf!(NSInteger, "startSubelementIndex"); + } + + void setStartSubelementIndex (NSInteger index) + { + return invokeObjcSelf!(void, "setStartSubelementIndex:", NSInteger)(index); + } + + uint endSubelementIdentifier () + { + return invokeObjcSelf!(uint, "endSubelementIdentifier"); + } + + void setEndSubelementIdentifier (uint subelement) + { + return invokeObjcSelf!(void, "setEndSubelementIdentifier:", uint)(subelement); + } + + NSInteger endSubelementIndex () + { + return invokeObjcSelf!(NSInteger, "endSubelementIndex"); + } + + void setEndSubelementIndex (NSInteger index) + { + return invokeObjcSelf!(void, "setEndSubelementIndex:", NSInteger)(index); + } +} + +template TNSScriptObjectSpecifiers () +{ + NSScriptObjectSpecifier objectSpecifier (); + NSArray indicesOfObjectsByEvaluatingObjectSpecifier (NSScriptObjectSpecifier specifier); +} +