JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::Font Class Referencefinal

Represents a particular font, including its size, style, etc. More...

#include <juce_Font.h>

Collaboration diagram for juce::Font:

Public Types

enum  FontStyleFlags {
  plain = 0 ,
  bold = 1 ,
  italic = 2 ,
  underlined = 4
}
 A combination of these values is used by the constructor to specify the style of font to use. More...
 

Public Member Functions

 Font ()
 Creates a basic sans-serif font at a default height.
 
 Font (const Font &other) noexcept
 Creates a copy of another Font object.
 
 Font (const String &typefaceName, const String &typefaceStyle, float fontHeight)
 Creates a font with a given typeface and parameters.
 
 Font (const String &typefaceName, float fontHeight, int styleFlags)
 Creates a font with a given typeface and parameters.
 
 Font (const Typeface::Ptr &typeface)
 Creates a font for a typeface.
 
 Font (float fontHeight, int styleFlags=plain)
 Creates a sans-serif font in a given size.
 
 Font (Font &&other) noexcept
 Move constructor.
 
 Font (FontOptions options)
 Constructs a Font from a set of options describing the font.
 
 ~Font () noexcept
 Destructor.
 
Font boldened () const
 Returns a copy of this font with the bold attribute set.
 
Font findSuitableFontForText (const String &text, const String &language={}) const
 Attempts to locate a visually similar font that is capable of rendering the provided string.
 
float getAscent () const
 Returns the height of the font above its baseline, in pixels.
 
float getAscentInPoints () const
 Returns the height of the font above its baseline, in points.
 
std::optional< floatgetAscentOverride () const noexcept
 
StringArray getAvailableStyles () const
 Returns a list of the styles that this font can use.
 
float getDescent () const
 Returns the amount that the font descends below its baseline, in pixels.
 
float getDescentInPoints () const
 Returns the amount that the font descends below its baseline, in points.
 
std::optional< floatgetDescentOverride () const noexcept
 
float getExtraKerningFactor () const noexcept
 Returns the font's tracking, i.e.
 
bool getFallbackEnabled () const
 Returns true if fallback is enabled, or false otherwise.
 
Span< const FontFeatureSettinggetFeatureSettings () const &
 Returns an Span view of the features configured for this font instance.
 
Span< const FontFeatureSettinggetFeatureSettings () const &&=delete
 
float getHeight () const noexcept
 Returns the total height of this font, in pixels.
 
float getHeightInPoints () const
 Returns the total height of this font, in points.
 
float getHorizontalScale () const noexcept
 Returns the font's horizontal scale.
 
TypefaceMetricsKind getMetricsKind () const noexcept
 Returns the kind of metrics used by this Font.
 
Native getNativeDetails () const
 
StringArray getPreferredFallbackFamilies () const
 Returns the names of the fallback font families.
 
int getStringWidth (const String &text) const
 Returns the total width of a string as it would be drawn using this font.
 
float getStringWidthFloat (const String &text) const
 Returns the total width of a string as it would be drawn using this font.
 
int getStyleFlags () const noexcept
 Returns the font's style flags.
 
String getTypefaceName () const noexcept
 Returns the font family of the typeface that this font uses.
 
Typeface::Ptr getTypefacePtr () const
 Returns the main typeface used by this font.
 
String getTypefaceStyle () const noexcept
 Returns the font style of the typeface that this font uses.
 
bool isBold () const noexcept
 Returns true if the font is bold.
 
bool isItalic () const noexcept
 Returns true if the font is italic.
 
bool isUnderlined () const noexcept
 Returns true if the font is underlined.
 
Font italicised () const
 Returns a copy of this font with the italic attribute set.
 
bool operator!= (const Font &other) const noexcept
 
Fontoperator= (const Font &other) noexcept
 Copies this font from another one.
 
Fontoperator= (Font &&other) noexcept
 Move assignment operator.
 
bool operator== (const Font &other) const noexcept
 
void removeFeatureSetting (FontFeatureTag featureToRemove)
 Removes a specific feature setting from this font.
 
void setAscentOverride (std::optional< float >)
 This is designed to mirror CSS's ascent-override property.
 
void setBold (bool shouldBeBold)
 Makes the font bold or non-bold.
 
void setDescentOverride (std::optional< float >)
 This is designed to mirror CSS's descent-override property.
 
void setExtraKerningFactor (float extraKerning)
 Changes the font's tracking.
 
void setFallbackEnabled (bool enabled)
 When drawing text using this Font, specifies whether glyphs that are missing in the main typeface should be replaced with glyphs from other fonts.
 
void setFeatureSetting (FontFeatureSetting featureSetting)
 Enables or disables a font feature.
 
void setHeight (float newHeight)
 Changes the font's height.
 
void setHeightWithoutChangingWidth (float newHeight)
 Changes the font's height without changing its width.
 
void setHorizontalScale (float scaleFactor)
 Changes the font's horizontal scale factor.
 
void setItalic (bool shouldBeItalic)
 Makes the font italic or non-italic.
 
void setPointHeight (float newHeight)
 Changes the font's height.
 
void setPreferredFallbackFamilies (const StringArray &fallbacks)
 Sets the names of the fallback font families that should be tried, in order, when searching for glyphs that are missing in the main typeface, specified via setTypefaceName() or Font(const Typeface::Ptr&).
 
void setSizeAndStyle (float newHeight, const String &newStyle, float newHorizontalScale, float newKerningAmount)
 Changes all the font's characteristics with one call.
 
void setSizeAndStyle (float newHeight, int newStyleFlags, float newHorizontalScale, float newKerningAmount)
 Changes all the font's characteristics with one call.
 
void setStyleFlags (int newFlags)
 Changes the font's style.
 
void setTypefaceName (const String &faceName)
 Changes the font family of the typeface.
 
void setTypefaceStyle (const String &newStyle)
 Changes the font style of the typeface.
 
void setUnderline (bool shouldBeUnderlined)
 Makes the font underlined or non-underlined.
 
String toString () const
 Creates a string to describe this font.
 
Font withExtraKerningFactor (float extraKerning) const
 Returns a copy of this font with a new tracking factor.
 
Font withHeight (float height) const
 Returns a copy of this font with a new height.
 
Font withHorizontalScale (float scaleFactor) const
 Returns a copy of this font with a new horizontal scale.
 
Font withPointHeight (float heightInPoints) const
 Returns a copy of this font with a new height, specified in points.
 
Font withStyle (int styleFlags) const
 Returns a copy of this font with the given set of style flags.
 
Font withTypefaceStyle (const String &newStyle) const
 Returns a copy of this font with a new typeface style.
 

Static Public Member Functions

static StringArray findAllTypefaceNames ()
 Returns a list of all the available typeface font families.
 
static StringArray findAllTypefaceStyles (const String &family)
 Returns a list of all the available typeface font styles.
 
static void findFonts (Array< Font > &results)
 Creates an array of Font objects to represent all the fonts on the system.
 
static Font fromString (const String &fontDescription)
 Recreates a font from its stringified encoding.
 
static float getDefaultMinimumHorizontalScaleFactor () noexcept
 Returns the minimum horizontal scale to which fonts may be squashed when trying to create a layout.
 
static const StringgetDefaultMonospacedFontName ()
 Returns a typeface font family that represents the default monospaced font.
 
static const StringgetDefaultSansSerifFontName ()
 Returns a typeface font family that represents the default sans-serif font.
 
static const StringgetDefaultSerifFontName ()
 Returns a typeface font family that represents the default serif font.
 
static const StringgetDefaultStyle ()
 Returns a font style name that represents the default style.
 
static Typeface::Ptr getDefaultTypefaceForFont (const Font &font)
 Returns the default system typeface for the given font.
 
static const StringgetSystemUIFontName ()
 Returns a typeface font family that represents the system UI font.
 
static void setDefaultMinimumHorizontalScaleFactor (float newMinimumScaleFactor) noexcept
 Sets the minimum horizontal scale to which fonts may be squashed when trying to create a text layout.
 

Private Member Functions

void dupeInternalIfShared ()
 
float getHeightToPointsFactor () const
 

Static Private Member Functions

static bool compare (const Font &, const Font &) noexcept
 

Private Attributes

ReferenceCountedObjectPtr< SharedFontInternal > font
 

Friends

struct GraphicsFontHelpers
 

Detailed Description

Represents a particular font, including its size, style, etc.

Apart from the typeface to be used, a Font object also dictates whether the font is bold, italic, underlined, how big it is, and its kerning and horizontal scale factor.

See also
Typeface

@tags{Graphics}

Member Enumeration Documentation

◆ FontStyleFlags

A combination of these values is used by the constructor to specify the style of font to use.

Enumerator
plain 

indicates a plain, non-bold, non-italic version of the font.

See also
setStyleFlags
bold 

boldens the font.

See also
setStyleFlags
italic 

finds an italic version of the font.

See also
setStyleFlags
underlined 

underlines the font.

See also
setStyleFlags

Constructor & Destructor Documentation

◆ Font() [1/8]

juce::Font::Font ( FontOptions  options)

Constructs a Font from a set of options describing the font.

◆ Font() [2/8]

juce::Font::Font ( float  fontHeight,
int  styleFlags = plain 
)

Creates a sans-serif font in a given size.

Parameters
fontHeightthe height in pixels (can be fractional)
styleFlagsthe style to use - this can be a combination of the Font::bold, Font::italic and Font::underlined, or just Font::plain for the normal style.
See also
FontStyleFlags, getDefaultSansSerifFontName

◆ Font() [3/8]

juce::Font::Font ( const String typefaceName,
float  fontHeight,
int  styleFlags 
)

Creates a font with a given typeface and parameters.

Parameters
typefaceNamethe font family of the typeface to use
fontHeightthe height in pixels (can be fractional)
styleFlagsthe style to use - this can be a combination of the Font::bold, Font::italic and Font::underlined, or just Font::plain for the normal style.
See also
FontStyleFlags, getDefaultSansSerifFontName

◆ Font() [4/8]

juce::Font::Font ( const String typefaceName,
const String typefaceStyle,
float  fontHeight 
)

Creates a font with a given typeface and parameters.

Parameters
typefaceNamethe font family of the typeface to use
typefaceStylethe font style of the typeface to use
fontHeightthe height in pixels (can be fractional)

◆ Font() [5/8]

juce::Font::Font ( const Typeface::Ptr typeface)

Creates a font for a typeface.

◆ Font() [6/8]

juce::Font::Font ( )

Creates a basic sans-serif font at a default height.

You should use one of the other constructors for creating a font that you're planning on drawing with - this constructor is here to help initialise objects before changing the font's settings later.

◆ Font() [7/8]

juce::Font::Font ( const Font other)
noexcept

Creates a copy of another Font object.

◆ Font() [8/8]

juce::Font::Font ( Font &&  other)
noexcept

Move constructor.

◆ ~Font()

juce::Font::~Font ( )
noexcept

Destructor.

Member Function Documentation

◆ boldened()

Font juce::Font::boldened ( ) const

Returns a copy of this font with the bold attribute set.

If the font does not have a bold version, this will return the default font.

◆ compare()

static bool juce::Font::compare ( const Font ,
const Font  
)
staticprivatenoexcept

◆ dupeInternalIfShared()

void juce::Font::dupeInternalIfShared ( )
private

◆ findAllTypefaceNames()

static StringArray juce::Font::findAllTypefaceNames ( )
static

Returns a list of all the available typeface font families.

The names returned can be passed into setTypefaceName().

You can use this instead of findFonts() if you only need their font family names, and not font objects.

◆ findAllTypefaceStyles()

static StringArray juce::Font::findAllTypefaceStyles ( const String family)
static

Returns a list of all the available typeface font styles.

The names returned can be passed into setTypefaceStyle().

You can use this instead of findFonts() if you only need their styles, and not font objects.

◆ findFonts()

static void juce::Font::findFonts ( Array< Font > &  results)
static

Creates an array of Font objects to represent all the fonts on the system.

If you just need the font family names of the typefaces, you can also use findAllTypefaceNames() instead.

Parameters
resultsthe array to which new Font objects will be added.

◆ findSuitableFontForText()

Font juce::Font::findSuitableFontForText ( const String text,
const String language = {} 
) const

Attempts to locate a visually similar font that is capable of rendering the provided string.

If fallback is disabled on this Font by setFallbackEnabled(), then this will always return a copy of the current Font.

Otherwise, the current font, then each of the fallback fonts specified by setPreferredFallbackFamilies() will be checked, and the first Font that is capable of rendering the string will be returned. If none of these fonts is suitable, then the system font fallback mechanism will be used to locate a font from the currently installed fonts. If the system also cannot find any suitable font, then a copy of the original Font will be returned.

Note that most fonts don't contain glyphs for all possible unicode codepoints, and instead may contain e.g. just the glyphs required for a specific script. So, if the provided text would be displayed using several scripts (multiple languages, emoji, etc.) then there's a good chance that no single font will be able to render the entire text. Shorter strings will generally produce better fallback results than longer strings, with the caveat that the system may take control characters such as combining marks and variation selectors into account when selecting suitable fonts, so querying fallbacks character-by-character is likely to produce poor results.

◆ fromString()

static Font juce::Font::fromString ( const String fontDescription)
static

Recreates a font from its stringified encoding.

This method takes a string that was created by toString(), and recreates the original font.

◆ getAscent()

float juce::Font::getAscent ( ) const

Returns the height of the font above its baseline, in pixels.

This is the maximum height from the baseline to the top.

See also
getHeight, getDescent

◆ getAscentInPoints()

float juce::Font::getAscentInPoints ( ) const

Returns the height of the font above its baseline, in points.

This is the maximum height from the baseline to the top.

This value is affected by the optional ascent override.

See also
getAscentOverride, getHeightInPoints, getDescentInPoints

◆ getAscentOverride()

std::optional< float > juce::Font::getAscentOverride ( ) const
noexcept

◆ getAvailableStyles()

StringArray juce::Font::getAvailableStyles ( ) const

Returns a list of the styles that this font can use.

◆ getDefaultMinimumHorizontalScaleFactor()

static float juce::Font::getDefaultMinimumHorizontalScaleFactor ( )
staticnoexcept

Returns the minimum horizontal scale to which fonts may be squashed when trying to create a layout.

See also
setDefaultMinimumHorizontalScaleFactor

◆ getDefaultMonospacedFontName()

static const String & juce::Font::getDefaultMonospacedFontName ( )
static

Returns a typeface font family that represents the default monospaced font.

Note that this method just returns a generic placeholder string that means "the default monospaced font" - it's not the actual font family of this font.

See also
setTypefaceName, getDefaultSansSerifFontName, getDefaultSerifFontName

◆ getDefaultSansSerifFontName()

static const String & juce::Font::getDefaultSansSerifFontName ( )
static

Returns a typeface font family that represents the default sans-serif font.

This is also the typeface that will be used when a font is created without specifying any typeface details.

Note that this method just returns a generic placeholder string that means "the default sans-serif font" - it's not the actual font family of this font.

See also
setTypefaceName, getDefaultSerifFontName, getDefaultMonospacedFontName

◆ getDefaultSerifFontName()

static const String & juce::Font::getDefaultSerifFontName ( )
static

Returns a typeface font family that represents the default serif font.

Note that this method just returns a generic placeholder string that means "the default serif font" - it's not the actual font family of this font.

See also
setTypefaceName, getDefaultSansSerifFontName, getDefaultMonospacedFontName

◆ getDefaultStyle()

static const String & juce::Font::getDefaultStyle ( )
static

Returns a font style name that represents the default style.

Note that this method just returns a generic placeholder string that means "the default font style" - it's not the actual name of the font style of any particular font.

See also
setTypefaceStyle

◆ getDefaultTypefaceForFont()

static Typeface::Ptr juce::Font::getDefaultTypefaceForFont ( const Font font)
static

Returns the default system typeface for the given font.

Note: This will only ever return the typeface for the font's "main" family. Before attempting to render glyphs from this typeface, it's a good idea to check that those glyphs are present in the typeface, and to select a different face if necessary.

◆ getDescent()

float juce::Font::getDescent ( ) const

Returns the amount that the font descends below its baseline, in pixels.

This is calculated as (getHeight() - getAscent()).

See also
getAscent, getHeight

◆ getDescentInPoints()

float juce::Font::getDescentInPoints ( ) const

Returns the amount that the font descends below its baseline, in points.

This is calculated as (getHeight() - getAscent()).

This value is affected by the optional descent override.

See also
getDescentOverride, getHeightInPoints, getAscentInPoints

◆ getDescentOverride()

std::optional< float > juce::Font::getDescentOverride ( ) const
noexcept

◆ getExtraKerningFactor()

float juce::Font::getExtraKerningFactor ( ) const
noexcept

Returns the font's tracking, i.e.

spacing applied between characters in addition to the kerning defined by the font.

This is the extra space added between adjacent characters, as a proportion of the font's height.

A value of zero is normal spacing, positive values will spread the letters out more, and negative values make them closer together.

◆ getFallbackEnabled()

bool juce::Font::getFallbackEnabled ( ) const

Returns true if fallback is enabled, or false otherwise.

◆ getFeatureSettings() [1/2]

Span< const FontFeatureSetting > juce::Font::getFeatureSettings ( ) const &

Returns an Span view of the features configured for this font instance.

Use Typeface::getSupportedFeatures() to determine what features this font supports.

See also
setFeatureEnabled, setFeatureDisabled, removeFeature, Typeface::getSupportedFeatures

◆ getFeatureSettings() [2/2]

Span< const FontFeatureSetting > juce::Font::getFeatureSettings ( ) const &&
delete

◆ getHeight()

float juce::Font::getHeight ( ) const
noexcept

Returns the total height of this font, in pixels.

This is the maximum height, from the top of the ascent to the bottom of the descenders.

See also
withHeight, setHeightWithoutChangingWidth, getAscent

◆ getHeightInPoints()

float juce::Font::getHeightInPoints ( ) const

Returns the total height of this font, in points.

This is the maximum height, from the top of the ascent to the bottom of the descenders.

This value is not affected by the optional ascent or descent override.

See also
withPointHeight, getHeight

◆ getHeightToPointsFactor()

float juce::Font::getHeightToPointsFactor ( ) const
private

◆ getHorizontalScale()

float juce::Font::getHorizontalScale ( ) const
noexcept

Returns the font's horizontal scale.

A value of 1.0 is the normal scale, less than this will be narrower, greater than 1.0 will be stretched out.

See also
withHorizontalScale

◆ getMetricsKind()

TypefaceMetricsKind juce::Font::getMetricsKind ( ) const
noexcept

Returns the kind of metrics used by this Font.

◆ getNativeDetails()

Native juce::Font::getNativeDetails ( ) const

At the moment, this is a way to get at the hb_font_t that backs this font. The typeface's hb_font_t is sized appropriately for this font instance. The font may also have synthetic slant and bold applied. This is only for internal use!

◆ getPreferredFallbackFamilies()

StringArray juce::Font::getPreferredFallbackFamilies ( ) const

Returns the names of the fallback font families.

◆ getStringWidth()

int juce::Font::getStringWidth ( const String text) const

Returns the total width of a string as it would be drawn using this font.

For a more accurate floating-point result, use getStringWidthFloat().

This function does not take font fallback into account. If this font doesn't include glyphs to represent all characters in the string, then the width will be computed as though those characters were replaced with the "glyph not found" character.

If you are trying to find the amount of space required to display a given string, you'll get more accurate results by actually measuring the results of whichever text layout engine (e.g. GlyphArrangement, TextLayout) you'll use when displaying the string.

See also
TextLayout::getStringWidth(), GlyphArrangement::getStringWidthInt()

◆ getStringWidthFloat()

float juce::Font::getStringWidthFloat ( const String text) const

Returns the total width of a string as it would be drawn using this font.

See also
getStringWidth

This function does not take font fallback into account. If this font doesn't include glyphs to represent all characters in the string, then the width will be computed as though those characters were replaced with the "glyph not found" character.

If you are trying to find the amount of space required to display a given string, you'll get more accurate results by actually measuring the results of whichever text layout engine (e.g. GlyphArrangement, TextLayout) you'll use when displaying the string.

See also
TextLayout::getStringWidth(), GlyphArrangement::getStringWidth()

◆ getStyleFlags()

int juce::Font::getStyleFlags ( ) const
noexcept

Returns the font's style flags.

This will return a bitwise-or'ed combination of values from the FontStyleFlags enum, to describe whether the font is bold, italic, etc.

See also
FontStyleFlags, withStyle

◆ getSystemUIFontName()

static const String & juce::Font::getSystemUIFontName ( )
static

Returns a typeface font family that represents the system UI font.

Note that this method just returns a generic placeholder string that means "the default UI font" - it's not the actual font family of this font.

See also
getDefaultSansSerifFontName, setTypefaceName

◆ getTypefaceName()

String juce::Font::getTypefaceName ( ) const
noexcept

Returns the font family of the typeface that this font uses.

e.g. "Arial", "Courier", etc.

This may also be set to Font::getDefaultSansSerifFontName(), Font::getDefaultSerifFontName(), or Font::getDefaultMonospacedFontName(), which are not actual platform-specific font family names, but are generic font family names that are used to represent the various default fonts.

If you need to know the exact typeface font family being used, you can call Font::getTypefacePtr()->getName(), which will give you the platform-specific font family.

◆ getTypefacePtr()

Typeface::Ptr juce::Font::getTypefacePtr ( ) const

Returns the main typeface used by this font.

Note: This will only ever return the typeface for the "main" family. Before attempting to render glyphs from this typeface, it's a good idea to check that those glyphs are present in the typeface, and to select a different face if necessary.

◆ getTypefaceStyle()

String juce::Font::getTypefaceStyle ( ) const
noexcept

Returns the font style of the typeface that this font uses.

See also
withTypefaceStyle, getAvailableStyles()

◆ isBold()

bool juce::Font::isBold ( ) const
noexcept

Returns true if the font is bold.

◆ isItalic()

bool juce::Font::isItalic ( ) const
noexcept

Returns true if the font is italic.

◆ isUnderlined()

bool juce::Font::isUnderlined ( ) const
noexcept

Returns true if the font is underlined.

◆ italicised()

Font juce::Font::italicised ( ) const

Returns a copy of this font with the italic attribute set.

◆ operator!=()

bool juce::Font::operator!= ( const Font other) const
noexcept

◆ operator=() [1/2]

Font & juce::Font::operator= ( const Font other)
noexcept

Copies this font from another one.

◆ operator=() [2/2]

Font & juce::Font::operator= ( Font &&  other)
noexcept

Move assignment operator.

◆ operator==()

bool juce::Font::operator== ( const Font other) const
noexcept

◆ removeFeatureSetting()

void juce::Font::removeFeatureSetting ( FontFeatureTag  featureToRemove)

Removes a specific feature setting from this font.

If featureToRemove corresponds to a feature that is typically enabled by default (e.g., "calt" for contextual alternates, "liga" for standard ligatures), calling this method will reset it to its default-enabled state.

See also
setFeatureEnabled, setFeatureDisabled, Typeface::getSupportedFeatures

◆ setAscentOverride()

void juce::Font::setAscentOverride ( std::optional< float )

This is designed to mirror CSS's ascent-override property.

When the font size is specified in points (using setPointHeight(), FontOptions::withPointHeight(), etc.), then the font's ascent value in points will be equal to the font's size in points multiplied by the override value. That is, if the font size is 14pt and the ascent override is 0.5f, then the ascent will be 7pt.

When the font size is not specified in points (using setHeight(), FontOptions::withHeight(), etc.), then the behaviour is more subtle. The ascent override still specifies the size of the font's ascender as a proportion of the font's em size. However, the point size of the font is now found by multiplying the JUCE height by the height-to-point factor, where this factor is equal to (1.0f / (ascent-in-em-units + descent-in-em-units)). As an example, if the JUCE font height is 14, the ascent override is 0.5f, and the descent override is 0.5f, then the font size will be 14pt and the ascent will be 7pt. Changing the ascent override to 1.0f and the descent override to 0.0f will preserve the font size of 14pt but give an ascender of 14pt and a descender of 0pt. Changing the ascent and descent overrides both to 1.0f will result in the font's size changing to 7pt with an ascent of 3.5pt.

See also
setDescentOverride()

◆ setBold()

void juce::Font::setBold ( bool  shouldBeBold)

Makes the font bold or non-bold.

◆ setDefaultMinimumHorizontalScaleFactor()

static void juce::Font::setDefaultMinimumHorizontalScaleFactor ( float  newMinimumScaleFactor)
staticnoexcept

Sets the minimum horizontal scale to which fonts may be squashed when trying to create a text layout.

See also
getDefaultMinimumHorizontalScaleFactor

◆ setDescentOverride()

void juce::Font::setDescentOverride ( std::optional< float )

This is designed to mirror CSS's descent-override property.

Specifies a value to replace the built-in typeface descent metric. The final descent value will be found by multiplying the provided value by the font size. You may also pass std::nullopt to use the descent value specified in the typeface.

The documentation for setAscentOverride() includes a more thorough discussion of the mechanism used for overriding.

See also
setAscentOverride()

◆ setExtraKerningFactor()

void juce::Font::setExtraKerningFactor ( float  extraKerning)

Changes the font's tracking.

Parameters
extraKerninga multiple of the font's height that will be added to space between the characters. So a value of zero is normal spacing, positive values spread the letters out, negative values make them closer together.

◆ setFallbackEnabled()

void juce::Font::setFallbackEnabled ( bool  enabled)

When drawing text using this Font, specifies whether glyphs that are missing in the main typeface should be replaced with glyphs from other fonts.

To find missing glyphs, the typefaces for the preferred fallback families will be checked in order, followed by the system fallback fonts. The system fallback font is likely to be different on each platform.

Fallback is enabled by default.

◆ setFeatureSetting()

void juce::Font::setFeatureSetting ( FontFeatureSetting  featureSetting)

Enables or disables a font feature.

Use Typeface::getSupportedFeatures() to determine what features this font supports.

See also
setFeatureEnabled, setFeatureDisabled, removeFeature, Typeface::getSupportedFeatures

◆ setHeight()

void juce::Font::setHeight ( float  newHeight)

Changes the font's height.

The font will be scaled so that the sum of the ascender and descender is equal to the provided height in logical pixels.

See also
setPointHeight, getHeight, withHeight, setHeightWithoutChangingWidth

◆ setHeightWithoutChangingWidth()

void juce::Font::setHeightWithoutChangingWidth ( float  newHeight)

Changes the font's height without changing its width.

This alters the horizontal scale to compensate for the change in height.

◆ setHorizontalScale()

void juce::Font::setHorizontalScale ( float  scaleFactor)

Changes the font's horizontal scale factor.

Parameters
scaleFactora value of 1.0 is the normal scale, less than this will be narrower, greater than 1.0 will be stretched out.

◆ setItalic()

void juce::Font::setItalic ( bool  shouldBeItalic)

Makes the font italic or non-italic.

◆ setPointHeight()

void juce::Font::setPointHeight ( float  newHeight)

Changes the font's height.

The argument specifies the size of the font's em-square in logical pixels.

See also
setHeight, getHeight, withHeight, setHeightWithoutChangingWidth

◆ setPreferredFallbackFamilies()

void juce::Font::setPreferredFallbackFamilies ( const StringArray fallbacks)

Sets the names of the fallback font families that should be tried, in order, when searching for glyphs that are missing in the main typeface, specified via setTypefaceName() or Font(const Typeface::Ptr&).

◆ setSizeAndStyle() [1/2]

void juce::Font::setSizeAndStyle ( float  newHeight,
const String newStyle,
float  newHorizontalScale,
float  newKerningAmount 
)

Changes all the font's characteristics with one call.

◆ setSizeAndStyle() [2/2]

void juce::Font::setSizeAndStyle ( float  newHeight,
int  newStyleFlags,
float  newHorizontalScale,
float  newKerningAmount 
)

Changes all the font's characteristics with one call.

◆ setStyleFlags()

void juce::Font::setStyleFlags ( int  newFlags)

Changes the font's style.

Parameters
newFlagsa bitwise-or'ed combination of values from the FontStyleFlags enum.
See also
FontStyleFlags, withStyle

◆ setTypefaceName()

void juce::Font::setTypefaceName ( const String faceName)

Changes the font family of the typeface.

e.g. "Arial", "Courier", etc.

This may also be set to Font::getDefaultSansSerifFontName(), Font::getDefaultSerifFontName(), or Font::getDefaultMonospacedFontName(), which are not actual platform-specific font family names, but are generic font family names that are used to represent the various default fonts. If you need to know the exact typeface font family being used, you can call Font::getTypefacePtr()->getName(), which will give you the platform-specific font family.

If a suitable font isn't found on the machine, it'll just use a default instead.

◆ setTypefaceStyle()

void juce::Font::setTypefaceStyle ( const String newStyle)

Changes the font style of the typeface.

See also
getAvailableStyles()

◆ setUnderline()

void juce::Font::setUnderline ( bool  shouldBeUnderlined)

Makes the font underlined or non-underlined.

◆ toString()

String juce::Font::toString ( ) const

Creates a string to describe this font.

The string will contain information to describe the font's typeface, size, and style. To recreate the font from this string, use fromString().

◆ withExtraKerningFactor()

Font juce::Font::withExtraKerningFactor ( float  extraKerning) const

Returns a copy of this font with a new tracking factor.

Parameters
extraKerninga multiple of the font's height that will be added to space between the characters. So a value of zero is normal spacing, positive values spread the letters out, negative values make them closer together.

◆ withHeight()

Font juce::Font::withHeight ( float  height) const

Returns a copy of this font with a new height.

◆ withHorizontalScale()

Font juce::Font::withHorizontalScale ( float  scaleFactor) const

Returns a copy of this font with a new horizontal scale.

Parameters
scaleFactora value of 1.0 is the normal scale, less than this will be narrower, greater than 1.0 will be stretched out.
See also
getHorizontalScale

◆ withPointHeight()

Font juce::Font::withPointHeight ( float  heightInPoints) const

Returns a copy of this font with a new height, specified in points.

◆ withStyle()

Font juce::Font::withStyle ( int  styleFlags) const

Returns a copy of this font with the given set of style flags.

Parameters
styleFlagsa bitwise-or'ed combination of values from the FontStyleFlags enum.
See also
FontStyleFlags, getStyleFlags

◆ withTypefaceStyle()

Font juce::Font::withTypefaceStyle ( const String newStyle) const

Returns a copy of this font with a new typeface style.

See also
getAvailableStyles()

Friends And Related Symbol Documentation

◆ GraphicsFontHelpers

friend struct GraphicsFontHelpers
friend

Member Data Documentation

◆ font

ReferenceCountedObjectPtr<SharedFontInternal> juce::Font::font
private

The documentation for this class was generated from the following file: