Mercurial > projects > dstep
view dstep/applicationservices/ats/ATSFont.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.ATSFont; //import dstep.AvailabilityMacros; import dstep.applicationservices.ats.ATSTypes; import dstep.applicationservices.ats.SFNTTypes; import dstep.corefoundation.CoreFoundation; import dstep.coreservices.CoreServices; import dstep.objc.bridge.TypeEncoding; struct ATSFontFamilyIterator_; struct ATSFontIterator_; struct ATSFontNotificationRef_; struct ATSFontNotificationInfoRef_; alias uint ATSFontContext; alias ATSFontFamilyIterator_* ATSFontFamilyIterator; alias ATSFontIterator_* ATSFontIterator; alias int ATSFontFilterSelector; alias ATSFontNotificationRef_* ATSFontNotificationRef; alias ATSFontNotificationInfoRef_* ATSFontNotificationInfoRef; alias int ATSFontNotifyOption; alias int ATSFontNotifyAction; alias int ATSFontQueryMessageID; alias uint ATSFontAutoActivationSetting; extern (C) { alias int function (uint, void*) ATSFontApplierFunction; alias void function (ATSFontNotificationInfoRef, void*) ATSNotificationCallback; alias CFPropertyListRef function (int, CFPropertyListRef, void*) ATSFontQueryCallback; alias int function (uint, void*) ATSFontFamilyApplierFunction; } // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __kATSQueryActivateFontMessage = getOSType!("atsa"); } } enum { kATSOptionFlagsDefault = kNilOptions, kATSOptionFlagsComposeFontPostScriptName = 1 << 0, kATSOptionFlagsUseDataForkAsResourceFork = 1 << 8, kATSOptionFlagsUseResourceFork = 2 << 8, kATSOptionFlagsUseDataFork = 3 << 8 } enum { kATSIterationCompleted = -980L, kATSInvalidFontFamilyAccess = -981L, kATSInvalidFontAccess = -982L, kATSIterationScopeModified = -983L, kATSInvalidFontTableAccess = -984L, kATSInvalidFontContainerAccess = -985L, kATSInvalidGlyphAccess = -986L } enum { kATSFontContextUnspecified = 0, kATSFontContextGlobal = 1, kATSFontContextLocal = 2 } enum { kATSOptionFlagsActivateDisabled = 0x00000001 << 5, kATSOptionFlagsProcessSubdirectories = 0x00000001 << 6, kATSOptionFlagsDoNotNotify = 0x00000001 << 7, kATSOptionFlagsRecordPersistently = 0x00000001 << 18 } enum { kATSOptionFlagsIterateByPrecedenceMask = 0x00000001 << 5, kATSOptionFlagsIncludeDisabledMask = 0x00000001 << 7, kATSOptionFlagsIterationScopeMask = 0x00000007 << 12, kATSOptionFlagsDefaultScope = 0x00000000 << 12, kATSOptionFlagsUnRestrictedScope = 0x00000001 << 12, kATSOptionFlagsRestrictedScope = 0x00000002 << 12 } enum { kATSFontFilterCurrentVersion = 0 } enum /*ATSFontFilterSelector*/ { kATSFontFilterSelectorUnspecified = 0, kATSFontFilterSelectorGeneration = 3, kATSFontFilterSelectorFontFamily = 7, kATSFontFilterSelectorFontFamilyApplierFunction = 8, kATSFontFilterSelectorFontApplierFunction = 9, kATSFileReferenceFilterSelector = 10 } enum /*ATSFontNotifyOption*/ { kATSFontNotifyOptionDefault = 0, kATSFontNotifyOptionReceiveWhileSuspended = 1L << 0 } enum /*ATSFontNotifyAction*/ { kATSFontNotifyActionFontsChanged = 1, kATSFontNotifyActionDirectoriesChanged = 2 } enum /*ATSFontQueryMessageID*/ { kATSQueryActivateFontMessage = getOSType!("atsa") } enum { kATSFontAutoActivationDefault = 0, kATSFontAutoActivationDisabled = 1, kATSFontAutoActivationEnabled = 2, kATSFontAutoActivationAsk = 4 } struct ATSFontFilter { uint version_; ATSFontFilterSelector filterSelector; union { ATSGeneration generationFilter; ATSFontFamilyRef fontFamilyFilter; ATSFontFamilyApplierFunction fontFamilyApplierFunctionFilter; ATSFontApplierFunction fontApplierFunctionFilter; /*const*/ FSRef* fontFileRefFilter; } } struct ATSFontQuerySourceContext { UInt32 version_; void* refCon; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; } extern (C) { uint ATSGetGeneration (); int ATSFontActivateFromFileReference (FSRef* iFile, uint iContext, uint iFormat, void* iRefCon, uint iOptions, ATSFontContainerRef* oContainer); int ATSFontActivateFromMemory (LogicalAddress iData, uint iLength, uint iContext, uint iFormat, void* iReserved, uint iOptions, ATSFontContainerRef* oContainer); int ATSFontDeactivate (uint iContainer, void* iRefCon, uint iOptions); int ATSFontGetContainerFromFileReference (FSRef* iFile, uint iContext, uint iOptions, ATSFontContainerRef* oContainer); int ATSFontGetContainer (uint iFont, uint iOptions, ATSFontContainerRef* oContainer); int ATSFontSetEnabled (uint iFont, uint iOptions, ubyte iEnabled); ubyte ATSFontIsEnabled (uint iFont); int ATSFontFamilyApplyFunction (ATSFontFamilyApplierFunction iFunction, void* iRefCon); int ATSFontFamilyIteratorCreate (uint iContext, ATSFontFilter* iFilter, void* iRefCon, uint iOptions, ATSFontFamilyIterator* ioIterator); int ATSFontFamilyIteratorRelease (ATSFontFamilyIterator* ioIterator); int ATSFontFamilyIteratorReset (uint iContext, ATSFontFilter* iFilter, void* iRefCon, uint iOptions, ATSFontFamilyIterator* ioIterator); int ATSFontFamilyIteratorNext (ATSFontFamilyIterator iIterator, ATSFontFamilyRef* oFamily); uint ATSFontFamilyFindFromName (CFStringRef iName, uint iOptions); uint ATSFontFamilyGetGeneration (uint iFamily); int ATSFontFamilyGetName (uint iFamily, uint iOptions, CFStringRef* oName); uint ATSFontFamilyGetEncoding (uint iFamily); int ATSFontApplyFunction (ATSFontApplierFunction iFunction, void* iRefCon); int ATSFontIteratorCreate (uint iContext, ATSFontFilter* iFilter, void* iRefCon, uint iOptions, ATSFontIterator* ioIterator); int ATSFontIteratorRelease (ATSFontIterator* ioIterator); int ATSFontIteratorReset (uint iContext, ATSFontFilter* iFilter, void* iRefCon, uint iOptions, ATSFontIterator* ioIterator); int ATSFontIteratorNext (ATSFontIterator iIterator, ATSFontRef* oFont); uint ATSFontFindFromName (CFStringRef iName, uint iOptions); uint ATSFontFindFromPostScriptName (CFStringRef iName, uint iOptions); int ATSFontFindFromContainer (uint iContainer, uint iOptions, uint iCount, ATSFontRef* ioArray, ItemCount* oCount); uint ATSFontGetGeneration (uint iFont); int ATSFontGetName (uint iFont, uint iOptions, CFStringRef* oName); int ATSFontGetPostScriptName (uint iFont, uint iOptions, CFStringRef* oName); int ATSFontGetTableDirectory (uint iFont, uint iBufferSize, void* ioBuffer, ByteCount* oSize); int ATSFontGetTable (uint iFont, uint iTag, uint iOffset, uint iBufferSize, void* ioBuffer, ByteCount* oSize); int ATSFontGetHorizontalMetrics (uint iFont, uint iOptions, ATSFontMetrics* oMetrics); int ATSFontGetVerticalMetrics (uint iFont, uint iOptions, ATSFontMetrics* oMetrics); uint ATSFontFamilyFindFromQuickDrawName (char* iName); int ATSFontFamilyGetQuickDrawName (uint iFamily, ubyte[256] oName); int ATSFontGetFileReference (uint iFont, FSRef* oFile); int ATSFontGetFontFamilyResource (uint iFont, uint iBufferSize, void* ioBuffer, ByteCount* oSize); int ATSFontNotify (int action, void* info); int ATSFontNotificationSubscribe (ATSNotificationCallback callback, int options, void* iRefcon, ATSFontNotificationRef* oNotificationRef); int ATSFontNotificationUnsubscribe (ATSFontNotificationRef notificationRef); CFRunLoopSourceRef ATSCreateFontQueryRunLoopSource (int queryOrder, int sourceOrder, ATSFontQueryCallback callout, ATSFontQuerySourceContext* context); int ATSFontSetGlobalAutoActivationSetting (uint iSetting); uint ATSFontGetGlobalAutoActivationSetting (); int ATSFontSetAutoActivationSettingForApplication (uint iSetting, CFURLRef iApplicationFileURL); uint ATSFontGetAutoActivationSettingForApplication (CFURLRef iApplicationFileURL); }