Mercurial > projects > dstep
diff dstep/applicationservices/ats/ATSLayoutTypes.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/applicationservices/ats/ATSLayoutTypes.d Mon Aug 03 14:00:21 2009 +0200 @@ -0,0 +1,156 @@ +/** + * 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.ATSLayoutTypes; + +//import dstep.AvailabilityMacros; +import dstep.applicationservices.ats.ATSTypes; +import dstep.applicationservices.ats.SFNTLayoutTypes; +import dstep.coreservices.CoreServices; +import dstep.internal.Version; +import dstep.internal.Types; + +struct ATSGlyphVector; + +alias uint ATSULayoutOperationSelector; +alias uint ATSULayoutOperationCallbackStatus; +alias uint ATSLineLayoutOptions; +alias uint ATSStyleRenderingOptions; +alias uint ATSGlyphInfoFlags; +alias ATSGlyphVector* ATSULineRef; +alias ATSUDirectLayoutOperationOverrideProcPtr ATSUDirectLayoutOperationOverrideUPP; + +extern (C) +{ + alias int function (uint, ATSULineRef, uint, void*, ATSULayoutOperationCallbackStatus*) ATSUDirectLayoutOperationOverrideProcPtr; +} + +enum +{ + kATSUseGlyphAdvance = 0x7FFFFFFF, + kATSUseLineHeight = 0x7FFFFFFF, + kATSNoTracking = cast(c_long)0x80000000 +} + +enum +{ + kATSUseCaretOrigins = 0, + kATSUseDeviceOrigins = 1, + kATSUseFractionalOrigins = 2, + kATSUseOriginFlags = 3 +} + +enum +{ + kATSULayoutOperationNone = 0x00000000, + kATSULayoutOperationJustification = 0x00000001, + kATSULayoutOperationMorph = 0x00000002, + kATSULayoutOperationKerningAdjustment = 0x00000004, + kATSULayoutOperationBaselineAdjustment = 0x00000008, + kATSULayoutOperationTrackingAdjustment = 0x00000010, + kATSULayoutOperationPostLayoutAdjustment = 0x00000020, + kATSULayoutOperationAppleReserved = cast(uint) 0xFFFFFFC0 +} + +enum +{ + kATSULayoutOperationCallbackStatusHandled = 0x00000000, + kATSULayoutOperationCallbackStatusContinue = 0x00000001 +} + +enum +{ + kATSLineNoLayoutOptions = 0x00000000, + kATSLineIsDisplayOnly = 0x00000001, + kATSLineHasNoHangers = 0x00000002, + kATSLineHasNoOpticalAlignment = 0x00000004, + kATSLineKeepSpacesOutOfMargin = 0x00000008, + kATSLineNoSpecialJustification = 0x00000010, + kATSLineLastNoJustification = 0x00000020, + kATSLineFractDisable = 0x00000040, + kATSLineImposeNoAngleForEnds = 0x00000080, + kATSLineFillOutToWidth = 0x00000100, + kATSLineTabAdjustEnabled = 0x00000200, + kATSLineIgnoreFontLeading = 0x00000400, + kATSLineApplyAntiAliasing = 0x00000800, + kATSLineNoAntiAliasing = 0x00001000, + kATSLineDisableNegativeJustification = 0x00002000, + kATSLineDisableAutoAdjustDisplayPos = 0x00004000, + kATSLineUseQDRendering = 0x00008000, + kATSLineDisableAllJustification = 0x00010000, + kATSLineDisableAllGlyphMorphing = 0x00020000, + kATSLineDisableAllKerningAdjustments = 0x00040000, + kATSLineDisableAllBaselineAdjustments = 0x00080000, + kATSLineDisableAllTrackingAdjustments = 0x00100000, + kATSLineDisableAllLayoutOperations = kATSLineDisableAllJustification | kATSLineDisableAllGlyphMorphing | kATSLineDisableAllKerningAdjustments | kATSLineDisableAllBaselineAdjustments | kATSLineDisableAllTrackingAdjustments, + kATSLineUseDeviceMetrics = 0x01000000, + kATSLineBreakToNearestCharacter = 0x02000000, + kATSLineAppleReserved = cast(uint) 0xFCE00000 +} + +enum +{ + kATSStyleNoOptions = 0x00000000, + kATSStyleNoHinting = 0x00000001, + kATSStyleApplyAntiAliasing = 0x00000002, + kATSStyleNoAntiAliasing = 0x00000004, + kATSStyleAppleReserved = cast(uint) 0xFFFFFFF8, + kATSStyleApplyHints = kATSStyleNoOptions +} + +enum +{ + kATSGlyphInfoAppleReserved = 0x1FFBFFE8, + kATSGlyphInfoIsAttachment = cast(uint) 0x80000000, + kATSGlyphInfoIsLTHanger = 0x40000000, + kATSGlyphInfoIsRBHanger = 0x20000000, + kATSGlyphInfoTerminatorGlyph = 0x00080000, + kATSGlyphInfoIsWhiteSpace = 0x00040000, + kATSGlyphInfoHasImposedWidth = 0x00000010, + kATSGlyphInfoByteSizeMask = 0x00000007 +} + +struct ATSLayoutRecord +{ + ushort glyphID; + uint flags; + uint originalOffset; + int realPos; +} + + +struct ATSTrapezoid +{ + FixedPoint upperLeft; + FixedPoint upperRight; + FixedPoint lowerRight; + FixedPoint lowerLeft; +} + + +struct ATSJustWidthDeltaEntryOverride +{ + int beforeGrowLimit; + int beforeShrinkLimit; + int afterGrowLimit; + int afterShrinkLimit; + ushort growFlags; + ushort shrinkFlags; +} + + +struct ATSULayoutOperationOverrideSpecifier +{ + uint operationSelector; + ATSUDirectLayoutOperationOverrideUPP overrideUPP; +} + +extern (C) +{ + ATSUDirectLayoutOperationOverrideUPP NewATSUDirectLayoutOperationOverrideUPP (ATSUDirectLayoutOperationOverrideProcPtr userRoutine); + void DisposeATSUDirectLayoutOperationOverrideUPP (ATSUDirectLayoutOperationOverrideUPP userUPP); + int InvokeATSUDirectLayoutOperationOverrideUPP (uint iCurrentOperation, ATSULineRef iLineRef, uint iRefCon, void* iOperationCallbackParameterPtr, ATSULayoutOperationCallbackStatus* oCallbackStatus, ATSUDirectLayoutOperationOverrideUPP userUPP); +} \ No newline at end of file