Mercurial > projects > dstep
view 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 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.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); }