SetFScaleDisable
SetFScaleDisable Enable/disable scaling of displayed characters
#include <Fonts.h> Font Manager
void SetFScaleDisable(dontScale );
Boolean dontScale ; TRUE=disable scaling; FALSE= enable
SetFScaleDisable provides a way to draw characters at an unavailable size
without having them scaled.
dontScale is a Boolean flag specifying whether to enable or disable off-size
character scaling. It is one of:
FALSE Enables scaling (the normal status)
TRUE Disables scaling. When a font size does not exist, a larger
or smaller size font is drawn, but the space between
characters is expanded or condensed to simulate the
spacing of a scaled font.
Returns: none

Notes: When a nonexistent font size is used for drawing text, a
smaller or larger font is normally scaled to match the specified size. For
instance, the following shows two examples of 14-pt Chicago:
In the first example, the normal scaling is performed. Before the second
line was drawn, SetFScaleDisable(TRUE) was called to disable scaling.
Note that the width of the two examples is the same, but the characters of the
second are actually drawn in 12-pt, with additional spacing. Even so, the
widths are only the same because fractional widths were enabled, the font
doesn't have a font character-width table and is a member of a family
record with a family character-width table. Without all of that, there
would be no guarantee that the two examples would be equally wide.
When the nearest actual size happens to be larger rather than smaller (as
in the example above), then the characters are drawn compressed together,
even overlapping. Even so, it may be more pleasing to the eye:
SetFScaleDisable is not supported by the 64K ROM, but ASM and C
programmers have gotten the same affect by changing the byte-length global
variable FScaleDisable (at 0x0A63). We are now warned to NOT change
this variable, but to always use SetFScaleDisable. We can still examine
this address to read the current status (non-zero=scaling is disabled,
0= enabled).
There is no certainty that requesting a doubled point size or a scale factor
of 2 will get you characters with doubled widths. What you get will depend
on how QuickDraw measures and spaces the characters--especially
algorithmically-derived characters like boldface where the character
strike is one pixel wider regardless of point size. For fonts with a family
character-width table, there is no problem since character spacing is
accurately described from the table.
Condensing and expanding are more commonly performed by calling the
TextFace function with the condense or extend bit set. A technique used in
justifying lines of text is to use SpaceExtra to widen the spaces between
words.
SpaceExtra or CharExtra can also be called to make two different font
requests measure the same, or proportionaly. Normally, SpaceExtra is
adequate if you pass it the difference of the two measures (divided by the
number of spaces on the line). Use CharExtra if there aren't enough
spaces on the line or if the difference between the two measures is either
too great or too little.