Mercurial > projects > dstep
view dstep/applicationservices/ats/ATSTypes.d @ 12:9f0b49a2f64e
Added the ApplicationServices frameworks: ATS, ColorSync and CoreGraphics
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 14:00:21 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Aug 1, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.applicationservices.ats.ATSTypes; //import dstep.AvailabilityMacros; import dstep.applicationservices.coregraphics.CGBase; import dstep.applicationservices.coregraphics.CGGeometry; import dstep.coreservices.CoreServices; import dstep.objc.bridge.TypeEncoding; alias CGPoint ATSPoint; alias uint FMGeneration; alias short FMFontFamily; alias short FMFontStyle; alias short FMFontSize; alias uint FMFont; alias uint FMFilterSelector; alias FMFontFamilyCallbackFilterProcPtr FMFontFamilyCallbackFilterUPP; alias FMFontCallbackFilterProcPtr FMFontCallbackFilterUPP; alias uint ATSOptionFlags; alias uint ATSGeneration; alias uint ATSFontContainerRef; alias uint ATSFontFamilyRef; alias uint ATSFontRef; alias ushort ATSGlyphRef; alias CGFloat ATSFontSize; alias uint ATSFontFormat; alias ushort ATSCurveType; alias ushort GlyphID; extern (C) { alias int function (uint, void*) FMFontCallbackFilterProcPtr; alias int function (short, void*) FMFontFamilyCallbackFilterProcPtr; } // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __kFMTrueTypeFontTechnology = getOSType!("true"); const __kFMPostScriptFontTechnology = getOSType!("typ1"); } } enum { kInvalidGeneration = 0L, kInvalidFontFamily = -1, kInvalidFont = 0L } enum { kFMCurrentFilterFormat = 0L } enum { kFMFontTechnologyFilterSelector = 1L, kFMFontContainerFilterSelector = 2L, kFMGenerationFilterSelector = 3L, kFMFontFamilyCallbackFilterSelector = 4L, kFMFontCallbackFilterSelector = 5L, kFMFontDirectoryFilterSelector = 6L, kFMFontFileRefFilterSelector = 10L } enum { kFMTrueTypeFontTechnology = getOSType!("true"), kFMPostScriptFontTechnology = getOSType!("typ1") } enum { kATSFontFormatUnspecified = 0 } enum { kATSGenerationUnspecified = 0L, kATSFontContainerRefUnspecified = 0L, kATSFontFamilyRefUnspecified = 0L, kATSFontRefUnspecified = 0L } enum { kATSItalicQDSkew = (1 << 16) / 4, kATSBoldQDStretch = (1 << 16) * 3 / 2, kATSRadiansFactor = 1144 } enum { kATSCubicCurveType = 0x0001, kATSQuadCurveType = 0x0002, kATSOtherCurveType = 0x0003 } enum { kATSDeletedGlyphcode = 0xFFFF } struct ATSFSSpec { short vRefNum; int parID; ubyte[64] name; } struct FMFontFamilyInstance { short fontFamily; short fontStyle; } struct FMFontFamilyIterator { UInt32* reserved; } struct FMFontIterator { UInt32* reserved; } struct FMFontFamilyInstanceIterator { UInt32* reserved; } struct FMFontDirectoryFilter { short fontFolderDomain; UInt32* reserved; } struct FMFilter { uint format; FMFilterSelector selector; union { FourCharCode fontTechnologyFilter; ATSFSSpec fontContainerFilter; FMGeneration generationFilter; FMFontFamilyCallbackFilterUPP fontFamilyCallbackFilter; FMFontCallbackFilterUPP fontCallbackFilter; FMFontDirectoryFilter fontDirectoryFilter; /*const*/ FSRef* fontFileRefFilter; } } struct ATSFontMetrics { float version_; CGFloat ascent; CGFloat descent; CGFloat leading; CGFloat avgAdvanceWidth; CGFloat maxAdvanceWidth; CGFloat minLeftSideBearing; CGFloat minRightSideBearing; CGFloat stemWidth; CGFloat stemHeight; CGFloat capHeight; CGFloat xHeight; CGFloat italicAngle; CGFloat underlinePosition; CGFloat underlineThickness; } struct ATSUCurvePath { UInt32 vectors; UInt32* controlBits; ATSPoint* vector; } struct ATSUCurvePaths { UInt32 contours; ATSUCurvePath* contour; } struct ATSGlyphIdealMetrics { ATSPoint advance; ATSPoint sideBearing; ATSPoint otherSideBearing; } struct ATSGlyphScreenMetrics { ATSPoint deviceAdvance; uint topLeft; uint height; UInt32 width; ATSPoint sideBearing; ATSPoint otherSideBearing; } extern (C) { FMFontFamilyCallbackFilterUPP NewFMFontFamilyCallbackFilterUPP (FMFontFamilyCallbackFilterProcPtr userRoutine); FMFontCallbackFilterUPP NewFMFontCallbackFilterUPP (FMFontCallbackFilterProcPtr userRoutine); void DisposeFMFontFamilyCallbackFilterUPP (FMFontFamilyCallbackFilterUPP userUPP); void DisposeFMFontCallbackFilterUPP (FMFontCallbackFilterUPP userUPP); int InvokeFMFontFamilyCallbackFilterUPP (short iFontFamily, void* iRefCon, FMFontFamilyCallbackFilterUPP userUPP); int InvokeFMFontCallbackFilterUPP (uint iFont, void* iRefCon, FMFontCallbackFilterUPP userUPP); }