Mercurial > projects > dstep
diff dstep/appkit/NSFont.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/NSFont.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,387 @@ +/** + * 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.NSFont; + +import dstep.appkit.AppKitDefines; +import dstep.appkit.NSAffineTransform; +import dstep.appkit.NSCell; +import dstep.appkit.NSFontDescriptor; +import dstep.appkit.NSGraphicsContext; +import dstep.applicationservices.coregraphics.CGBase; +import dstep.foundation.NSCharacterSet; +import dstep.foundation.NSCoder; +import dstep.foundation.NSGeometry; +import dstep.foundation.NSObjCRuntime; +import dstep.foundation.NSObject; +import dstep.foundation.NSString; +import dstep.foundation.NSZone; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc; + +import bindings = dstep.appkit.NSFont_bindings; + +alias uint NSGlyph; +typedef NSUInteger NSMultibyteGlyphPacking; +typedef NSUInteger NSFontRenderingMode; + +extern (C) +{ + extern + { + const CGFloat* NSFontIdentityMatrix; + } +} + +private +{ + NSString NSAntialiasThresholdChangedNotification_; + NSString NSFontSetChangedNotification_; +} + +NSString NSAntialiasThresholdChangedNotification () +{ + if (NSAntialiasThresholdChangedNotification_) + return NSAntialiasThresholdChangedNotification_; + + return NSAntialiasThresholdChangedNotification_ = new NSString(bindings.NSAntialiasThresholdChangedNotification); +} + +NSString NSFontSetChangedNotification () +{ + if (NSFontSetChangedNotification_) + return NSFontSetChangedNotification_; + + return NSFontSetChangedNotification_ = new NSString(bindings.NSFontSetChangedNotification); +} + +enum +{ + NSControlGlyph = 0x00FFFFFF, + NSNullGlyph = 0x0 +} + +enum +{ + NSNativeShortGlyphPacking = 5 +} + +enum +{ + NSFontDefaultRenderingMode = 0, + NSFontAntialiasedRenderingMode = 1, + NSFontIntegerAdvancementsRenderingMode = 2, + NSFontAntialiasedIntegerAdvancementsRenderingMode = 3 +} + +class NSFont : 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); + } + + static NSFont fontWithName (NSString fontName, CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "fontWithName:size:", NSString, CGFloat)(fontName, fontSize); + } + + static NSFont fontWithName (NSString fontName, CGFloat* fontMatrix) + { + return invokeObjcSelfClass!(NSFont, "fontWithName:matrix:", NSString, CGFloat*)(fontName, fontMatrix); + } + + static NSFont fontWithDescriptor (NSFontDescriptor fontDescriptor, CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "fontWithDescriptor:size:", NSFontDescriptor, CGFloat)(fontDescriptor, fontSize); + } + + static NSFont fontWithDescriptor (NSFontDescriptor fontDescriptor, NSAffineTransform textTransform) + { + return invokeObjcSelfClass!(NSFont, "fontWithDescriptor:textTransform:", NSFontDescriptor, NSAffineTransform)(fontDescriptor, textTransform); + } + + static NSFont userFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "userFontOfSize:", CGFloat)(fontSize); + } + + static NSFont userFixedPitchFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "userFixedPitchFontOfSize:", CGFloat)(fontSize); + } + + static void setUserFont (NSFont aFont) + { + return invokeObjcSelfClass!(void, "setUserFont:", NSFont)(aFont); + } + + static void setUserFixedPitchFont (NSFont aFont) + { + return invokeObjcSelfClass!(void, "setUserFixedPitchFont:", NSFont)(aFont); + } + + static NSFont systemFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "systemFontOfSize:", CGFloat)(fontSize); + } + + static NSFont boldSystemFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "boldSystemFontOfSize:", CGFloat)(fontSize); + } + + static NSFont labelFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "labelFontOfSize:", CGFloat)(fontSize); + } + + static NSFont titleBarFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "titleBarFontOfSize:", CGFloat)(fontSize); + } + + static NSFont menuFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "menuFontOfSize:", CGFloat)(fontSize); + } + + static NSFont menuBarFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "menuBarFontOfSize:", CGFloat)(fontSize); + } + + static NSFont messageFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "messageFontOfSize:", CGFloat)(fontSize); + } + + static NSFont paletteFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "paletteFontOfSize:", CGFloat)(fontSize); + } + + static NSFont toolTipsFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "toolTipsFontOfSize:", CGFloat)(fontSize); + } + + static NSFont controlContentFontOfSize (CGFloat fontSize) + { + return invokeObjcSelfClass!(NSFont, "controlContentFontOfSize:", CGFloat)(fontSize); + } + + static CGFloat systemFontSize () + { + return invokeObjcSelfClass!(CGFloat, "systemFontSize"); + } + + static CGFloat smallSystemFontSize () + { + return invokeObjcSelfClass!(CGFloat, "smallSystemFontSize"); + } + + static CGFloat labelFontSize () + { + return invokeObjcSelfClass!(CGFloat, "labelFontSize"); + } + + static CGFloat systemFontSizeForControlSize (uint controlSize) + { + return invokeObjcSelfClass!(CGFloat, "systemFontSizeForControlSize:", uint)(controlSize); + } + + NSString fontName () + { + return invokeObjcSelf!(NSString, "fontName"); + } + + CGFloat pointSize () + { + return invokeObjcSelf!(CGFloat, "pointSize"); + } + + CGFloat* matrix () + { + return invokeObjcSelf!(CGFloat*, "matrix"); + } + + NSString familyName () + { + return invokeObjcSelf!(NSString, "familyName"); + } + + NSString displayName () + { + return invokeObjcSelf!(NSString, "displayName"); + } + + NSFontDescriptor fontDescriptor () + { + return invokeObjcSelf!(NSFontDescriptor, "fontDescriptor"); + } + + NSAffineTransform textTransform () + { + return invokeObjcSelf!(NSAffineTransform, "textTransform"); + } + + NSUInteger numberOfGlyphs () + { + return invokeObjcSelf!(NSUInteger, "numberOfGlyphs"); + } + + uint mostCompatibleStringEncoding () + { + return invokeObjcSelf!(uint, "mostCompatibleStringEncoding"); + } + + uint glyphWithName (NSString aName) + { + return invokeObjcSelf!(uint, "glyphWithName:", NSString)(aName); + } + + NSCharacterSet coveredCharacterSet () + { + return invokeObjcSelf!(NSCharacterSet, "coveredCharacterSet"); + } + + NSRect boundingRectForFont () + { + return invokeObjcSelf!(NSRect, "boundingRectForFont"); + } + + NSSize maximumAdvancement () + { + return invokeObjcSelf!(NSSize, "maximumAdvancement"); + } + + CGFloat ascender () + { + return invokeObjcSelf!(CGFloat, "ascender"); + } + + CGFloat descender () + { + return invokeObjcSelf!(CGFloat, "descender"); + } + + CGFloat leading () + { + return invokeObjcSelf!(CGFloat, "leading"); + } + + CGFloat underlinePosition () + { + return invokeObjcSelf!(CGFloat, "underlinePosition"); + } + + CGFloat underlineThickness () + { + return invokeObjcSelf!(CGFloat, "underlineThickness"); + } + + CGFloat italicAngle () + { + return invokeObjcSelf!(CGFloat, "italicAngle"); + } + + CGFloat capHeight () + { + return invokeObjcSelf!(CGFloat, "capHeight"); + } + + CGFloat xHeight () + { + return invokeObjcSelf!(CGFloat, "xHeight"); + } + + bool isFixedPitch () + { + return invokeObjcSelf!(bool, "isFixedPitch"); + } + + NSRect boundingRectForGlyph (uint aGlyph) + { + return invokeObjcSelf!(NSRect, "boundingRectForGlyph:", uint)(aGlyph); + } + + NSSize advancementForGlyph (uint ag) + { + return invokeObjcSelf!(NSSize, "advancementForGlyph:", uint)(ag); + } + + void getBoundingRects (NSRectArray bounds, NSGlyph* glyphs, NSUInteger glyphCount) + { + return invokeObjcSelf!(void, "getBoundingRects:forGlyphs:count:", NSRectArray, NSGlyph*, NSUInteger)(bounds, glyphs, glyphCount); + } + + void getAdvancements (NSSizeArray advancements, NSGlyph* glyphs, NSUInteger glyphCount) + { + return invokeObjcSelf!(void, "getAdvancements:forGlyphs:count:", NSSizeArray, NSGlyph*, NSUInteger)(advancements, glyphs, glyphCount); + } + + void getAdvancements (NSSizeArray advancements, void* packedGlyphs, NSUInteger length) + { + return invokeObjcSelf!(void, "getAdvancements:forPackedGlyphs:length:", NSSizeArray, void*, NSUInteger)(advancements, packedGlyphs, length); + } + + void set () + { + return invokeObjcSelf!(void, "set"); + } + + void setInContext (NSGraphicsContext graphicsContext) + { + return invokeObjcSelf!(void, "setInContext:", NSGraphicsContext)(graphicsContext); + } + + NSFont printerFont () + { + id result = invokeObjcSelf!(id, "printerFont"); + return result is this.objcObject ? this : (result !is null ? new NSFont(result) : null); + } + + NSFont screenFont () + { + id result = invokeObjcSelf!(id, "screenFont"); + return result is this.objcObject ? this : (result !is null ? new NSFont(result) : null); + } + + NSFont screenFontWithRenderingMode (uint renderingMode) + { + id result = invokeObjcSelf!(id, "screenFontWithRenderingMode:", uint)(renderingMode); + return result is this.objcObject ? this : (result !is null ? new NSFont(result) : null); + } + + uint renderingMode () + { + return invokeObjcSelf!(uint, "renderingMode"); + } + +} + +extern (C) +{ + NSInteger NSConvertGlyphsToPackedGlyphs (NSGlyph* glBuf, NSInteger count, uint packing, char* packedGlyphs); +} \ No newline at end of file