Mercurial > projects > dstep
diff dstep/foundation/NSCalendar.d @ 14:89f3c3ef1fd2
Added the Foundation framework
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 15:23:15 +0200 |
parents | |
children | 19885b43130e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/foundation/NSCalendar.d Mon Aug 03 15:23:15 2009 +0200 @@ -0,0 +1,323 @@ +/** + * 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.NSCalendar; + +import dstep.corefoundation.CFCalendar; +import dstep.foundation.NSDate; +import dstep.foundation.NSDateComponents; +import dstep.foundation.NSLocale; +import dstep.foundation.NSObject; +import dstep.foundation.NSRange; +import dstep.foundation.NSString; +import dstep.foundation.NSTimeZone; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc : id; + +alias NSUInteger NSCalendarUnit; + +enum +{ + NSEraCalendarUnit = kCFCalendarUnitEra, + NSYearCalendarUnit = kCFCalendarUnitYear, + NSMonthCalendarUnit = kCFCalendarUnitMonth, + NSDayCalendarUnit = kCFCalendarUnitDay, + NSHourCalendarUnit = kCFCalendarUnitHour, + NSMinuteCalendarUnit = kCFCalendarUnitMinute, + NSSecondCalendarUnit = kCFCalendarUnitSecond, + NSWeekCalendarUnit = kCFCalendarUnitWeek, + NSWeekdayCalendarUnit = kCFCalendarUnitWeekday, + NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal +} + +enum +{ + NSWrapCalendarComponents = kCFCalendarComponentsWrap +} + +enum +{ + NSUndefinedDateComponent = 2147483647L +} + +class NSDateComponents : NSObject, INSCopying, INSCoding +{ + mixin ObjcWrap; + + NSInteger era () + { + return invokeObjcSelf!(NSInteger, "era"); + } + + NSInteger year () + { + return invokeObjcSelf!(NSInteger, "year"); + } + + NSInteger month () + { + return invokeObjcSelf!(NSInteger, "month"); + } + + NSInteger day () + { + return invokeObjcSelf!(NSInteger, "day"); + } + + NSInteger hour () + { + return invokeObjcSelf!(NSInteger, "hour"); + } + + NSInteger minute () + { + return invokeObjcSelf!(NSInteger, "minute"); + } + + NSInteger second () + { + return invokeObjcSelf!(NSInteger, "second"); + } + + NSInteger week () + { + return invokeObjcSelf!(NSInteger, "week"); + } + + NSInteger weekday () + { + return invokeObjcSelf!(NSInteger, "weekday"); + } + + NSInteger weekdayOrdinal () + { + return invokeObjcSelf!(NSInteger, "weekdayOrdinal"); + } + + void setEra (NSInteger v) + { + return invokeObjcSelf!(void, "setEra:", NSInteger)(v); + } + + void setYear (NSInteger v) + { + return invokeObjcSelf!(void, "setYear:", NSInteger)(v); + } + + void setMonth (NSInteger v) + { + return invokeObjcSelf!(void, "setMonth:", NSInteger)(v); + } + + void setDay (NSInteger v) + { + return invokeObjcSelf!(void, "setDay:", NSInteger)(v); + } + + void setHour (NSInteger v) + { + return invokeObjcSelf!(void, "setHour:", NSInteger)(v); + } + + void setMinute (NSInteger v) + { + return invokeObjcSelf!(void, "setMinute:", NSInteger)(v); + } + + void setSecond (NSInteger v) + { + return invokeObjcSelf!(void, "setSecond:", NSInteger)(v); + } + + void setWeek (NSInteger v) + { + return invokeObjcSelf!(void, "setWeek:", NSInteger)(v); + } + + void setWeekday (NSInteger v) + { + return invokeObjcSelf!(void, "setWeekday:", NSInteger)(v); + } + + void setWeekdayOrdinal (NSInteger v) + { + return invokeObjcSelf!(void, "setWeekdayOrdinal:", NSInteger)(v); + } + + Object copyWithZone (NSZone* zone) + { + return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone); + } + + 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 NSCalendar : NSObject, INSCopying, INSCoding +{ + mixin ObjcWrap; + + static Object currentCalendar () + { + return invokeObjcSelfClass!(Object, "currentCalendar"); + } + + static Object autoupdatingCurrentCalendar () + { + return invokeObjcSelfClass!(Object, "autoupdatingCurrentCalendar"); + } + + Object initWithCalendarIdentifier (NSString ident) + { + return invokeObjcSelf!(Object, "initWithCalendarIdentifier:", NSString)(ident); + } + + this (NSString ident) + { + objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); + id result = Bridge.invokeObjcMethod!(id, "initWithCalendarIdentifier:", NSString)(objcObject, ident); + + if (result) + objcObject = ret; + + dObject = this; + } + + NSString calendarIdentifier () + { + return invokeObjcSelf!(NSString, "calendarIdentifier"); + } + + void setLocale (NSLocale locale) + { + return invokeObjcSelf!(void, "setLocale:", NSLocale)(locale); + } + + NSLocale locale () + { + return invokeObjcSelf!(NSLocale, "locale"); + } + + void setTimeZone (NSTimeZone tz) + { + return invokeObjcSelf!(void, "setTimeZone:", NSTimeZone)(tz); + } + + NSTimeZone timeZone () + { + return invokeObjcSelf!(NSTimeZone, "timeZone"); + } + + void setFirstWeekday (NSUInteger weekday) + { + return invokeObjcSelf!(void, "setFirstWeekday:", NSUInteger)(weekday); + } + + NSUInteger firstWeekday () + { + return invokeObjcSelf!(NSUInteger, "firstWeekday"); + } + + void setMinimumDaysInFirstWeek (NSUInteger mdw) + { + return invokeObjcSelf!(void, "setMinimumDaysInFirstWeek:", NSUInteger)(mdw); + } + + NSUInteger minimumDaysInFirstWeek () + { + return invokeObjcSelf!(NSUInteger, "minimumDaysInFirstWeek"); + } + + NSRange minimumRangeOfUnit (uint unit) + { + return invokeObjcSelf!(NSRange, "minimumRangeOfUnit:", uint)(unit); + } + + NSRange maximumRangeOfUnit (uint unit) + { + return invokeObjcSelf!(NSRange, "maximumRangeOfUnit:", uint)(unit); + } + + NSRange rangeOfUnit (uint smaller, uint larger, NSDate date) + { + return invokeObjcSelf!(NSRange, "rangeOfUnit:inUnit:forDate:", uint, uint, NSDate)(smaller, larger, date); + } + + NSUInteger ordinalityOfUnit (uint smaller, uint larger, NSDate date) + { + return invokeObjcSelf!(NSUInteger, "ordinalityOfUnit:inUnit:forDate:", uint, uint, NSDate)(smaller, larger, date); + } + + bool rangeOfUnit (uint unit, NSDate** datep, NSTimeInterval* tip, NSDate date) + { + return invokeObjcSelf!(bool, "rangeOfUnit:startDate:interval:forDate:", uint, NSDate**, NSTimeInterval*, NSDate)(unit, datep, tip, date); + } + + NSDate dateFromComponents (NSDateComponents comps) + { + return invokeObjcSelf!(NSDate, "dateFromComponents:", NSDateComponents)(comps); + } + + NSDateComponents components (NSUInteger unitFlags, NSDate date) + { + return invokeObjcSelf!(NSDateComponents, "components:fromDate:", NSUInteger, NSDate)(unitFlags, date); + } + + NSDate dateByAddingComponents (NSDateComponents comps, NSDate date, NSUInteger opts) + { + return invokeObjcSelf!(NSDate, "dateByAddingComponents:toDate:options:", NSDateComponents, NSDate, NSUInteger)(comps, date, opts); + } + + NSDateComponents components (NSUInteger unitFlags, NSDate startingDate, NSDate resultDate, NSUInteger opts) + { + return invokeObjcSelf!(NSDateComponents, "components:fromDate:toDate:options:", NSUInteger, NSDate, NSDate, NSUInteger)(unitFlags, startingDate, resultDate, opts); + } + + Object copyWithZone (NSZone* zone) + { + return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone); + } + + 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; + } +} +