19 #ifndef __SFNTLAYOUTTYPES__
20 #define __SFNTLAYOUTTYPES__
38 #if PRAGMA_STRUCT_ALIGN
39 #pragma options align = mac68k
40 #elif PRAGMA_STRUCT_PACKPUSH
42 #elif PRAGMA_STRUCT_PACK
61 kAllTypographicFeaturesType = 0,
63 kCursiveConnectionType = 2,
65 kVerticalSubstitutionType = 4,
66 kLinguisticRearrangementType = 5,
67 kNumberSpacingType = 6,
70 kVerticalPositionType = 10,
72 kOverlappingCharactersType = 13,
73 kTypographicExtrasType = 14,
74 kMathematicalExtrasType = 15,
75 kOrnamentSetsType = 16,
76 kCharacterAlternativesType = 17,
77 kDesignComplexityType = 18,
78 kStyleOptionsType = 19,
79 kCharacterShapeType = 20,
81 kTextSpacingType = 22,
82 kTransliterationType = 23,
84 kKanaSpacingType = 25,
85 kIdeographicSpacingType = 26,
86 kUnicodeDecompositionType = 27,
88 kCJKSymbolAlternativesType = 29,
89 kIdeographicAlternativesType = 30,
90 kCJKVerticalRomanPlacementType = 31,
91 kItalicCJKRomanType = 32,
92 kCJKRomanSpacingType = 103,
100 enum { kAllTypeFeaturesOnSelector = 0, kAllTypeFeaturesOffSelector = 1 };
107 kRequiredLigaturesOnSelector = 0,
108 kRequiredLigaturesOffSelector = 1,
109 kCommonLigaturesOnSelector = 2,
110 kCommonLigaturesOffSelector = 3,
111 kRareLigaturesOnSelector = 4,
112 kRareLigaturesOffSelector = 5,
113 kLogosOnSelector = 6,
114 kLogosOffSelector = 7,
115 kRebusPicturesOnSelector = 8,
116 kRebusPicturesOffSelector = 9,
117 kDiphthongLigaturesOnSelector = 10,
118 kDiphthongLigaturesOffSelector = 11,
119 kSquaredLigaturesOnSelector = 12,
120 kSquaredLigaturesOffSelector = 13,
121 kAbbrevSquaredLigaturesOnSelector = 14,
122 kAbbrevSquaredLigaturesOffSelector = 15,
123 kSymbolLigaturesOnSelector = 16,
124 kSymbolLigaturesOffSelector = 17
132 kUnconnectedSelector = 0,
133 kPartiallyConnectedSelector = 1,
142 kUpperAndLowerCaseSelector = 0,
143 kAllCapsSelector = 1,
144 kAllLowerCaseSelector = 2,
145 kSmallCapsSelector = 3,
146 kInitialCapsSelector = 4,
147 kInitialCapsAndSmallCapsSelector = 5
155 kSubstituteVerticalFormsOnSelector = 0,
156 kSubstituteVerticalFormsOffSelector = 1
164 kLinguisticRearrangementOnSelector = 0,
165 kLinguisticRearrangementOffSelector = 1
173 kMonospacedNumbersSelector = 0,
174 kProportionalNumbersSelector = 1,
175 kThirdWidthNumbersSelector = 2,
176 kQuarterWidthNumbersSelector = 3
184 kWordInitialSwashesOnSelector = 0,
185 kWordInitialSwashesOffSelector = 1,
186 kWordFinalSwashesOnSelector = 2,
187 kWordFinalSwashesOffSelector = 3,
188 kLineInitialSwashesOnSelector = 4,
189 kLineInitialSwashesOffSelector = 5,
190 kLineFinalSwashesOnSelector = 6,
191 kLineFinalSwashesOffSelector = 7,
192 kNonFinalSwashesOnSelector = 8,
193 kNonFinalSwashesOffSelector = 9
201 kShowDiacriticsSelector = 0,
202 kHideDiacriticsSelector = 1,
203 kDecomposeDiacriticsSelector = 2
211 kNormalPositionSelector = 0,
212 kSuperiorsSelector = 1,
213 kInferiorsSelector = 2,
214 kOrdinalsSelector = 3
222 kNoFractionsSelector = 0,
223 kVerticalFractionsSelector = 1,
224 kDiagonalFractionsSelector = 2
231 enum { kPreventOverlapOnSelector = 0, kPreventOverlapOffSelector = 1 };
238 kHyphensToEmDashOnSelector = 0,
239 kHyphensToEmDashOffSelector = 1,
240 kHyphenToEnDashOnSelector = 2,
241 kHyphenToEnDashOffSelector = 3,
242 kSlashedZeroOnSelector = 4,
243 kSlashedZeroOffSelector = 5,
244 kFormInterrobangOnSelector = 6,
245 kFormInterrobangOffSelector = 7,
246 kSmartQuotesOnSelector = 8,
247 kSmartQuotesOffSelector = 9,
248 kPeriodsToEllipsisOnSelector = 10,
249 kPeriodsToEllipsisOffSelector = 11
257 kHyphenToMinusOnSelector = 0,
258 kHyphenToMinusOffSelector = 1,
259 kAsteriskToMultiplyOnSelector = 2,
260 kAsteriskToMultiplyOffSelector = 3,
261 kSlashToDivideOnSelector = 4,
262 kSlashToDivideOffSelector = 5,
263 kInequalityLigaturesOnSelector = 6,
264 kInequalityLigaturesOffSelector = 7,
265 kExponentsOnSelector = 8,
266 kExponentsOffSelector = 9
274 kNoOrnamentsSelector = 0,
275 kDingbatsSelector = 1,
276 kPiCharactersSelector = 2,
277 kFleuronsSelector = 3,
278 kDecorativeBordersSelector = 4,
279 kInternationalSymbolsSelector = 5,
280 kMathSymbolsSelector = 6
287 enum { kNoAlternatesSelector = 0 };
294 kDesignLevel1Selector = 0,
295 kDesignLevel2Selector = 1,
296 kDesignLevel3Selector = 2,
297 kDesignLevel4Selector = 3,
298 kDesignLevel5Selector = 4
306 kNoStyleOptionsSelector = 0,
307 kDisplayTextSelector = 1,
308 kEngravedTextSelector = 2,
309 kIlluminatedCapsSelector = 3,
310 kTitlingCapsSelector = 4,
311 kTallCapsSelector = 5
319 kTraditionalCharactersSelector = 0,
320 kSimplifiedCharactersSelector = 1,
321 kJIS1978CharactersSelector = 2,
322 kJIS1983CharactersSelector = 3,
323 kJIS1990CharactersSelector = 4,
324 kTraditionalAltOneSelector = 5,
325 kTraditionalAltTwoSelector = 6,
326 kTraditionalAltThreeSelector = 7,
327 kTraditionalAltFourSelector = 8,
328 kTraditionalAltFiveSelector = 9,
329 kExpertCharactersSelector = 10
336 enum { kLowerCaseNumbersSelector = 0, kUpperCaseNumbersSelector = 1 };
343 kProportionalTextSelector = 0,
344 kMonospacedTextSelector = 1,
345 kHalfWidthTextSelector = 2,
346 kNormallySpacedTextSelector = 3
354 kNoTransliterationSelector = 0,
355 kHanjaToHangulSelector = 1,
356 kHiraganaToKatakanaSelector = 2,
357 kKatakanaToHiraganaSelector = 3,
358 kKanaToRomanizationSelector = 4,
359 kRomanizationToHiraganaSelector = 5,
360 kRomanizationToKatakanaSelector = 6,
361 kHanjaToHangulAltOneSelector = 7,
362 kHanjaToHangulAltTwoSelector = 8,
363 kHanjaToHangulAltThreeSelector = 9
371 kNoAnnotationSelector = 0,
372 kBoxAnnotationSelector = 1,
373 kRoundedBoxAnnotationSelector = 2,
374 kCircleAnnotationSelector = 3,
375 kInvertedCircleAnnotationSelector = 4,
376 kParenthesisAnnotationSelector = 5,
377 kPeriodAnnotationSelector = 6,
378 kRomanNumeralAnnotationSelector = 7,
379 kDiamondAnnotationSelector = 8,
380 kInvertedBoxAnnotationSelector = 9,
381 kInvertedRoundedBoxAnnotationSelector = 10
388 enum { kFullWidthKanaSelector = 0, kProportionalKanaSelector = 1 };
395 kFullWidthIdeographsSelector = 0,
396 kProportionalIdeographsSelector = 1,
397 kHalfWidthIdeographsSelector = 2
405 kCanonicalCompositionOnSelector = 0,
406 kCanonicalCompositionOffSelector = 1,
407 kCompatibilityCompositionOnSelector = 2,
408 kCompatibilityCompositionOffSelector = 3,
409 kTranscodingCompositionOnSelector = 4,
410 kTranscodingCompositionOffSelector = 5
417 enum { kNoRubyKanaSelector = 0, kRubyKanaSelector = 1 };
424 kNoCJKSymbolAlternativesSelector = 0,
425 kCJKSymbolAltOneSelector = 1,
426 kCJKSymbolAltTwoSelector = 2,
427 kCJKSymbolAltThreeSelector = 3,
428 kCJKSymbolAltFourSelector = 4,
429 kCJKSymbolAltFiveSelector = 5
437 kNoIdeographicAlternativesSelector = 0,
438 kIdeographicAltOneSelector = 1,
439 kIdeographicAltTwoSelector = 2,
440 kIdeographicAltThreeSelector = 3,
441 kIdeographicAltFourSelector = 4,
442 kIdeographicAltFiveSelector = 5
450 kCJKVerticalRomanCenteredSelector = 0,
451 kCJKVerticalRomanHBaselineSelector = 1
458 enum { kNoCJKItalicRomanSelector = 0, kCJKItalicRomanSelector = 1 };
465 kHalfWidthCJKRomanSelector = 0,
466 kProportionalCJKRomanSelector = 1,
467 kDefaultCJKRomanSelector = 2,
468 kFullWidthCJKRomanSelector = 3
479 kSFNTLookupSimpleArray = 0,
480 kSFNTLookupSegmentSingle = 2,
481 kSFNTLookupSegmentArray = 4,
482 kSFNTLookupSingleTable = 6,
483 kSFNTLookupTrimmedArray = 8
486 typedef UInt16 SFNTLookupTableFormat;
487 typedef UInt16 SFNTLookupValue;
488 typedef UInt16 SFNTLookupOffset;
489 typedef UInt32 SFNTLookupKind;
500 UInt16 entrySelector;
506 SFNTLookupValue lookupValues[1];
514 SFNTLookupValue valueArray[1];
555 SFNTLookupTableFormat format;
565 kSTClassEndOfText = 0,
566 kSTClassOutOfBounds = 1,
567 kSTClassDeletedGlyph = 2,
568 kSTClassEndOfLine = 3,
570 kSTNoAdvance = 0x4000,
572 kSTLigActionMask = 0x3FFF,
573 kSTRearrVerbMask = 0x000F
576 typedef UInt8 STClass;
577 typedef UInt8 STEntryIndex;
581 UInt16 classTableOffset;
582 UInt16 stateArrayOffset;
583 UInt16 entryTableOffset;
614 enum { kSTXHasLigAction = 0x2000 };
616 typedef UInt16 STXClass;
617 typedef UInt16 STXStateIndex;
618 typedef UInt16 STXEntryIndex;
621 UInt32 classTableOffset;
622 UInt32 stateArrayOffset;
623 UInt32 entryTableOffset;
629 STXStateIndex newState;
634 STXStateIndex newState;
640 STXStateIndex newState;
651 kLCARTag = 0x6C636172,
652 kLCARCurrentVersion =
654 kLCARLinearFormat = 0,
655 kLCARCtlPointFormat = 1
676 kJUSTTag = 0x6A757374,
677 kJUSTCurrentVersion = 0x00010000,
678 kJUSTStandardFormat = 0,
679 kJUSTnoGlyphcode = 0xFFFF,
680 kJUSTpcDecompositionAction = 0,
681 kJUSTpcUnconditionalAddAction = 1,
682 kJUSTpcConditionalAddAction = 2,
683 kJUSTpcGlyphStretchAction = 3,
684 kJUSTpcDuctilityAction = 4,
685 kJUSTpcGlyphRepeatAddAction = 5
690 kJUSTKashidaPriority = 0,
691 kJUSTSpacePriority = 1,
692 kJUSTLetterPriority = 2,
693 kJUSTNullPriority = 3,
694 kJUSTPriorityCount = 4
699 kJUSTOverridePriority = 0x8000,
700 kJUSTOverrideLimits = 0x4000,
701 kJUSTOverrideUnlimited = 0x2000,
702 kJUSTUnlimited = 0x1000,
703 kJUSTPriorityMask = 0x0003
707 typedef UInt16 JustPCActionType;
708 typedef UInt16 JustificationFlags;
720 typedef UInt16 JustPCUnconditionalAddAction;
727 Fixed substThreshhold;
735 UInt32 ductilityAxis;
737 Fixed noStretchValue;
754 JustPCActionType theType;
772 Fixed beforeGrowLimit;
773 Fixed beforeShrinkLimit;
774 Fixed afterGrowLimit;
775 Fixed afterShrinkLimit;
776 JustificationFlags growFlags;
777 JustificationFlags shrinkFlags;
793 UInt16 widthDeltaClusters;
801 UInt16 horizHeaderOffset;
802 UInt16 vertHeaderOffset;
810 kOPBDTag = 0x6F706264,
811 kOPBDCurrentVersion = 0x00010000,
812 kOPBDDistanceFormat = 0,
813 kOPBDControlPointFormat = 1
818 typedef UInt16 OpbdTableFormat;
825 SInt16 leftSideShift;
827 SInt16 rightSideShift;
828 SInt16 bottomSideShift;
833 OpbdTableFormat format;
842 kMORTTag = 0x6D6F7274,
843 kMORTCurrentVersion =
846 kMORTCoverVertical = 0x8000,
847 kMORTCoverDescending = 0x4000,
848 kMORTCoverIgnoreVertical = 0x2000,
849 kMORTCoverTypeMask = 0x000F,
850 kMORTRearrangementType = 0,
851 kMORTContextualType = 1,
852 kMORTLigatureType = 2,
854 kMORTInsertionType = 5,
855 kMORTLigLastAction = (long)0x80000000,
856 kMORTLigStoreLigature = 0x40000000,
857 kMORTLigFormOffsetMask = 0x3FFFFFFF,
858 kMORTLigFormOffsetShift = 2,
876 kMORTDoInsertionsBefore = 0x80,
877 kMORTIsSplitVowelPiece = 0x40,
878 kMORTInsertionsCountMask = 0x3F,
879 kMORTCurrInsertKashidaLike = 0x2000,
880 kMORTMarkInsertKashidaLike = 0x1000,
881 kMORTCurrInsertBefore = 0x0800,
882 kMORTMarkInsertBefore = 0x0400,
883 kMORTMarkJustTableCountMask = 0x3F80,
884 kMORTMarkJustTableCountShift = 7,
885 kMORTCurrJustTableCountMask = 0x007F,
886 kMORTCurrJustTableCountShift = 0,
887 kMORTCurrInsertCountMask = 0x03E0,
888 kMORTCurrInsertCountShift = 5,
889 kMORTMarkInsertCountMask = 0x001F,
890 kMORTMarkInsertCountShift = 0
895 typedef UInt32 MortSubtableMaskFlags;
896 typedef UInt32 MortLigatureActionEntry;
903 UInt16 substitutionTableOffset;
908 UInt16 ligatureActionTableOffset;
909 UInt16 componentTableOffset;
910 UInt16 ligatureTableOffset;
932 MortSubtableMaskFlags flags;
938 UInt16 featureSelector;
939 MortSubtableMaskFlags enableFlags;
940 MortSubtableMaskFlags disableFlags;
944 MortSubtableMaskFlags defaultFlags;
963 kMORXTag = 0x6D6F7278,
964 kMORXCurrentVersion =
967 kMORXCoverVertical = (long)0x80000000,
968 kMORXCoverDescending = 0x40000000,
969 kMORXCoverIgnoreVertical = 0x20000000,
970 kMORXCoverTypeMask = 0x000000FF
980 UInt32 substitutionTableOffset;
985 UInt32 ligatureActionTableOffset;
986 UInt32 componentTableOffset;
987 UInt32 ligatureTableOffset;
992 UInt32 insertionGlyphTableOffset;
1006 MortSubtableMaskFlags flags;
1011 MortSubtableMaskFlags defaultFlags;
1030 kPROPTag = 0x70726F70,
1031 kPROPCurrentVersion =
1033 kPROPPairOffsetShift = 8,
1034 kPROPPairOffsetSign = 7,
1035 kPROPIsFloaterMask = 0x8000,
1036 kPROPCanHangLTMask = 0x4000,
1037 kPROPCanHangRBMask = 0x2000,
1038 kPROPUseRLPairMask =
1040 kPROPPairOffsetMask = 0x0F00,
1041 kPROPRightConnectMask = 0x0080,
1042 kPROPZeroReserved = 0x0060,
1043 kPROPDirectionMask = 0x001F
1049 kPROPLDirectionClass = 0,
1050 kPROPRDirectionClass = 1,
1051 kPROPALDirectionClass = 2,
1052 kPROPENDirectionClass = 3,
1053 kPROPESDirectionClass = 4,
1054 kPROPETDirectionClass = 5,
1055 kPROPANDirectionClass = 6,
1056 kPROPCSDirectionClass = 7,
1057 kPROPPSDirectionClass =
1059 kPROPSDirectionClass = 9,
1060 kPROPWSDirectionClass = 10,
1061 kPROPONDirectionClass = 11,
1062 kPROPSENDirectionClass =
1064 kPROPLREDirectionClass = 13,
1065 kPROPLRODirectionClass = 14,
1066 kPROPRLEDirectionClass = 15,
1067 kPROPRLODirectionClass = 16,
1068 kPROPPDFDirectionClass = 17,
1069 kPROPNSMDirectionClass = 18,
1070 kPROPBNDirectionClass = 19,
1071 kPROPNumDirectionClasses =
1077 typedef UInt16 PropCharProperties;
1081 PropCharProperties defaultProps;
1093 PropCharProperties props;
1101 kTRAKTag = 0x7472616B,
1102 kTRAKCurrentVersion =
1104 kTRAKUniformFormat = 0
1109 typedef SInt16 TrakValue;
1112 UInt16 nameTableIndex;
1119 UInt32 sizeTableOffset;
1135 kKERNTag = 0x6B65726E,
1136 kKERNCurrentVersion = 0x00010000,
1139 kKERNResetCrossStream =
1145 kKERNUnusedBits = 0x1F00,
1146 kKERNFormatMask = 0x00FF
1150 kKERNOrderedList = 0,
1151 kKERNStateTable = 1,
1152 kKERNSimpleArray = 2,
1158 kKERNLineStart = 0x00000001,
1159 kKERNLineEndKerning = 0x00000002,
1160 kKERNNoCrossKerning = 0x00000004,
1161 kKERNNotesRequested = 0x00000008,
1164 kKERNCrossStreamResetNote =
1172 typedef UInt8 KernTableFormat;
1173 typedef UInt16 KernSubtableInfo;
1174 typedef SInt16 KernKerningValue;
1175 typedef UInt16 KernArrayOffset;
1180 UInt16 firstSubtable[1];
1187 UInt16 firstSubtable[1];
1210 KernKerningValue value;
1218 UInt16 entrySelector;
1228 UInt8 firstTable[1];
1245 KernArrayOffset offsetTable[1];
1270 UInt16 leftOffsetTable;
1271 UInt16 rightOffsetTable;
1272 KernArrayOffset theArray;
1273 UInt16 firstTable[1];
1279 UInt8 kernValueCount;
1280 UInt8 leftClassCount;
1281 UInt8 rightClassCount;
1286 UInt8 rightClass[1];
1302 KernSubtableInfo stInfo;
1309 KernSubtableInfo stInfo;
1320 kBSLNTag = 0x62736C6E,
1321 kBSLNCurrentVersion =
1323 kBSLNDistanceFormatNoMap = 0,
1324 kBSLNDistanceFormatWithMap = 1,
1325 kBSLNControlPointFormatNoMap = 2,
1326 kBSLNControlPointFormatWithMap = 3
1331 kBSLNRomanBaseline = 0,
1332 kBSLNIdeographicCenterBaseline = 1,
1333 kBSLNIdeographicLowBaseline = 2,
1334 kBSLNHangingBaseline = 3,
1335 kBSLNMathBaseline = 4,
1336 kBSLNLastBaseline = 31,
1337 kBSLNNumBaselineClasses = kBSLNLastBaseline + 1,
1338 kBSLNNoBaselineOverride = 255
1342 typedef UInt32 BslnBaselineClass;
1344 typedef Fixed BslnBaselineRecord[32];
1368 SInt16 ctlPoints[32];
1378 SInt16 ctlPoints[32];
1393 typedef UInt16 BslnTableFormat;
1398 BslnTableFormat format;
1399 UInt16 defaultBaseline;
1407 #if PRAGMA_STRUCT_ALIGN
1408 #pragma options align = reset
1409 #elif PRAGMA_STRUCT_PACKPUSH
1411 #elif PRAGMA_STRUCT_PACK
1415 #ifdef PRAGMA_IMPORT_OFF
1418 #pragma import reset
Basic Macintosh data types.
long Fixed
Definition: MacTypes.h:153
Definition: SFNTLayoutTypes.h:1396
Definition: SFNTLayoutTypes.h:791
Definition: SFNTLayoutTypes.h:752
Definition: SFNTLayoutTypes.h:760
Definition: SFNTLayoutTypes.h:726
Definition: SFNTLayoutTypes.h:710
Definition: SFNTLayoutTypes.h:734
Definition: SFNTLayoutTypes.h:746
Definition: SFNTLayoutTypes.h:786
Definition: SFNTLayoutTypes.h:798
Definition: SFNTLayoutTypes.h:770
Definition: SFNTLayoutTypes.h:780
Definition: SFNTLayoutTypes.h:1202
Definition: SFNTLayoutTypes.h:1242
Definition: SFNTLayoutTypes.h:1208
Definition: SFNTLayoutTypes.h:1231
Definition: SFNTLayoutTypes.h:659
Definition: SFNTLayoutTypes.h:664
Definition: SFNTLayoutTypes.h:943
Definition: SFNTLayoutTypes.h:901
Definition: SFNTLayoutTypes.h:936
Definition: SFNTLayoutTypes.h:917
Definition: SFNTLayoutTypes.h:906
Definition: SFNTLayoutTypes.h:897
Definition: SFNTLayoutTypes.h:929
Definition: SFNTLayoutTypes.h:913
Definition: SFNTLayoutTypes.h:952
Definition: SFNTLayoutTypes.h:1010
Definition: SFNTLayoutTypes.h:978
Definition: SFNTLayoutTypes.h:990
Definition: SFNTLayoutTypes.h:983
Definition: SFNTLayoutTypes.h:974
Definition: SFNTLayoutTypes.h:1003
Definition: SFNTLayoutTypes.h:1019
Definition: SFNTLayoutTypes.h:824
Definition: SFNTLayoutTypes.h:831
Definition: SFNTLayoutTypes.h:1085
Definition: SFNTLayoutTypes.h:1091
Definition: SFNTLayoutTypes.h:1078
Definition: SFNTLayoutTypes.h:523
Definition: SFNTLayoutTypes.h:535
Definition: SFNTLayoutTypes.h:554
Definition: SFNTLayoutTypes.h:586
Definition: SFNTLayoutTypes.h:597
Definition: SFNTLayoutTypes.h:603
Definition: SFNTLayoutTypes.h:592
Definition: SFNTLayoutTypes.h:633
Definition: SFNTLayoutTypes.h:639
Definition: SFNTLayoutTypes.h:628
Definition: SFNTLayoutTypes.h:1116
Definition: SFNTLayoutTypes.h:1110
Definition: SFNTLayoutTypes.h:1123
Definition: SFNTLayoutTypes.h:921
Definition: SFNTLayoutTypes.h:995