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