view 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 source

/**
 * 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);
	}

}