comparison 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
comparison
equal deleted inserted replaced
13:4f583f7e242e 14:89f3c3ef1fd2
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Aug 3, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.foundation.NSCalendar;
8
9 import dstep.corefoundation.CFCalendar;
10 import dstep.foundation.NSDate;
11 import dstep.foundation.NSDateComponents;
12 import dstep.foundation.NSLocale;
13 import dstep.foundation.NSObject;
14 import dstep.foundation.NSRange;
15 import dstep.foundation.NSString;
16 import dstep.foundation.NSTimeZone;
17 import dstep.objc.bridge.Bridge;
18 import dstep.objc.objc : id;
19
20 alias NSUInteger NSCalendarUnit;
21
22 enum
23 {
24 NSEraCalendarUnit = kCFCalendarUnitEra,
25 NSYearCalendarUnit = kCFCalendarUnitYear,
26 NSMonthCalendarUnit = kCFCalendarUnitMonth,
27 NSDayCalendarUnit = kCFCalendarUnitDay,
28 NSHourCalendarUnit = kCFCalendarUnitHour,
29 NSMinuteCalendarUnit = kCFCalendarUnitMinute,
30 NSSecondCalendarUnit = kCFCalendarUnitSecond,
31 NSWeekCalendarUnit = kCFCalendarUnitWeek,
32 NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
33 NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal
34 }
35
36 enum
37 {
38 NSWrapCalendarComponents = kCFCalendarComponentsWrap
39 }
40
41 enum
42 {
43 NSUndefinedDateComponent = 2147483647L
44 }
45
46 class NSDateComponents : NSObject, INSCopying, INSCoding
47 {
48 mixin ObjcWrap;
49
50 NSInteger era ()
51 {
52 return invokeObjcSelf!(NSInteger, "era");
53 }
54
55 NSInteger year ()
56 {
57 return invokeObjcSelf!(NSInteger, "year");
58 }
59
60 NSInteger month ()
61 {
62 return invokeObjcSelf!(NSInteger, "month");
63 }
64
65 NSInteger day ()
66 {
67 return invokeObjcSelf!(NSInteger, "day");
68 }
69
70 NSInteger hour ()
71 {
72 return invokeObjcSelf!(NSInteger, "hour");
73 }
74
75 NSInteger minute ()
76 {
77 return invokeObjcSelf!(NSInteger, "minute");
78 }
79
80 NSInteger second ()
81 {
82 return invokeObjcSelf!(NSInteger, "second");
83 }
84
85 NSInteger week ()
86 {
87 return invokeObjcSelf!(NSInteger, "week");
88 }
89
90 NSInteger weekday ()
91 {
92 return invokeObjcSelf!(NSInteger, "weekday");
93 }
94
95 NSInteger weekdayOrdinal ()
96 {
97 return invokeObjcSelf!(NSInteger, "weekdayOrdinal");
98 }
99
100 void setEra (NSInteger v)
101 {
102 return invokeObjcSelf!(void, "setEra:", NSInteger)(v);
103 }
104
105 void setYear (NSInteger v)
106 {
107 return invokeObjcSelf!(void, "setYear:", NSInteger)(v);
108 }
109
110 void setMonth (NSInteger v)
111 {
112 return invokeObjcSelf!(void, "setMonth:", NSInteger)(v);
113 }
114
115 void setDay (NSInteger v)
116 {
117 return invokeObjcSelf!(void, "setDay:", NSInteger)(v);
118 }
119
120 void setHour (NSInteger v)
121 {
122 return invokeObjcSelf!(void, "setHour:", NSInteger)(v);
123 }
124
125 void setMinute (NSInteger v)
126 {
127 return invokeObjcSelf!(void, "setMinute:", NSInteger)(v);
128 }
129
130 void setSecond (NSInteger v)
131 {
132 return invokeObjcSelf!(void, "setSecond:", NSInteger)(v);
133 }
134
135 void setWeek (NSInteger v)
136 {
137 return invokeObjcSelf!(void, "setWeek:", NSInteger)(v);
138 }
139
140 void setWeekday (NSInteger v)
141 {
142 return invokeObjcSelf!(void, "setWeekday:", NSInteger)(v);
143 }
144
145 void setWeekdayOrdinal (NSInteger v)
146 {
147 return invokeObjcSelf!(void, "setWeekdayOrdinal:", NSInteger)(v);
148 }
149
150 Object copyWithZone (NSZone* zone)
151 {
152 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone);
153 }
154
155 void encodeWithCoder (NSCoder aCoder)
156 {
157 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
158 }
159
160 Object initWithCoder (NSCoder aDecoder)
161 {
162 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder);
163 }
164
165 this (NSCoder aDecoder)
166 {
167 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
168 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder);
169
170 if (result)
171 objcObject = ret;
172
173 dObject = this;
174 }
175 }
176
177 class NSCalendar : NSObject, INSCopying, INSCoding
178 {
179 mixin ObjcWrap;
180
181 static Object currentCalendar ()
182 {
183 return invokeObjcSelfClass!(Object, "currentCalendar");
184 }
185
186 static Object autoupdatingCurrentCalendar ()
187 {
188 return invokeObjcSelfClass!(Object, "autoupdatingCurrentCalendar");
189 }
190
191 Object initWithCalendarIdentifier (NSString ident)
192 {
193 return invokeObjcSelf!(Object, "initWithCalendarIdentifier:", NSString)(ident);
194 }
195
196 this (NSString ident)
197 {
198 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
199 id result = Bridge.invokeObjcMethod!(id, "initWithCalendarIdentifier:", NSString)(objcObject, ident);
200
201 if (result)
202 objcObject = ret;
203
204 dObject = this;
205 }
206
207 NSString calendarIdentifier ()
208 {
209 return invokeObjcSelf!(NSString, "calendarIdentifier");
210 }
211
212 void setLocale (NSLocale locale)
213 {
214 return invokeObjcSelf!(void, "setLocale:", NSLocale)(locale);
215 }
216
217 NSLocale locale ()
218 {
219 return invokeObjcSelf!(NSLocale, "locale");
220 }
221
222 void setTimeZone (NSTimeZone tz)
223 {
224 return invokeObjcSelf!(void, "setTimeZone:", NSTimeZone)(tz);
225 }
226
227 NSTimeZone timeZone ()
228 {
229 return invokeObjcSelf!(NSTimeZone, "timeZone");
230 }
231
232 void setFirstWeekday (NSUInteger weekday)
233 {
234 return invokeObjcSelf!(void, "setFirstWeekday:", NSUInteger)(weekday);
235 }
236
237 NSUInteger firstWeekday ()
238 {
239 return invokeObjcSelf!(NSUInteger, "firstWeekday");
240 }
241
242 void setMinimumDaysInFirstWeek (NSUInteger mdw)
243 {
244 return invokeObjcSelf!(void, "setMinimumDaysInFirstWeek:", NSUInteger)(mdw);
245 }
246
247 NSUInteger minimumDaysInFirstWeek ()
248 {
249 return invokeObjcSelf!(NSUInteger, "minimumDaysInFirstWeek");
250 }
251
252 NSRange minimumRangeOfUnit (uint unit)
253 {
254 return invokeObjcSelf!(NSRange, "minimumRangeOfUnit:", uint)(unit);
255 }
256
257 NSRange maximumRangeOfUnit (uint unit)
258 {
259 return invokeObjcSelf!(NSRange, "maximumRangeOfUnit:", uint)(unit);
260 }
261
262 NSRange rangeOfUnit (uint smaller, uint larger, NSDate date)
263 {
264 return invokeObjcSelf!(NSRange, "rangeOfUnit:inUnit:forDate:", uint, uint, NSDate)(smaller, larger, date);
265 }
266
267 NSUInteger ordinalityOfUnit (uint smaller, uint larger, NSDate date)
268 {
269 return invokeObjcSelf!(NSUInteger, "ordinalityOfUnit:inUnit:forDate:", uint, uint, NSDate)(smaller, larger, date);
270 }
271
272 bool rangeOfUnit (uint unit, NSDate** datep, NSTimeInterval* tip, NSDate date)
273 {
274 return invokeObjcSelf!(bool, "rangeOfUnit:startDate:interval:forDate:", uint, NSDate**, NSTimeInterval*, NSDate)(unit, datep, tip, date);
275 }
276
277 NSDate dateFromComponents (NSDateComponents comps)
278 {
279 return invokeObjcSelf!(NSDate, "dateFromComponents:", NSDateComponents)(comps);
280 }
281
282 NSDateComponents components (NSUInteger unitFlags, NSDate date)
283 {
284 return invokeObjcSelf!(NSDateComponents, "components:fromDate:", NSUInteger, NSDate)(unitFlags, date);
285 }
286
287 NSDate dateByAddingComponents (NSDateComponents comps, NSDate date, NSUInteger opts)
288 {
289 return invokeObjcSelf!(NSDate, "dateByAddingComponents:toDate:options:", NSDateComponents, NSDate, NSUInteger)(comps, date, opts);
290 }
291
292 NSDateComponents components (NSUInteger unitFlags, NSDate startingDate, NSDate resultDate, NSUInteger opts)
293 {
294 return invokeObjcSelf!(NSDateComponents, "components:fromDate:toDate:options:", NSUInteger, NSDate, NSDate, NSUInteger)(unitFlags, startingDate, resultDate, opts);
295 }
296
297 Object copyWithZone (NSZone* zone)
298 {
299 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone);
300 }
301
302 void encodeWithCoder (NSCoder aCoder)
303 {
304 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
305 }
306
307 Object initWithCoder (NSCoder aDecoder)
308 {
309 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder);
310 }
311
312 this (NSCoder aDecoder)
313 {
314 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
315 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder);
316
317 if (result)
318 objcObject = ret;
319
320 dObject = this;
321 }
322 }
323