Mercurial > projects > dstep
view dstep/foundation/NSLocale.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.NSLocale; import dstep.foundation.NSArray; import dstep.foundation.NSDictionary; import dstep.foundation.NSObject; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc : id; import bindings = dstep.foundation.NSLocale_bindings; const NSString NSCurrentLocaleDidChangeNotification; const NSString NSLocaleIdentifier; const NSString NSLocaleLanguageCode; const NSString NSLocaleCountryCode; const NSString NSLocaleScriptCode; const NSString NSLocaleVariantCode; const NSString NSLocaleExemplarCharacterSet; const NSString NSLocaleCalendar; const NSString NSLocaleCollationIdentifier; const NSString NSLocaleUsesMetricSystem; const NSString NSLocaleMeasurementSystem; const NSString NSLocaleDecimalSeparator; const NSString NSLocaleGroupingSeparator; const NSString NSLocaleCurrencySymbol; const NSString NSLocaleCurrencyCode; const NSString NSGregorianCalendar; const NSString NSBuddhistCalendar; const NSString NSChineseCalendar; const NSString NSHebrewCalendar; const NSString NSIslamicCalendar; const NSString NSIslamicCivilCalendar; const NSString NSJapaneseCalendar; static this () { NSCurrentLocaleDidChangeNotification = new NSString(bindings.NSCurrentLocaleDidChangeNotification); NSLocaleIdentifier = new NSString(bindings.NSLocaleIdentifier); NSLocaleLanguageCode = new NSString(bindings.NSLocaleLanguageCode); NSLocaleCountryCode = new NSString(bindings.NSLocaleCountryCode); NSLocaleScriptCode = new NSString(bindings.NSLocaleScriptCode); NSLocaleVariantCode = new NSString(bindings.NSLocaleVariantCode); NSLocaleExemplarCharacterSet = new NSString(bindings.NSLocaleExemplarCharacterSet); NSLocaleCalendar = new NSString(bindings.NSLocaleCalendar); NSLocaleCollationIdentifier = new NSString(bindings.NSLocaleCollationIdentifier); NSLocaleUsesMetricSystem = new NSString(bindings.NSLocaleUsesMetricSystem); NSLocaleMeasurementSystem = new NSString(bindings.NSLocaleMeasurementSystem); NSLocaleDecimalSeparator = new NSString(bindings.NSLocaleDecimalSeparator); NSLocaleGroupingSeparator = new NSString(bindings.NSLocaleGroupingSeparator); NSLocaleCurrencySymbol = new NSString(bindings.NSLocaleCurrencySymbol); NSLocaleCurrencyCode = new NSString(bindings.NSLocaleCurrencyCode); NSGregorianCalendar = new NSString(bindings.NSGregorianCalendar); NSBuddhistCalendar = new NSString(bindings.NSBuddhistCalendar); NSChineseCalendar = new NSString(bindings.NSChineseCalendar); NSHebrewCalendar = new NSString(bindings.NSHebrewCalendar); NSIslamicCalendar = new NSString(bindings.NSIslamicCalendar); NSIslamicCivilCalendar = new NSString(bindings.NSIslamicCivilCalendar); NSJapaneseCalendar = new NSString(bindings.NSJapaneseCalendar); } class NSLocale : NSObject, INSCopying, INSCoding { mixin ObjcWrap; mixin TNSLocaleCreation; mixin TNSLocaleGeneralInfo; mixin TNSExtendedLocale; Object objectForKey (Object key) { return invokeObjcSelf!(Object, "objectForKey:", Object)(key); } NSString displayNameForKey (Object key, Object value) { return invokeObjcSelf!(NSString, "displayNameForKey:value:", Object, Object)(key, value); } 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; } } template TNSLocaleCreation () { static Object systemLocale () { return invokeObjcSelfClass!(Object, "systemLocale"); } static Object currentLocale () { return invokeObjcSelfClass!(Object, "currentLocale"); } static Object autoupdatingCurrentLocale () { return invokeObjcSelfClass!(Object, "autoupdatingCurrentLocale"); } Object initWithLocaleIdentifier (NSString string) { return invokeObjcSelf!(Object, "initWithLocaleIdentifier:", NSString)(string); } this (NSString string) { objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); id result = Bridge.invokeObjcMethod!(id, "initWithLocaleIdentifier:", NSString)(objcObject, string); if (result) objcObject = ret; dObject = this; } } template TNSLocaleGeneralInfo () { static NSArray availableLocaleIdentifiers () { return invokeObjcSelfClass!(NSArray, "availableLocaleIdentifiers"); } static NSArray ISOLanguageCodes () { return invokeObjcSelfClass!(NSArray, "ISOLanguageCodes"); } static NSArray ISOCountryCodes () { return invokeObjcSelfClass!(NSArray, "ISOCountryCodes"); } static NSArray ISOCurrencyCodes () { return invokeObjcSelfClass!(NSArray, "ISOCurrencyCodes"); } static NSArray commonISOCurrencyCodes () { return invokeObjcSelfClass!(NSArray, "commonISOCurrencyCodes"); } static NSArray preferredLanguages () { return invokeObjcSelfClass!(NSArray, "preferredLanguages"); } static NSDictionary componentsFromLocaleIdentifier (NSString string) { return invokeObjcSelfClass!(NSDictionary, "componentsFromLocaleIdentifier:", NSString)(string); } static NSString localeIdentifierFromComponents (NSDictionary dict) { return invokeObjcSelfClass!(NSString, "localeIdentifierFromComponents:", NSDictionary)(dict); } static NSString canonicalLocaleIdentifierFromString (NSString string) { return invokeObjcSelfClass!(NSString, "canonicalLocaleIdentifierFromString:", NSString)(string); } } template TNSExtendedLocale () { NSString localeIdentifier () { return invokeObjcSelf!(NSString, "localeIdentifier"); } }