Mercurial > projects > dstep
view 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 source
/** * 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; } }