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;
+	}
+}
+