Open CASCADE Technology 7.8.0
Data Structures | Public Member Functions | Static Public Member Functions
Font_FontMgr Class Reference

Collects and provides information about available fonts in system. More...

#include <Font_FontMgr.hxx>

Inheritance diagram for Font_FontMgr:
Inheritance graph
[legend]

Public Member Functions

void AvailableFonts (Font_NListOfSystemFont &theList) const
 Return the list of available fonts.
 
Font_NListOfSystemFont GetAvailableFonts () const
 Return the list of available fonts.
 
void GetAvailableFontsNames (TColStd_SequenceOfHAsciiString &theFontsNames) const
 Returns sequence of available fonts names.
 
Handle< Font_SystemFontGetFont (const Handle< TCollection_HAsciiString > &theFontName, const Font_FontAspect theFontAspect, const Standard_Integer theFontSize) const
 Returns font that match given parameters. If theFontName is empty string returned font can have any FontName. If theFontAspect is Font_FA_Undefined returned font can have any FontAspect. If theFontSize is "-1" returned font can have any FontSize.
 
Handle< Font_SystemFontGetFont (const TCollection_AsciiString &theFontName) const
 Returns font that match given name or NULL if such font family is NOT registered. Note that unlike FindFont(), this method ignores font aliases and does not look for fall-back.
 
Handle< Font_SystemFontFindFont (const TCollection_AsciiString &theFontName, Font_StrictLevel theStrictLevel, Font_FontAspect &theFontAspect, Standard_Boolean theDoFailMsg=Standard_True) const
 Tries to find font by given parameters. If the specified font is not found tries to use font names mapping. If the requested family name not found -> search for any font family with given aspect and height. If the font is still not found, returns any font available in the system. Returns NULL in case when the fonts are not found in the system.
 
Handle< Font_SystemFontFindFont (const TCollection_AsciiString &theFontName, Font_FontAspect &theFontAspect) const
 Tries to find font by given parameters.
 
Handle< Font_SystemFontFindFallbackFont (Font_UnicodeSubset theSubset, Font_FontAspect theFontAspect) const
 Tries to find fallback font for specified Unicode subset. Returns NULL in case when fallback font is not found in the system.
 
Standard_Boolean CheckFont (NCollection_Sequence< Handle< Font_SystemFont > > &theFonts, const TCollection_AsciiString &theFontPath) const
 Read font file and retrieve information from it (the list of font faces).
 
Handle< Font_SystemFontCheckFont (const Standard_CString theFontPath) const
 Read font file and retrieve information from it.
 
Standard_Boolean RegisterFont (const Handle< Font_SystemFont > &theFont, const Standard_Boolean theToOverride)
 Register new font. If there is existing entity with the same name and properties but different path then font will be overridden or ignored depending on theToOverride flag.
 
Standard_Boolean RegisterFonts (const NCollection_Sequence< Handle< Font_SystemFont > > &theFonts, const Standard_Boolean theToOverride)
 Register new fonts.
 
Standard_Boolean ToTraceAliases () const
 Return flag for tracing font aliases usage via Message_Trace messages; TRUE by default.
 
void SetTraceAliases (Standard_Boolean theToTrace)
 Set flag for tracing font alias usage; useful to trace which fonts are actually used. Can be disabled to avoid redundant messages with Message_Trace level.
 
void GetAllAliases (TColStd_SequenceOfHAsciiString &theAliases) const
 Return font names with defined aliases.
 
void GetFontAliases (TColStd_SequenceOfHAsciiString &theFontNames, const TCollection_AsciiString &theAliasName) const
 Return aliases to specified font name.
 
bool AddFontAlias (const TCollection_AsciiString &theAliasName, const TCollection_AsciiString &theFontName)
 Register font alias.
 
bool RemoveFontAlias (const TCollection_AsciiString &theAliasName, const TCollection_AsciiString &theFontName)
 Unregister font alias.
 
void InitFontDataBase ()
 Collects available fonts paths.
 
void ClearFontDataBase ()
 Clear registry. Can be used for testing purposes.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static Handle< Font_FontMgrGetInstance ()
 Return global instance of font manager.
 
static const charFontAspectToString (Font_FontAspect theAspect)
 Return font aspect as string.
 
static Standard_BooleanToUseUnicodeSubsetFallback ()
 Return flag to use fallback fonts in case if used font does not include symbols from specific Unicode subset; TRUE by default.
 
static Handle< NCollection_BufferEmbedFallbackFont ()
 Return DejaVu font as embed a single fallback font. It can be used in cases when there is no own font file. Note: result buffer is readonly and should not be changed, any data modification can lead to unpredictable consequences.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 

Detailed Description

Collects and provides information about available fonts in system.

Member Function Documentation

◆ AddFontAlias()

bool Font_FontMgr::AddFontAlias ( const TCollection_AsciiString theAliasName,
const TCollection_AsciiString theFontName 
)

Register font alias.

Font alias allows using predefined short-cuts like Font_NOF_MONOSPACE or Font_NOF_SANS_SERIF, and defining several fallback fonts like Font_NOF_CJK ("cjk") or "courier" for fonts, which availability depends on system.

By default, Font_FontMgr registers standard aliases, which could be extended or replaced by application basing on better knowledge of the system or basing on additional fonts packaged with application itself. Aliases are defined "in advance", so that they could point to non-existing fonts, and they are resolved dynamically on request - first existing font is returned in case of multiple aliases to the same name.

Parameters
theAliasName[in] alias name or name of another font to be used as alias
theFontName[in] font to be used as substitution for alias
Returns
FALSE if alias has been already registered

◆ AvailableFonts()

void Font_FontMgr::AvailableFonts ( Font_NListOfSystemFont theList) const
inline

Return the list of available fonts.

◆ CheckFont() [1/2]

Handle< Font_SystemFont > Font_FontMgr::CheckFont ( const Standard_CString  theFontPath) const

Read font file and retrieve information from it.

◆ CheckFont() [2/2]

Standard_Boolean Font_FontMgr::CheckFont ( NCollection_Sequence< Handle< Font_SystemFont > > &  theFonts,
const TCollection_AsciiString theFontPath 
) const

Read font file and retrieve information from it (the list of font faces).

◆ ClearFontDataBase()

void Font_FontMgr::ClearFontDataBase ( )

Clear registry. Can be used for testing purposes.

◆ EmbedFallbackFont()

static Handle< NCollection_Buffer > Font_FontMgr::EmbedFallbackFont ( )
static

Return DejaVu font as embed a single fallback font. It can be used in cases when there is no own font file. Note: result buffer is readonly and should not be changed, any data modification can lead to unpredictable consequences.

◆ FindFallbackFont()

Handle< Font_SystemFont > Font_FontMgr::FindFallbackFont ( Font_UnicodeSubset  theSubset,
Font_FontAspect  theFontAspect 
) const

Tries to find fallback font for specified Unicode subset. Returns NULL in case when fallback font is not found in the system.

Parameters
theSubset[in] Unicode subset
theFontAspect[in] font aspect to find

◆ FindFont() [1/2]

Handle< Font_SystemFont > Font_FontMgr::FindFont ( const TCollection_AsciiString theFontName,
Font_FontAspect theFontAspect 
) const
inline

Tries to find font by given parameters.

◆ FindFont() [2/2]

Handle< Font_SystemFont > Font_FontMgr::FindFont ( const TCollection_AsciiString theFontName,
Font_StrictLevel  theStrictLevel,
Font_FontAspect theFontAspect,
Standard_Boolean  theDoFailMsg = Standard_True 
) const

Tries to find font by given parameters. If the specified font is not found tries to use font names mapping. If the requested family name not found -> search for any font family with given aspect and height. If the font is still not found, returns any font available in the system. Returns NULL in case when the fonts are not found in the system.

Parameters
theFontName[in] font family to find or alias name
theStrictLevel[in] search strict level for using aliases and fallback
theFontAspect[in] [out] font aspect to find (considered only if family name is not found); can be modified if specified font alias refers to another style (compatibility with obsolete aliases)
theDoFailMsg[in] put error message on failure into default messenger

◆ FontAspectToString()

static const char * Font_FontMgr::FontAspectToString ( Font_FontAspect  theAspect)
inlinestatic

Return font aspect as string.

◆ GetAllAliases()

void Font_FontMgr::GetAllAliases ( TColStd_SequenceOfHAsciiString theAliases) const

Return font names with defined aliases.

Parameters
theAliases[out] alias names

◆ GetAvailableFonts()

Font_NListOfSystemFont Font_FontMgr::GetAvailableFonts ( ) const
inline

Return the list of available fonts.

◆ GetAvailableFontsNames()

void Font_FontMgr::GetAvailableFontsNames ( TColStd_SequenceOfHAsciiString theFontsNames) const

Returns sequence of available fonts names.

◆ GetFont() [1/2]

Handle< Font_SystemFont > Font_FontMgr::GetFont ( const Handle< TCollection_HAsciiString > &  theFontName,
const Font_FontAspect  theFontAspect,
const Standard_Integer  theFontSize 
) const

Returns font that match given parameters. If theFontName is empty string returned font can have any FontName. If theFontAspect is Font_FA_Undefined returned font can have any FontAspect. If theFontSize is "-1" returned font can have any FontSize.

◆ GetFont() [2/2]

Handle< Font_SystemFont > Font_FontMgr::GetFont ( const TCollection_AsciiString theFontName) const

Returns font that match given name or NULL if such font family is NOT registered. Note that unlike FindFont(), this method ignores font aliases and does not look for fall-back.

◆ GetFontAliases()

void Font_FontMgr::GetFontAliases ( TColStd_SequenceOfHAsciiString theFontNames,
const TCollection_AsciiString theAliasName 
) const

Return aliases to specified font name.

Parameters
theFontNames[out] font names associated with alias name
theAliasName[in] alias name

◆ GetInstance()

static Handle< Font_FontMgr > Font_FontMgr::GetInstance ( )
static

Return global instance of font manager.

◆ InitFontDataBase()

void Font_FontMgr::InitFontDataBase ( )

Collects available fonts paths.

◆ RegisterFont()

Standard_Boolean Font_FontMgr::RegisterFont ( const Handle< Font_SystemFont > &  theFont,
const Standard_Boolean  theToOverride 
)

Register new font. If there is existing entity with the same name and properties but different path then font will be overridden or ignored depending on theToOverride flag.

◆ RegisterFonts()

Standard_Boolean Font_FontMgr::RegisterFonts ( const NCollection_Sequence< Handle< Font_SystemFont > > &  theFonts,
const Standard_Boolean  theToOverride 
)
inline

Register new fonts.

◆ RemoveFontAlias()

bool Font_FontMgr::RemoveFontAlias ( const TCollection_AsciiString theAliasName,
const TCollection_AsciiString theFontName 
)

Unregister font alias.

Parameters
theAliasName[in] alias name or name of another font to be used as alias; all aliases will be removed in case of empty name
theFontName[in] font to be used as substitution for alias; all fonts will be removed in case of empty name
Returns
TRUE if alias has been removed

◆ SetTraceAliases()

void Font_FontMgr::SetTraceAliases ( Standard_Boolean  theToTrace)
inline

Set flag for tracing font alias usage; useful to trace which fonts are actually used. Can be disabled to avoid redundant messages with Message_Trace level.

◆ ToTraceAliases()

Standard_Boolean Font_FontMgr::ToTraceAliases ( ) const
inline

Return flag for tracing font aliases usage via Message_Trace messages; TRUE by default.

◆ ToUseUnicodeSubsetFallback()

static Standard_Boolean & Font_FontMgr::ToUseUnicodeSubsetFallback ( )
static

Return flag to use fallback fonts in case if used font does not include symbols from specific Unicode subset; TRUE by default.


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