+#else
+ ATSLayoutRecord *layoutRecords = NULL;
+ ItemCount glyphCount = 0;
+
+ // Get the glyph extents
+ OSStatus err = ::ATSUDirectGetLayoutDataArrayPtrFromTextLayout(atsuLayout,
+ 0,
+ kATSUDirectDataLayoutRecordATSLayoutRecordCurrent,
+ (void **)
+ &layoutRecords,
+ &glyphCount);
+ wxASSERT(glyphCount == (text.length()+1));
+
+ if ( err == noErr && glyphCount == (text.length()+1))
+ {
+ for ( int pos = 1; pos < (int)glyphCount ; pos ++ )
+ {
+ widths[pos-1] = FixedToInt( layoutRecords[pos].realPos );
+ }
+ }
+
+ ::ATSUDirectReleaseLayoutDataArrayPtr(NULL,
+ kATSUDirectDataLayoutRecordATSLayoutRecordCurrent,
+ (void **) &layoutRecords);
+#endif