Mercurial > projects > dstep
diff dstep/appkit/NSFontDescriptor.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | b9de51448c6b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/appkit/NSFontDescriptor.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,398 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Sep 24, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.appkit.NSFontDescriptor; + +import dstep.appkit.AppKitDefines; +import dstep.applicationservices.coregraphics.CGBase; +import dstep.foundation.NSAffineTransform; +import dstep.foundation.NSArray; +import dstep.foundation.NSCoder; +import dstep.foundation.NSDictionary; +import dstep.foundation.NSGeometry; +import dstep.foundation.NSObject; +import dstep.foundation.NSSet; +import dstep.foundation.NSString; +import dstep.foundation.NSZone; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc; + +import bindings = dstep.appkit.NSFontDescriptor_bindings; + +alias uint NSFontSymbolicTraits; +alias uint NSFontFamilyClass; + +private +{ + NSString NSFontFamilyAttribute_; + NSString NSFontNameAttribute_; + NSString NSFontFaceAttribute_; + NSString NSFontSizeAttribute_; + NSString NSFontVisibleNameAttribute_; + NSString NSFontMatrixAttribute_; + NSString NSFontVariationAttribute_; + NSString NSFontCharacterSetAttribute_; + NSString NSFontCascadeListAttribute_; + NSString NSFontTraitsAttribute_; + NSString NSFontFixedAdvanceAttribute_; + NSString NSFontFeatureSettingsAttribute_; + NSString NSFontSymbolicTrait_; + NSString NSFontWeightTrait_; + NSString NSFontWidthTrait_; + NSString NSFontSlantTrait_; + NSString NSFontVariationAxisIdentifierKey_; + NSString NSFontVariationAxisMinimumValueKey_; + NSString NSFontVariationAxisMaximumValueKey_; + NSString NSFontVariationAxisDefaultValueKey_; + NSString NSFontVariationAxisNameKey_; + NSString NSFontFeatureTypeIdentifierKey_; + NSString NSFontFeatureSelectorIdentifierKey_; +} + +NSString NSFontFamilyAttribute () +{ + if (NSFontFamilyAttribute_) + return NSFontFamilyAttribute_; + + return NSFontFamilyAttribute_ = new NSString(bindings.NSFontFamilyAttribute); +} + +NSString NSFontNameAttribute () +{ + if (NSFontNameAttribute_) + return NSFontNameAttribute_; + + return NSFontNameAttribute_ = new NSString(bindings.NSFontNameAttribute); +} + +NSString NSFontFaceAttribute () +{ + if (NSFontFaceAttribute_) + return NSFontFaceAttribute_; + + return NSFontFaceAttribute_ = new NSString(bindings.NSFontFaceAttribute); +} + +NSString NSFontSizeAttribute () +{ + if (NSFontSizeAttribute_) + return NSFontSizeAttribute_; + + return NSFontSizeAttribute_ = new NSString(bindings.NSFontSizeAttribute); +} + +NSString NSFontVisibleNameAttribute () +{ + if (NSFontVisibleNameAttribute_) + return NSFontVisibleNameAttribute_; + + return NSFontVisibleNameAttribute_ = new NSString(bindings.NSFontVisibleNameAttribute); +} + +NSString NSFontMatrixAttribute () +{ + if (NSFontMatrixAttribute_) + return NSFontMatrixAttribute_; + + return NSFontMatrixAttribute_ = new NSString(bindings.NSFontMatrixAttribute); +} + +NSString NSFontVariationAttribute () +{ + if (NSFontVariationAttribute_) + return NSFontVariationAttribute_; + + return NSFontVariationAttribute_ = new NSString(bindings.NSFontVariationAttribute); +} + +NSString NSFontCharacterSetAttribute () +{ + if (NSFontCharacterSetAttribute_) + return NSFontCharacterSetAttribute_; + + return NSFontCharacterSetAttribute_ = new NSString(bindings.NSFontCharacterSetAttribute); +} + +NSString NSFontCascadeListAttribute () +{ + if (NSFontCascadeListAttribute_) + return NSFontCascadeListAttribute_; + + return NSFontCascadeListAttribute_ = new NSString(bindings.NSFontCascadeListAttribute); +} + +NSString NSFontTraitsAttribute () +{ + if (NSFontTraitsAttribute_) + return NSFontTraitsAttribute_; + + return NSFontTraitsAttribute_ = new NSString(bindings.NSFontTraitsAttribute); +} + +NSString NSFontFixedAdvanceAttribute () +{ + if (NSFontFixedAdvanceAttribute_) + return NSFontFixedAdvanceAttribute_; + + return NSFontFixedAdvanceAttribute_ = new NSString(bindings.NSFontFixedAdvanceAttribute); +} + +NSString NSFontFeatureSettingsAttribute () +{ + if (NSFontFeatureSettingsAttribute_) + return NSFontFeatureSettingsAttribute_; + + return NSFontFeatureSettingsAttribute_ = new NSString(bindings.NSFontFeatureSettingsAttribute); +} + +NSString NSFontSymbolicTrait () +{ + if (NSFontSymbolicTrait_) + return NSFontSymbolicTrait_; + + return NSFontSymbolicTrait_ = new NSString(bindings.NSFontSymbolicTrait); +} + +NSString NSFontWeightTrait () +{ + if (NSFontWeightTrait_) + return NSFontWeightTrait_; + + return NSFontWeightTrait_ = new NSString(bindings.NSFontWeightTrait); +} + +NSString NSFontWidthTrait () +{ + if (NSFontWidthTrait_) + return NSFontWidthTrait_; + + return NSFontWidthTrait_ = new NSString(bindings.NSFontWidthTrait); +} + +NSString NSFontSlantTrait () +{ + if (NSFontSlantTrait_) + return NSFontSlantTrait_; + + return NSFontSlantTrait_ = new NSString(bindings.NSFontSlantTrait); +} + +NSString NSFontVariationAxisIdentifierKey () +{ + if (NSFontVariationAxisIdentifierKey_) + return NSFontVariationAxisIdentifierKey_; + + return NSFontVariationAxisIdentifierKey_ = new NSString(bindings.NSFontVariationAxisIdentifierKey); +} + +NSString NSFontVariationAxisMinimumValueKey () +{ + if (NSFontVariationAxisMinimumValueKey_) + return NSFontVariationAxisMinimumValueKey_; + + return NSFontVariationAxisMinimumValueKey_ = new NSString(bindings.NSFontVariationAxisMinimumValueKey); +} + +NSString NSFontVariationAxisMaximumValueKey () +{ + if (NSFontVariationAxisMaximumValueKey_) + return NSFontVariationAxisMaximumValueKey_; + + return NSFontVariationAxisMaximumValueKey_ = new NSString(bindings.NSFontVariationAxisMaximumValueKey); +} + +NSString NSFontVariationAxisDefaultValueKey () +{ + if (NSFontVariationAxisDefaultValueKey_) + return NSFontVariationAxisDefaultValueKey_; + + return NSFontVariationAxisDefaultValueKey_ = new NSString(bindings.NSFontVariationAxisDefaultValueKey); +} + +NSString NSFontVariationAxisNameKey () +{ + if (NSFontVariationAxisNameKey_) + return NSFontVariationAxisNameKey_; + + return NSFontVariationAxisNameKey_ = new NSString(bindings.NSFontVariationAxisNameKey); +} + +NSString NSFontFeatureTypeIdentifierKey () +{ + if (NSFontFeatureTypeIdentifierKey_) + return NSFontFeatureTypeIdentifierKey_; + + return NSFontFeatureTypeIdentifierKey_ = new NSString(bindings.NSFontFeatureTypeIdentifierKey); +} + +NSString NSFontFeatureSelectorIdentifierKey () +{ + if (NSFontFeatureSelectorIdentifierKey_) + return NSFontFeatureSelectorIdentifierKey_; + + return NSFontFeatureSelectorIdentifierKey_ = new NSString(bindings.NSFontFeatureSelectorIdentifierKey); +} + +enum +{ + NSFontUnknownClass = 0 << 28, + NSFontOldStyleSerifsClass = 1 << 28, + NSFontTransitionalSerifsClass = 2 << 28, + NSFontModernSerifsClass = 3 << 28, + NSFontClarendonSerifsClass = 4 << 28, + NSFontSlabSerifsClass = 5 << 28, + NSFontFreeformSerifsClass = 7 << 28, + NSFontSansSerifClass = 8 << 28, + NSFontOrnamentalsClass = 9 << 28, + NSFontScriptsClass = 10 << 28, + NSFontSymbolicClass = 12 << 28 +} + +enum +{ + NSFontFamilyClassMask = 0xF0000000 +} + +enum +{ + NSFontItalicTrait = (1 << 0), + NSFontBoldTrait = (1 << 1), + NSFontExpandedTrait = (1 << 5), + NSFontCondensedTrait = (1 << 6), + NSFontMonoSpaceTrait = (1 << 10), + NSFontVerticalTrait = (1 << 11), + NSFontUIOptimizedTrait = (1 << 12) +} + +class NSFontDescriptor : NSObject, INSCopying, INSCoding +{ + mixin (ObjcWrap); + + this (NSCoder aDecoder) + { + super(typeof(this).alloc.initWithCoder(aDecoder).objcObject); + } + + void encodeWithCoder (NSCoder aCoder) + { + return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); + } + + typeof(this) initWithCoder (NSCoder aDecoder) + { + return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder); + } + + typeof(this) copyWithZone (NSZone* zone) + { + return invokeObjcSelf!(typeof(this), "copyWithZone:", NSZone*)(zone); + } + + NSString postscriptName () + { + return invokeObjcSelf!(NSString, "postscriptName"); + } + + CGFloat pointSize () + { + return invokeObjcSelf!(CGFloat, "pointSize"); + } + + NSAffineTransform matrix () + { + return invokeObjcSelf!(NSAffineTransform, "matrix"); + } + + uint symbolicTraits () + { + return invokeObjcSelf!(uint, "symbolicTraits"); + } + + Object objectForKey (NSString anAttribute) + { + return invokeObjcSelf!(Object, "objectForKey:", NSString)(anAttribute); + } + + NSDictionary fontAttributes () + { + return invokeObjcSelf!(NSDictionary, "fontAttributes"); + } + + static NSFontDescriptor fontDescriptorWithFontAttributes (NSDictionary attributes) + { + return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithFontAttributes:", NSDictionary)(attributes); + } + + static NSFontDescriptor fontDescriptorWithName (NSString fontName, CGFloat size) + { + return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithName:size:", NSString, CGFloat)(fontName, size); + } + + static NSFontDescriptor fontDescriptorWithName (NSString fontName, NSAffineTransform matrix) + { + return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithName:matrix:", NSString, NSAffineTransform)(fontName, matrix); + } + + NSFontDescriptor initWithFontAttributes (NSDictionary attributes) + { + id result = invokeObjcSelf!(id, "initWithFontAttributes:", NSDictionary)(attributes); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + this (NSDictionary attributes) + { + super(NSFontDescriptor.alloc.initWithFontAttributes(attributes).objcObject); + } + + NSArray matchingFontDescriptorsWithMandatoryKeys (NSSet mandatoryKeys) + { + return invokeObjcSelf!(NSArray, "matchingFontDescriptorsWithMandatoryKeys:", NSSet)(mandatoryKeys); + } + + NSFontDescriptor matchingFontDescriptorWithMandatoryKeys (NSSet mandatoryKeys) + { + id result = invokeObjcSelf!(id, "matchingFontDescriptorWithMandatoryKeys:", NSSet)(mandatoryKeys); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorByAddingAttributes (NSDictionary attributes) + { + id result = invokeObjcSelf!(id, "fontDescriptorByAddingAttributes:", NSDictionary)(attributes); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorWithSymbolicTraits (uint symbolicTraits) + { + id result = invokeObjcSelf!(id, "fontDescriptorWithSymbolicTraits:", uint)(symbolicTraits); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorWithSize (CGFloat newPointSize) + { + id result = invokeObjcSelf!(id, "fontDescriptorWithSize:", CGFloat)(newPointSize); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorWithMatrix (NSAffineTransform matrix) + { + id result = invokeObjcSelf!(id, "fontDescriptorWithMatrix:", NSAffineTransform)(matrix); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorWithFace (NSString newFace) + { + id result = invokeObjcSelf!(id, "fontDescriptorWithFace:", NSString)(newFace); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + + NSFontDescriptor fontDescriptorWithFamily (NSString newFamily) + { + id result = invokeObjcSelf!(id, "fontDescriptorWithFamily:", NSString)(newFamily); + return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); + } + +} +