14
|
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.NSDateFormatter;
|
|
8
|
|
9 import dstep.corefoundation.CFDateFormatter;
|
|
10 import dstep.foundation.NSArray;
|
|
11 import dstep.foundation.NSCalendar;
|
|
12 import dstep.foundation.NSDate;
|
|
13 import dstep.foundation.NSError;
|
|
14 import dstep.foundation.NSFormatter;
|
|
15 import dstep.foundation.NSLocale;
|
|
16 import dstep.foundation.NSMutableDictionary;
|
|
17 import dstep.foundation.NSTimeZone;
|
|
18 import dstep.objc.bridge.Bridge;
|
|
19 import dstep.objc.objc : id;
|
|
20
|
|
21 alias NSUInteger NSDateFormatterStyle;
|
|
22 alias NSUInteger NSDateFormatterBehavior;
|
|
23
|
|
24 enum
|
|
25 {
|
|
26 NSDateFormatterNoStyle = kCFDateFormatterNoStyle,
|
|
27 NSDateFormatterShortStyle = kCFDateFormatterShortStyle,
|
|
28 NSDateFormatterMediumStyle = kCFDateFormatterMediumStyle,
|
|
29 NSDateFormatterLongStyle = kCFDateFormatterLongStyle,
|
|
30 NSDateFormatterFullStyle = kCFDateFormatterFullStyle
|
|
31 }
|
|
32
|
|
33 enum
|
|
34 {
|
|
35 NSDateFormatterBehaviorDefault = 0,
|
|
36 NSDateFormatterBehavior10_0 = 1000,
|
|
37 NSDateFormatterBehavior10_4 = 1040
|
|
38 }
|
|
39
|
|
40 class NSDateFormatter : NSFormatter
|
|
41 {
|
|
42 mixin ObjcWrap;
|
|
43 mixin TNSDateFormatterCompatibility;
|
|
44
|
|
45 Object init ()
|
|
46 {
|
|
47 return invokeObjcSelf!(Object, "init");
|
|
48 }
|
|
49
|
|
50 this ()
|
|
51 {
|
|
52 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
|
|
53 id result = Bridge.invokeObjcMethod!(id, "init")(objcObject);
|
|
54
|
|
55 if (result)
|
|
56 objcObject = ret;
|
|
57
|
|
58 dObject = this;
|
|
59 }
|
|
60
|
|
61 bool getObjectValue (id* obj, NSString string, NSRange* rangep, NSError** error)
|
|
62 {
|
|
63 return invokeObjcSelf!(bool, "getObjectValue:forString:range:error:", id*, NSString, NSRange*, NSError**)(obj, string, rangep, error);
|
|
64 }
|
|
65
|
|
66 NSString stringFromDate (NSDate date)
|
|
67 {
|
|
68 return invokeObjcSelf!(NSString, "stringFromDate:", NSDate)(date);
|
|
69 }
|
|
70
|
|
71 NSDate dateFromString (NSString string)
|
|
72 {
|
|
73 return invokeObjcSelf!(NSDate, "dateFromString:", NSString)(string);
|
|
74 }
|
|
75
|
|
76 NSString dateFormat ()
|
|
77 {
|
|
78 return invokeObjcSelf!(NSString, "dateFormat");
|
|
79 }
|
|
80
|
|
81 uint dateStyle ()
|
|
82 {
|
|
83 return invokeObjcSelf!(uint, "dateStyle");
|
|
84 }
|
|
85
|
|
86 void setDateStyle (uint style)
|
|
87 {
|
|
88 return invokeObjcSelf!(void, "setDateStyle:", uint)(style);
|
|
89 }
|
|
90
|
|
91 uint timeStyle ()
|
|
92 {
|
|
93 return invokeObjcSelf!(uint, "timeStyle");
|
|
94 }
|
|
95
|
|
96 void setTimeStyle (uint style)
|
|
97 {
|
|
98 return invokeObjcSelf!(void, "setTimeStyle:", uint)(style);
|
|
99 }
|
|
100
|
|
101 NSLocale locale ()
|
|
102 {
|
|
103 return invokeObjcSelf!(NSLocale, "locale");
|
|
104 }
|
|
105
|
|
106 void setLocale (NSLocale locale)
|
|
107 {
|
|
108 return invokeObjcSelf!(void, "setLocale:", NSLocale)(locale);
|
|
109 }
|
|
110
|
|
111 bool generatesCalendarDates ()
|
|
112 {
|
|
113 return invokeObjcSelf!(bool, "generatesCalendarDates");
|
|
114 }
|
|
115
|
|
116 void setGeneratesCalendarDates (bool b)
|
|
117 {
|
|
118 return invokeObjcSelf!(void, "setGeneratesCalendarDates:", bool)(b);
|
|
119 }
|
|
120
|
|
121 uint formatterBehavior ()
|
|
122 {
|
|
123 return invokeObjcSelf!(uint, "formatterBehavior");
|
|
124 }
|
|
125
|
|
126 void setFormatterBehavior (uint behavior)
|
|
127 {
|
|
128 return invokeObjcSelf!(void, "setFormatterBehavior:", uint)(behavior);
|
|
129 }
|
|
130
|
|
131 static uint defaultFormatterBehavior ()
|
|
132 {
|
|
133 return invokeObjcSelfClass!(uint, "defaultFormatterBehavior");
|
|
134 }
|
|
135
|
|
136 static void setDefaultFormatterBehavior (uint behavior)
|
|
137 {
|
|
138 return invokeObjcSelfClass!(void, "setDefaultFormatterBehavior:", uint)(behavior);
|
|
139 }
|
|
140
|
|
141 void setDateFormat (NSString string)
|
|
142 {
|
|
143 return invokeObjcSelf!(void, "setDateFormat:", NSString)(string);
|
|
144 }
|
|
145
|
|
146 NSTimeZone timeZone ()
|
|
147 {
|
|
148 return invokeObjcSelf!(NSTimeZone, "timeZone");
|
|
149 }
|
|
150
|
|
151 void setTimeZone (NSTimeZone tz)
|
|
152 {
|
|
153 return invokeObjcSelf!(void, "setTimeZone:", NSTimeZone)(tz);
|
|
154 }
|
|
155
|
|
156 NSCalendar calendar ()
|
|
157 {
|
|
158 return invokeObjcSelf!(NSCalendar, "calendar");
|
|
159 }
|
|
160
|
|
161 void setCalendar (NSCalendar calendar)
|
|
162 {
|
|
163 return invokeObjcSelf!(void, "setCalendar:", NSCalendar)(calendar);
|
|
164 }
|
|
165
|
|
166 bool isLenient ()
|
|
167 {
|
|
168 return invokeObjcSelf!(bool, "isLenient");
|
|
169 }
|
|
170
|
|
171 void setLenient (bool b)
|
|
172 {
|
|
173 return invokeObjcSelf!(void, "setLenient:", bool)(b);
|
|
174 }
|
|
175
|
|
176 NSDate twoDigitStartDate ()
|
|
177 {
|
|
178 return invokeObjcSelf!(NSDate, "twoDigitStartDate");
|
|
179 }
|
|
180
|
|
181 void setTwoDigitStartDate (NSDate date)
|
|
182 {
|
|
183 return invokeObjcSelf!(void, "setTwoDigitStartDate:", NSDate)(date);
|
|
184 }
|
|
185
|
|
186 NSDate defaultDate ()
|
|
187 {
|
|
188 return invokeObjcSelf!(NSDate, "defaultDate");
|
|
189 }
|
|
190
|
|
191 void setDefaultDate (NSDate date)
|
|
192 {
|
|
193 return invokeObjcSelf!(void, "setDefaultDate:", NSDate)(date);
|
|
194 }
|
|
195
|
|
196 NSArray eraSymbols ()
|
|
197 {
|
|
198 return invokeObjcSelf!(NSArray, "eraSymbols");
|
|
199 }
|
|
200
|
|
201 void setEraSymbols (NSArray array)
|
|
202 {
|
|
203 return invokeObjcSelf!(void, "setEraSymbols:", NSArray)(array);
|
|
204 }
|
|
205
|
|
206 NSArray monthSymbols ()
|
|
207 {
|
|
208 return invokeObjcSelf!(NSArray, "monthSymbols");
|
|
209 }
|
|
210
|
|
211 void setMonthSymbols (NSArray array)
|
|
212 {
|
|
213 return invokeObjcSelf!(void, "setMonthSymbols:", NSArray)(array);
|
|
214 }
|
|
215
|
|
216 NSArray shortMonthSymbols ()
|
|
217 {
|
|
218 return invokeObjcSelf!(NSArray, "shortMonthSymbols");
|
|
219 }
|
|
220
|
|
221 void setShortMonthSymbols (NSArray array)
|
|
222 {
|
|
223 return invokeObjcSelf!(void, "setShortMonthSymbols:", NSArray)(array);
|
|
224 }
|
|
225
|
|
226 NSArray weekdaySymbols ()
|
|
227 {
|
|
228 return invokeObjcSelf!(NSArray, "weekdaySymbols");
|
|
229 }
|
|
230
|
|
231 void setWeekdaySymbols (NSArray array)
|
|
232 {
|
|
233 return invokeObjcSelf!(void, "setWeekdaySymbols:", NSArray)(array);
|
|
234 }
|
|
235
|
|
236 NSArray shortWeekdaySymbols ()
|
|
237 {
|
|
238 return invokeObjcSelf!(NSArray, "shortWeekdaySymbols");
|
|
239 }
|
|
240
|
|
241 void setShortWeekdaySymbols (NSArray array)
|
|
242 {
|
|
243 return invokeObjcSelf!(void, "setShortWeekdaySymbols:", NSArray)(array);
|
|
244 }
|
|
245
|
|
246 NSString AMSymbol ()
|
|
247 {
|
|
248 return invokeObjcSelf!(NSString, "AMSymbol");
|
|
249 }
|
|
250
|
|
251 void setAMSymbol (NSString string)
|
|
252 {
|
|
253 return invokeObjcSelf!(void, "setAMSymbol:", NSString)(string);
|
|
254 }
|
|
255
|
|
256 NSString PMSymbol ()
|
|
257 {
|
|
258 return invokeObjcSelf!(NSString, "PMSymbol");
|
|
259 }
|
|
260
|
|
261 void setPMSymbol (NSString string)
|
|
262 {
|
|
263 return invokeObjcSelf!(void, "setPMSymbol:", NSString)(string);
|
|
264 }
|
|
265
|
|
266 NSArray longEraSymbols ()
|
|
267 {
|
|
268 return invokeObjcSelf!(NSArray, "longEraSymbols");
|
|
269 }
|
|
270
|
|
271 void setLongEraSymbols (NSArray array)
|
|
272 {
|
|
273 return invokeObjcSelf!(void, "setLongEraSymbols:", NSArray)(array);
|
|
274 }
|
|
275
|
|
276 NSArray veryShortMonthSymbols ()
|
|
277 {
|
|
278 return invokeObjcSelf!(NSArray, "veryShortMonthSymbols");
|
|
279 }
|
|
280
|
|
281 void setVeryShortMonthSymbols (NSArray array)
|
|
282 {
|
|
283 return invokeObjcSelf!(void, "setVeryShortMonthSymbols:", NSArray)(array);
|
|
284 }
|
|
285
|
|
286 NSArray standaloneMonthSymbols ()
|
|
287 {
|
|
288 return invokeObjcSelf!(NSArray, "standaloneMonthSymbols");
|
|
289 }
|
|
290
|
|
291 void setStandaloneMonthSymbols (NSArray array)
|
|
292 {
|
|
293 return invokeObjcSelf!(void, "setStandaloneMonthSymbols:", NSArray)(array);
|
|
294 }
|
|
295
|
|
296 NSArray shortStandaloneMonthSymbols ()
|
|
297 {
|
|
298 return invokeObjcSelf!(NSArray, "shortStandaloneMonthSymbols");
|
|
299 }
|
|
300
|
|
301 void setShortStandaloneMonthSymbols (NSArray array)
|
|
302 {
|
|
303 return invokeObjcSelf!(void, "setShortStandaloneMonthSymbols:", NSArray)(array);
|
|
304 }
|
|
305
|
|
306 NSArray veryShortStandaloneMonthSymbols ()
|
|
307 {
|
|
308 return invokeObjcSelf!(NSArray, "veryShortStandaloneMonthSymbols");
|
|
309 }
|
|
310
|
|
311 void setVeryShortStandaloneMonthSymbols (NSArray array)
|
|
312 {
|
|
313 return invokeObjcSelf!(void, "setVeryShortStandaloneMonthSymbols:", NSArray)(array);
|
|
314 }
|
|
315
|
|
316 NSArray veryShortWeekdaySymbols ()
|
|
317 {
|
|
318 return invokeObjcSelf!(NSArray, "veryShortWeekdaySymbols");
|
|
319 }
|
|
320
|
|
321 void setVeryShortWeekdaySymbols (NSArray array)
|
|
322 {
|
|
323 return invokeObjcSelf!(void, "setVeryShortWeekdaySymbols:", NSArray)(array);
|
|
324 }
|
|
325
|
|
326 NSArray standaloneWeekdaySymbols ()
|
|
327 {
|
|
328 return invokeObjcSelf!(NSArray, "standaloneWeekdaySymbols");
|
|
329 }
|
|
330
|
|
331 void setStandaloneWeekdaySymbols (NSArray array)
|
|
332 {
|
|
333 return invokeObjcSelf!(void, "setStandaloneWeekdaySymbols:", NSArray)(array);
|
|
334 }
|
|
335
|
|
336 NSArray shortStandaloneWeekdaySymbols ()
|
|
337 {
|
|
338 return invokeObjcSelf!(NSArray, "shortStandaloneWeekdaySymbols");
|
|
339 }
|
|
340
|
|
341 void setShortStandaloneWeekdaySymbols (NSArray array)
|
|
342 {
|
|
343 return invokeObjcSelf!(void, "setShortStandaloneWeekdaySymbols:", NSArray)(array);
|
|
344 }
|
|
345
|
|
346 NSArray veryShortStandaloneWeekdaySymbols ()
|
|
347 {
|
|
348 return invokeObjcSelf!(NSArray, "veryShortStandaloneWeekdaySymbols");
|
|
349 }
|
|
350
|
|
351 void setVeryShortStandaloneWeekdaySymbols (NSArray array)
|
|
352 {
|
|
353 return invokeObjcSelf!(void, "setVeryShortStandaloneWeekdaySymbols:", NSArray)(array);
|
|
354 }
|
|
355
|
|
356 NSArray quarterSymbols ()
|
|
357 {
|
|
358 return invokeObjcSelf!(NSArray, "quarterSymbols");
|
|
359 }
|
|
360
|
|
361 void setQuarterSymbols (NSArray array)
|
|
362 {
|
|
363 return invokeObjcSelf!(void, "setQuarterSymbols:", NSArray)(array);
|
|
364 }
|
|
365
|
|
366 NSArray shortQuarterSymbols ()
|
|
367 {
|
|
368 return invokeObjcSelf!(NSArray, "shortQuarterSymbols");
|
|
369 }
|
|
370
|
|
371 void setShortQuarterSymbols (NSArray array)
|
|
372 {
|
|
373 return invokeObjcSelf!(void, "setShortQuarterSymbols:", NSArray)(array);
|
|
374 }
|
|
375
|
|
376 NSArray standaloneQuarterSymbols ()
|
|
377 {
|
|
378 return invokeObjcSelf!(NSArray, "standaloneQuarterSymbols");
|
|
379 }
|
|
380
|
|
381 void setStandaloneQuarterSymbols (NSArray array)
|
|
382 {
|
|
383 return invokeObjcSelf!(void, "setStandaloneQuarterSymbols:", NSArray)(array);
|
|
384 }
|
|
385
|
|
386 NSArray shortStandaloneQuarterSymbols ()
|
|
387 {
|
|
388 return invokeObjcSelf!(NSArray, "shortStandaloneQuarterSymbols");
|
|
389 }
|
|
390
|
|
391 void setShortStandaloneQuarterSymbols (NSArray array)
|
|
392 {
|
|
393 return invokeObjcSelf!(void, "setShortStandaloneQuarterSymbols:", NSArray)(array);
|
|
394 }
|
|
395
|
|
396 NSDate gregorianStartDate ()
|
|
397 {
|
|
398 return invokeObjcSelf!(NSDate, "gregorianStartDate");
|
|
399 }
|
|
400
|
|
401 void setGregorianStartDate (NSDate date)
|
|
402 {
|
|
403 return invokeObjcSelf!(void, "setGregorianStartDate:", NSDate)(date);
|
|
404 }
|
|
405 }
|
|
406
|
|
407 template TNSDateFormatterCompatibility ()
|
|
408 {
|
|
409 Object initWithDateFormat (NSString format, bool flag)
|
|
410 {
|
|
411 return invokeObjcSelf!(Object, "initWithDateFormat:allowNaturalLanguage:", NSString, bool)(format, flag);
|
|
412 }
|
|
413
|
|
414 this (NSString format, bool flag)
|
|
415 {
|
|
416 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
|
|
417 id result = Bridge.invokeObjcMethod!(id, "initWithDateFormat:allowNaturalLanguage:", NSString, bool)(objcObject, format, flag);
|
|
418
|
|
419 if (result)
|
|
420 objcObject = ret;
|
|
421
|
|
422 dObject = this;
|
|
423 }
|
|
424
|
|
425 bool allowsNaturalLanguage ()
|
|
426 {
|
|
427 return invokeObjcSelf!(bool, "allowsNaturalLanguage");
|
|
428 }
|
|
429 }
|
|
430
|