Clean up some code in core-text, and core-text.fonts

db4
Slava Pestov 2009-02-21 01:26:50 -06:00
parent 221222cb8f
commit 11f509b0c7
3 changed files with 22 additions and 16 deletions

View File

@ -48,22 +48,28 @@ ERROR: not-a-string object ;
TUPLE: line font line metrics image loc dim disposed ;
: compute-line-metrics ( open-font line -- line-metrics )
[
[ metrics new ] dip
[ CTFontGetCapHeight >>cap-height ]
[ CTFontGetXHeight >>x-height ]
bi
] dip
: typographic-bounds ( line -- width ascent descent leading )
0 <CGFloat> 0 <CGFloat> 0 <CGFloat>
[ CTLineGetTypographicBounds ] 3keep
[ CTLineGetTypographicBounds ] 3keep [ *CGFloat ] tri@ ; inline
: store-typographic-bounds ( metrics width ascent descent leading -- metrics )
{
[ >>width ]
[ *CGFloat >>ascent ]
[ *CGFloat >>descent ]
[ *CGFloat >>leading ]
} spread
dup compute-height ;
[ >>ascent ]
[ >>descent ]
[ >>leading ]
} spread ; inline
: compute-font-metrics ( metrics font -- metrics )
[ CTFontGetCapHeight >>cap-height ]
[ CTFontGetXHeight >>x-height ]
bi ; inline
: compute-line-metrics ( open-font line -- line-metrics )
[ metrics new ] 2dip
[ compute-font-metrics ]
[ typographic-bounds store-typographic-bounds ] bi*
compute-height ;
: metrics>dim ( bounds -- dim )
[ width>> ] [ [ ascent>> ] [ descent>> ] bi + ] bi

View File

@ -118,7 +118,7 @@ MEMO: (cache-font-metrics) ( font -- metrics )
[ CTFontGetCapHeight >>cap-height ]
[ CTFontGetXHeight >>x-height ]
} cleave
dup compute-height ;
compute-height ;
: cache-font-metrics ( font -- metrics )
strip-font-colors (cache-font-metrics) ;

View File

@ -60,8 +60,8 @@ italic?
TUPLE: metrics width ascent descent height leading cap-height x-height ;
: compute-height ( metrics -- )
dup [ ascent>> ] [ descent>> ] bi + >>height drop ;
: compute-height ( metrics -- metrics )
dup [ ascent>> ] [ descent>> ] bi + >>height ; inline
TUPLE: selection string start end color ;