Rhino C++ API
8.14
|
An ON_Font is a face in a font family. It corresponds to a Windows LOGFONT, a .NET System.Drawing.Font or a FreeType FT_Face. More...
#include <opennurbs_font.h>
Public Types | |
enum | Constants : int { AnnotationFontCellHeight = 256, AnnotationFontApplePointSize = 256, MetricsGlyphCodePoint = 'I' } |
miscellaneous constants use to initialize Windows LOGFONT fields More... | |
enum | FontType : unsigned char { FontType::Unset = 0, FontType::ManagedFont = 1, FontType::InstalledFont = 2 } |
An enum that reports if the font face is available on the current device. More... | |
enum | NameLocale : ON__UINT8 { NameLocale::LocalizedFirst = 0, NameLocale::Localized = 1, NameLocale::English = 2 } |
ON_Font::NameLocale selects what locale is used for font name (PostScript, family, face, LOGFONT) queries. More... | |
typedef void(* | ON_GetFontMetricsFuncType) (const class ON_Font *font, class ON_FontMetrics &font_metrics_in_font_design_units) |
typedef unsigned int(* | ON_GetGlyphMetricsFuncType) (const class ON_FontGlyph *font_glyph, class ON_TextBox &glyph_metrics_in_font_design_units) |
typedef bool(* | ON_GetGlyphOutlineFuncType) (const class ON_FontGlyph *glyph, bool bSingleStrokeFont, class ON_Outline &outline) |
enum | Origin : unsigned char { Origin::Unset = 0, Origin::Unknown = 1, Origin::WindowsFont = 2, Origin::AppleFont = 3 } |
Platform where font originated. This information is useful when searching for appropriate substitutes. More... | |
enum | Stretch : unsigned char { Stretch::Unset = 0, Stretch::Ultracondensed = 1, Stretch::Extracondensed = 2, Stretch::Condensed = 3, Stretch::Semicondensed = 4, Stretch::Medium = 5, Stretch::Semiexpanded = 6, Stretch::Expanded = 7, Stretch::Extraexpanded = 8, Stretch::Ultraexpanded = 9 } |
Horizontal expansion or contraction of font More... | |
enum | Style : unsigned char { Style::Unset = 0, Style::Upright = 1, Style::Italic = 2, Style::Oblique = 3 } |
Vertical angle of font Upright, Italic, or Oblique More... | |
enum | Weight : unsigned char { Weight::Unset = 0, Weight::Thin = 1, Weight::Ultralight = 2, Weight::Light = 3, Weight::Normal = 4, Weight::Medium = 5, Weight::Semibold = 6, Weight::Bold = 7, Weight::Ultrabold = 8, Weight::Heavy = 9 } |
Weight enum values Avoid casting these values to int. Use ON_Font::WindowsLogfontWeightFromWeight() or ON_Font::AppleWeightOfFontFromWeight() or add another converter. More... | |
enum | WindowsConstants : unsigned char { logfont_ansi_charset = 0, logfont_default_charset = 1, logfont_symbol_charset = 2, logfont_out_precis = 7, logfont_quality = 4, logfont_pitch_and_family = 0 } |
Public Member Functions | |
ON_Font () | |
ON_Font (const ON_Font &src) | |
~ON_Font ()=default | |
const ON_wString & | AppleFontName () const |
const wchar_t * | AppleFontNameAsPointer () const |
double | AppleFontWeightTrait () const |
double | AppleFontWeightTraitEx () const |
double | AppleFontWidthTrait () const |
int | AppleWeightOfFont () const |
const ON_Font * | BestMatch (const ON_SimpleArray< const ON_Font * > &font_list) const |
const ON_Font * | BestMatch (ON_Font const *const *font_list, size_t font_count) const |
const class ON_FontGlyph * | CodePointGlyph (ON__UINT32 unicode_code_point) const |
ON__UINT32 | CRC32 (bool bIgnoreNameOrdinalCase) const |
const ON_wString | Description () const |
const ON_wString | Description (ON_Font::NameLocale name_local, wchar_t family_separator, wchar_t weight_width_slope_separator, bool bIncludeUndelinedAndStrikethrough) const |
const ON_wString | Description (ON_Font::NameLocale name_local, wchar_t family_separator, wchar_t weight_width_slope_separator, bool bIncludeUndelinedAndStrikethrough, bool bIncludeNotOnDevice) const |
void | Dump (ON_TextLog &) const |
for debugging More... | |
const ON_wString | FaceName () const |
const ON_wString | FaceName (ON_Font::NameLocale name_locale) const |
const ON_wString | FamilyName () const |
const ON_wString | FamilyName (ON_Font::NameLocale name_locale) const |
unsigned int | FontCharacteristicsAsUnsigned () const |
const class ON_SHA1_Hash & | FontCharacteristicsHash () const |
const ON_wString & | FontDescription () const |
const wchar_t * | FontDescriptionAsPointer () const |
const wchar_t * | FontFaceName () const |
const ON_FontMetrics & | FontMetrics () const |
ON_Font::Origin | FontOrigin () const |
const ON_FontFaceQuartet | FontQuartet () const |
ON_Font::Stretch | FontStretch () const |
ON_Font::Style | FontStyle () const |
const ON_FontMetrics & | FontUnitFontMetrics () const |
double | FontUnitToNormalizedScale () const |
ON_Font::Weight | FontWeight () const |
int | GetStrikeoutPosition () const |
int | GetStrikeoutSize () const |
int | GetUnderscorePosition () const |
int | GetUnderscoreSize () const |
bool | HasUnsetProperties (bool bCheckFamilyName, bool bCheckPostScriptName) const |
int | HeightOfI () const |
int | HeightOfLinefeed () const |
double | HeightScale (double text_height) const |
const ON_Font * | InstalledFamilyMemberWithWeightStretchStyle (ON_Font::Weight desired_weight, ON_Font::Stretch desired_stretch, ON_Font::Style desired_style) const |
const ON_Font * | InstalledFont (bool bAllowBestMatch) const |
const ON_FontFaceQuartet | InstalledFontQuartet () const |
bool | IsBold () const |
bool | IsBoldInQuartet () const |
bool | IsDoubleStrokeFont () const |
bool | IsEngravingFont () const |
bool | IsInstalledFont () const |
bool | IsItalic () const |
bool | IsItalicInQuartet () const |
bool | IsItalicOrOblique () const |
bool | IsLight () const |
bool | IsManagedFont () const |
bool | IsManagedInstalledFont () const |
bool | IsManagedSubstitutedFont () const |
bool | IsNormalWeight () const |
bool | IsOblique () |
ERROR - missing const. More... | |
bool | IsSimulated () const |
bool | IsSingleStrokeFont () const |
bool | IsSingleStrokeOrDoubleStrokeFont () const |
bool | IsStrikethrough () const |
bool | IsSymbolFont () const |
bool | IsUnderlined () const |
bool | IsUpright () const |
bool | IsValid (ON_TextLog *text_log=nullptr) const |
double | LinefeedRatio () const |
const ON_wString | Locale () const |
BUSTED #pragma endregion. More... | |
unsigned char | LogfontCharSet () const |
const ON_Font * | ManagedFamilyMemberWithRichTextProperties (bool bBold, bool bItalic, bool bUnderlined, bool bStrikethrough) const |
const ON_Font * | ManagedFamilyMemberWithWeightStretchStyle (ON_Font::Weight desired_weight, ON_Font::Stretch desired_stretch, ON_Font::Style desired_style, bool bUnderlined, bool bStrikethrough) const |
const ON_Font * | ManagedFont () const |
unsigned int | ManagedFontSerialNumber () const |
double | NormalizedToFontUnitScale () const |
ON_Font & | operator= (const ON_Font &src) |
ON_OutlineFigure::Type | OutlineFigureType () const |
const ON_PANOSE1 | PANOSE1 () const |
double | PointSize () const |
const ON_wString | PostScriptName () const |
const ON_wString | PostScriptName (ON_Font::NameLocale name_locale) const |
const wchar_t * | PostScriptNameAsPointer () const |
const ON_wString | QuartetDescription () const |
ON_FontFaceQuartet::Member | QuartetFaceMember () const |
const ON_wString | QuartetName () const |
const ON_wString | QuartetName (ON_Font::NameLocale name_locale) const |
bool | Read (ON_BinaryArchive &) |
restore definition from binary archive More... | |
bool | ReadV5 (ON_BinaryArchive &, int *V5_font_index, ON_UUID *V5_font_id) |
V6 separated the V5 ON_Font into ON_TextStyle and ON_Font. More... | |
const ON_wString | RichTextFontName () const |
unsigned int | RuntimeSerialNumber () const |
bool | SetAppleFontWeightTrait (double apple_font_weight_trait) |
bool | SetAppleWeightOfFont (int apple_weight_of_font) |
bool | SetFamilyName (const wchar_t *family_name) |
bool | SetFontCharacteristics (const wchar_t *gdi_logfont_name, bool bBold, bool bItalic, bool bUnderlined, bool bStrikethrough) |
bool | SetFontCharacteristics (const wchar_t *gdi_logfont_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough) |
bool | SetFontCharacteristics (const wchar_t *gdi_logfont_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough, double linefeed_ratio, unsigned int logfont_charset) |
bool | SetFontCharacteristics (double point_size, const wchar_t *gdi_logfont_name, bool bBold, bool bItalic, bool bUnderlined, bool bStrikethrough) |
bool | SetFontCharacteristics (double point_size, const wchar_t *gdi_logfont_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough) |
bool | SetFontCharacteristics (double point_size, const wchar_t *gdi_logfont_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough, double linefeed_ratio, unsigned int logfont_charset) |
bool | SetFontCharacteristicsForExperts (double point_size, const ON_wString postscript_name, const ON_wString quartet_name, ON_FontFaceQuartet::Member quartet_member, const ON_wString family_name, const ON_wString face_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough, unsigned char logfont_charset, int windows_logfont_weight, double apple_font_weight_trait, ON_PANOSE1 panose1) |
bool | SetFontDescriptionForExperts (const wchar_t *ignored_parameter) |
bool | SetFontFaceName (const wchar_t *windows_logfont_name) |
void | SetFontOrigin (ON_Font::Origin font_origin) |
bool | SetFontStretch (ON_Font::Stretch font_stretch) |
bool | SetFontStyle (ON_Font::Style font_style) |
bool | SetFontWeight (ON_Font::Weight font_weight) |
bool | SetFromAppleFontName (const wchar_t *postscript_name) |
bool | SetFromAppleFontName (const wchar_t *postscript_name, double point_size) |
bool | SetFromFontDescription (const wchar_t *font_description) |
bool | SetFromFontDescription (const wchar_t *font_description, const wchar_t *postscript_name) |
bool | SetFromPostScriptName (const wchar_t *postscript_name) |
bool | SetLogfontCharSet (unsigned char logfont_charset) |
void | SetPANOSE1 (ON_PANOSE1 panose1) |
bool | SetPointSize (double point_size) |
void | SetSimulated (bool bSimulatedWeight, bool bSimulatedStretch, bool bSimulatedStyle, bool bSimulatedOther) |
bool | SetStrikethrough (bool bStrikethrough) |
bool | SetUnderlined (bool bUnderlined) |
unsigned int | SetUnsetProperties (const ON_Font &source, bool bUpdateDescription) |
bool | SetWindowsLogfontName (const wchar_t *windows_logfont_name) |
bool | SetWindowsLogfontWeight (int windows_logfont_weight) |
bool | SimulatedStretch () const |
bool | SimulatedStyle () const |
bool | SimulatedWeight () const |
const ON_Font * | SubstituteFont () const |
const ON_wString | WidthWeightSlantDescription () const |
const ON_wString | WindowsLogfontName () const |
const ON_wString | WindowsLogfontName (ON_Font::NameLocale name_locale) const |
const wchar_t * | WindowsLogfontNameAsPointer () const |
int | WindowsLogfontWeight () const |
bool | Write (ON_BinaryArchive &) const |
serialize definition to binary archive More... | |
bool | WriteV5 (int V5_font_index, ON_UUID V5_font_id, ON_BinaryArchive &) const |
V6 separated the V5 ON_Font into ON_TextStyle and ON_Font. More... | |
Static Public Member Functions | |
static double | AppleFontWeightTraitFromWeight (ON_Font::Weight font_weight) |
static int | AppleWeightOfFontFromWeight (ON_Font::Weight font_weight) |
static const ON_String | CleanFontName (const wchar_t *dirty_font_name, ON_StringMapOrdinalType map) |
static int | CompareFontCharacteristics (const ON_Font &lhs, const ON_Font &rhs) |
static int | CompareFontCharacteristicsForExperts (bool bComparePlatformSpecificCharacteristics, bool bIgnoreUnsetCharacteristics, const ON_Font &lhs, const ON_Font &rhs) |
static int | CompareFontName (const ON_wString &lhs, const ON_wString &rhs) |
static int | CompareFontNamePointer (const ON_wString *lhs, const ON_wString *rhs) |
static int | CompareFontNameToHyphen (const ON_wString &lhs, const ON_wString &rhs) |
static int | CompareFontNameToHyphenPointer (const ON_wString *lhs, const ON_wString *rhs) |
static int | CompareFontNameToHyphenWideChar (const wchar_t *lhs, const wchar_t *rhs) |
static int | CompareFontNameWideChar (const wchar_t *lhs, const wchar_t *rhs) |
static int | CompareWeight (ON_Font::Weight weight_a, ON_Font::Weight weight_b) |
static const ON_Font * | DefaultEngravingFont () |
static const wchar_t * | DefaultFaceName () |
static const wchar_t * | DefaultFamilyName () |
static const wchar_t * | DefaultPostScriptName () |
static const wchar_t * | DefaultWindowsLogfontName () |
static bool | EqualFontCharacteristics (const ON_Font &lhs, const ON_Font &rhs) |
static bool | EqualFontFamily (const ON_Font *lhs, const ON_Font *rhs) |
static bool | EqualFontFamilyAndFace (const ON_Font *lhs, const ON_Font *rhs) |
static bool | EqualStretch (const ON_Font *lhs, const ON_Font *rhs, bool bUnsetIsEqual) |
static bool | EqualStyle (const ON_Font *lhs, const ON_Font *rhs, bool bUnsetIsEqual) |
static bool | EqualWeight (const ON_Font *lhs, const ON_Font *rhs, bool bUnsetIsEqual) |
static bool | EqualWeightStretchStyle (const ON_Font *lhs, const ON_Font *rhs, bool bUnsetIsEqual) |
static const ON_wString | FakeWindowsLogfontNameFromFamilyAndPostScriptNames (ON_wString family_name, ON_wString postscript_name) |
static const ON_wString | FamilyNameFromDirtyName (const wchar_t *dirty_name) |
static const ON_Font * | FontFromRichTextProperties (ON_wString rich_text_font_name, bool bBoldQuartetMember, bool bItalicQuartetMember, bool bUnderlined, bool bStrikethrough) |
static const ON_SHA1_Hash | FontNameHash (const wchar_t *font_name, bool bStopAtHyphen) |
static ON_Font::Origin | FontOriginFromUnsigned (unsigned int unsigned_font_origin) |
static ON_Font::Stretch | FontStretchFromUnsigned (unsigned int unsigned_font_stretch) |
static ON_Font::Style | FontStyleFromUnsigned (unsigned int unsigned_font_style) |
static ON_Font::Weight | FontWeightFromUnsigned (unsigned int unsigned_font_weight) |
static unsigned int | GetInstalledFontFamily (const wchar_t *font_family_name, ON_SimpleArray< const ON_Font * > &installed_fonts) |
static unsigned int | GetInstalledFontList (ON_SimpleArray< const ON_Font * > &installed_fonts) |
static const ON_Font * | GetManagedFont (const ON_Font &font_characteristics, bool bCreateIfNotFound) |
static const ON_Font * | GetManagedFont (const wchar_t *face_name) |
static const ON_Font * | GetManagedFont (const wchar_t *face_name, bool bBold) |
static const ON_Font * | GetManagedFont (const wchar_t *face_name, bool bBold, bool bItalic) |
static const ON_Font * | GetManagedFont (const wchar_t *face_name, ON_Font::Weight font_weight, ON_Font::Style font_style) |
static const ON_Font * | GetManagedFont (const wchar_t *face_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough, double linefeed_ratio, unsigned int logfont_charset) |
static const ON_Font * | GetManagedFont (double point_size, const wchar_t *face_name) |
static const ON_Font * | GetManagedFont (double point_size, const wchar_t *face_name, bool bBold) |
static const ON_Font * | GetManagedFont (double point_size, const wchar_t *face_name, bool bBold, bool bItalic) |
static const ON_Font * | GetManagedFont (double point_size, const wchar_t *face_name, ON_Font::Weight font_weight, ON_Font::Style font_style) |
static const ON_Font * | GetManagedFont (double point_size, const wchar_t *face_name, ON_Font::Weight font_weight, ON_Font::Style font_style, ON_Font::Stretch font_stretch, bool bUnderlined, bool bStrikethrough, double linefeed_ratio, unsigned int logfont_charset) |
static const ON_Font * | GetManagedFontFromAppleFontName (const char *postscript_name) |
static const ON_Font * | GetManagedFontFromAppleFontName (const wchar_t *postscript_name) |
static const ON_Font * | GetManagedFontFromFontDescription (const wchar_t *font_description) |
static const ON_Font * | GetManagedFontFromPostScriptName (const char *postscript_name) |
static const ON_Font * | GetManagedFontFromPostScriptName (const wchar_t *postscript_name) |
static const ON_Font * | GetManagedFontFromSerialNumber (unsigned int managed_font_runtime_serial_number) |
static unsigned int | GetManagedFontList (ON_SimpleArray< const ON_Font * > &managed_fonts) |
static void | GetRunBounds (const ON_Font &font, const wchar_t *text, double fontSizePixels, ON::TextHorizontalAlignment horizontalAlignment, ON::TextVerticalAlignment verticalAlignment, ON_2dPoint &boundsMin, ON_2dPoint &boundsMax, int &lineCount) |
static const ON_Font * | InstalledFontFromRichTextProperties (const wchar_t *rtf_font_name, bool bRtfBold, bool bRtfItalic) |
static const class ON_FontList & | InstalledFontList () |
static bool | IsBoldWeight (ON_Font::Weight weight) |
static bool | IsNotAppleFontName (const wchar_t *font_description) |
static bool | IsValidFaceName (const wchar_t *face_name) |
static bool | IsValidPointSize (double point_size) |
static const ON_Font * | ManagedFontFromRichTextProperties (const wchar_t *rtf_font_name, bool bRtfBold, bool bRtfItalic, bool bRftUnderlined, bool bRftStrikethrough) |
static const class ON_FontList & | ManagedFontList () |
static const ON_wString | RichTextFontName (const ON_Font *font, bool bDefaultIfEmpty) |
static const ON_wString | RichTextPropertiesToString (bool bRtfBold, bool bRtfItalic, bool bRtfUnderlined, bool bRtfStrikethrough) |
static const ON_wString | RichTextPropertiesToString (const ON_Font *font) |
static const ON_wString | RichTextPropertiesToString (ON_Font::Weight rtf_weight, ON_Font::Style rtf_style, bool bRtfUnderlined, bool bRtfStrikethrough) |
static unsigned int | RichTextPropertyDeviation (bool bPreferedRtfBold, bool bPreferedItalic, bool bPreferedUnderline, bool bPreferedStrikethrough, bool bAvailableRtfBold, bool bAvailableItalic, bool bAvailableUnderline, bool bAvailableStrikethrough) |
static unsigned int | RichTextPropertyDeviation (bool bPreferedRtfBold, bool bPreferedItalic, bool bPreferedUnderline, bool bPreferedStrikethrough, const ON_Font *available_font) |
static void | SetCustomMeasurementFunctions (ON_GetGlyphMetricsFuncType measureGlyphFunc, ON_GetFontMetricsFuncType metricsFunction) |
static const wchar_t * | StretchToWideString (ON_Font::Stretch font_stretch) |
static const wchar_t * | StyleToWideString (ON_Font::Style font_style) |
static bool | TestInstalledFontList (class ON_TextLog &text_log) |
static unsigned int | UnderlinedStrikethroughDeviation (bool bPreferedUnderline, bool bPreferedStrikethrough, bool bAvailableUnderline, bool bAvailableStrikethrough) |
static unsigned int | UnderlinedStrikethroughDeviation (bool bPreferedUnderline, bool bPreferedStrikethrough, const ON_Font *available_font) |
static unsigned int | UnderlinedStrikethroughDeviation (const ON_Font *prefered_underlined_strikethrough, const ON_Font *available_font) |
static ON_Font::Weight | WeightFromAppleFontWeightTrait (double apple_font_weight_trait) |
static ON_Font::Weight | WeightFromAppleWeightOfFont (int apple_weight_of_font) |
static ON_Font::Weight | WeightFromWindowsLogfontWeight (int windows_logfont_weight) |
static unsigned int | WeightStretchStyleDeviation (const ON_Font *prefered_weight_stretch_style, const ON_Font *available_font) |
static unsigned int | WeightStretchStyleDeviation (ON_Font::Weight prefered_weight, ON_Font::Stretch prefered_stretch, ON_Font::Style prefered_style, const ON_Font *available_font) |
static unsigned int | WeightStretchStyleDeviation (ON_Font::Weight prefered_weight, ON_Font::Stretch prefered_stretch, ON_Font::Style prefered_style, ON_Font::Weight available_weight, ON_Font::Stretch available_stretch, ON_Font::Style available_style) |
static const wchar_t * | WeightToWideString (ON_Font::Weight font_weight) |
static const ON_wString | WidthWeightSlantDescription (ON_Font::Stretch width, ON_Font::Weight weight, ON_Font::Style slant) |
static unsigned char | WindowsLogfontCharSetFromFaceName (const wchar_t *face_name) |
static int | WindowsLogfontWeightFromWeight (ON_Font::Weight font_weight) |
Static Public Attributes | |
static const ON_Font | Default |
static const ON_Font | Unset |
ON_Font::Unset has unset face name and platform font name. More... | |
Friends | |
class | ON_FontGlyph |
class | ON_FontList |
class | ON_ManagedFonts |
An ON_Font is a face in a font family. It corresponds to a Windows LOGFONT, a .NET System.Drawing.Font or a FreeType FT_Face.
typedef void(* ON_Font::ON_GetFontMetricsFuncType) (const class ON_Font *font, class ON_FontMetrics &font_metrics_in_font_design_units) |
Parameters: font - [in] font_metrics_in_font_design_units - [out] font metrics in font design units
typedef unsigned int(* ON_Font::ON_GetGlyphMetricsFuncType) (const class ON_FontGlyph *font_glyph, class ON_TextBox &glyph_metrics_in_font_design_units) |
Parameters: font_glyph - [in] glyph_metrics_in_font_design_units - [out] glyph metrics in font design units Returns: >0: Glyph index 0: failed
typedef bool(* ON_Font::ON_GetGlyphOutlineFuncType) (const class ON_FontGlyph *glyph, bool bSingleStrokeFont, class ON_Outline &outline) |
enum ON_Font::Constants : int |
miscellaneous constants use to initialize Windows LOGFONT fields
|
strong |
|
strong |
ON_Font::NameLocale selects what locale is used for font name (PostScript, family, face, LOGFONT) queries.
BUSTED #pragma region RH_BUSTED_C_SHARED_ENUM [ON_Font::NameLocale] [Rhino.DocObjects.Font.NameLocale] [nested:byte]
|
strong |
Platform where font originated. This information is useful when searching for appropriate substitutes.
Enumerator | |
---|---|
Unset | Not set. |
Unknown | Origin unknown. Changing an ON_Font characteristic like weight or style sets the origin to unknown. |
WindowsFont | Set from a Windows IDWriteFont by ON_Font::SetFromDWriteFont() or a Windows LOGFONT by ON_Font::SetFromWindowsLogFont() and FaceName and WindowLogfontName match a font installed on a Windows device. |
AppleFont | Set from an Apple CTFont. The PostScriptName() and FamilyName() match a font installed on device running MacOS or iOS. The FaceName() matches the "typeface" name shown in the MacOS FontBook app. |
|
strong |
|
strong |
Vertical angle of font Upright, Italic, or Oblique
|
strong |
Weight enum values Avoid casting these values to int. Use ON_Font::WindowsLogfontWeightFromWeight() or ON_Font::AppleWeightOfFontFromWeight() or add another converter.
enum ON_Font::WindowsConstants : unsigned char |
Interface
ON_Font::ON_Font | ( | ) |
|
default |
ON_Font::ON_Font | ( | const ON_Font & | src | ) |
const ON_wString& ON_Font::AppleFontName | ( | ) | const |
const wchar_t* ON_Font::AppleFontNameAsPointer | ( | ) | const |
double ON_Font::AppleFontWeightTrait | ( | ) | const |
double ON_Font::AppleFontWeightTraitEx | ( | ) | const |
Returns: If the font is created from a CTFont, the weight trait, otherwise ON_UNSET_VALUE;
|
static |
Description: The correspondence between Apple "font weight trait" values and ON_Font::Weight enum values is ON_Font::Weight::Thin = -0.4 Apple font weight trait ON_Font::Weight::Ultralight = -0.2667 Apple font weight trait ON_Font::Weight::Light = -0.1333 Apple font weight trait ON_Font::Weight::Normal = 0.0 Apple font weight trait ON_Font::Weight::Medium = 0.1333 Apple font weight trait ON_Font::Weight::Semibold = 0.2667 Apple font weight trait ON_Font::Weight::Bold = 0.4 Apple font weight trait ON_Font::Weight::Ultrabold = 0.5333 Apple font weight trait ON_Font::Weight::Heavy = 0.6667 Apple font weight trait Returns: The Apple "WeightTrait" value that corresponds to the ON_Font::Weight enum value.
double ON_Font::AppleFontWidthTrait | ( | ) | const |
int ON_Font::AppleWeightOfFont | ( | ) | const |
|
static |
Description: The correspondence between Apple "weight of font" values and ON_Font::Weight enum values is ON_Font::Weight::Thin = 1 ON_Font::Weight::Ultralight = 2 ON_Font::Weight::Light = 3 ON_Font::Weight::Normal = 4
ON_Font::Weight::Medium = 5 ON_Font::Weight::Semibold = 6 ON_Font::Weight::Bold = 7 ON_Font::Weight::Ultrabold = 8 ON_Font::Weight::Heavy = 9 Returns: The Apple "weight of font" value that corresponds to the ON_Font::Weight enum value.
const ON_Font* ON_Font::BestMatch | ( | const ON_SimpleArray< const ON_Font * > & | font_list | ) | const |
Parameters: font_list - [in] Fonts to search for a match. All fonts in this list are tested (search time is proportional to font_list.Count()). If the list returned by GetInstalledFontFamily() contains reasonable options, it is a good choice for the font_list[] parameter. Returns: A pointer to the font in font_list[] that is the best match to this.
Parameters: font_list - [in] Fonts to search for a match. All fonts in this list are tested (search time is proportional to font_list.Count()). If the list returned by GetInstalledFontFamily() contains reasonable options, it is a good choice for the font_list[] parameter. font_count - [in] Number of elements in the font_list[] array. Returns: A pointer to the font in font_list[] that is the best match to this.
|
static |
Parameters: dirty_font_name - [in] A UTF-16 or UTF-32 encoded null terminated string. map - [in] Map to apply Returns: The input name with all spaces and hyphens removed.
const class ON_FontGlyph* ON_Font::CodePointGlyph | ( | ON__UINT32 | unicode_code_point | ) | const |
Description: Returns the glyph informationh for used to render a specific code point Parameters: unicode_code_point UNICODE code point value Returns: Glyph rendering information.
Remarks: Typically the returned glyph uses is a single glyph in this->ManagedFont(). In this case, glyph->SubstitueCount() is 0.
In some cases one or more glyphs from one or more substitute fonts are required to render the code point. In this case, glyph->SubstitueCount() is 0.
Example: ON_Font* font = ...; unsigned int code_point = ...; const ON_FontGlyph* g = font->CodePointGlyph(code_point); if (nullptr != g ) { if ( g->SubstituteCount() > 0 ) { / complicate case - one of more substitutes must be rendered to render g for ( const ON_FontGlyph* gsub = g.NextSubstitute(); nullptr != gsub; gsub = gsub->NextSubstitute() ) { ... } } else { / simple case - this computer can directly render g ... } }
Description: Compares the font face name, weight, style, stretch, underline, strikethrough, point size, and platform specific characteristics. Returns: -1: lhs characteristics < rhs characteristics 0: lhs characteristics = rhs characteristics +1: lhs characteristics > rhs characteristics Remarks: Use FontCharacteristicsHash() when every characteristic needs to be compared.
|
static |
Description: Expert user tool to compares the font face name, weight, style, stretch, underline, and strikethrough characteristics. Additional parameters determine how unset and platform specific characteristics are compared.
Parameters: bComparePlatformSpecificCharacteristics - [in] If bComparePlatformSpecificCharacteristics is true, characteristics for the current platform are compared. Otherwise all platform specific characteristics are ignored. Platform specific characteristics include m_logfont_charset on Windows, and m_apple_font_name and m_apple_font_weight_trait on Mac OS.
bIgnoreUnsetCharacteristics - [in] If bIgnoreUnsetCharacteristics is true, unset characteristics are considered equal to any other value.
WARNING: When bIgnoredUnsetCharacteristic is true, this compare function is not a well ordering of ON_Font classes and cannot be used in sorting algorithms. For example, if A, B, C are fonts with weights A.FontWeight() = ON_Font::Weight::Normal, B.FontWeight() = ON_Font::Weight::Bold, C.FontWeight() = ON_Font::Weight::Unset, and all other settings identical, then A < B and A=C and B=C.
Returns: -1: lhs characteristics < rhs characteristics 0: lhs characteristics = rhs characteristics +1: lhs characteristics > rhs characteristics
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,false) and ON_Font::FontNameHash(rsh,false) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,false) and ON_Font::FontNameHash(rsh,false) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Ignore portions of PostScript names after the hyphen that separates the font family and font face. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,true) and ON_Font::FontNameHash(rsh,true) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Ignore portions of PostScript names after the hyphen that separates the font family and font face. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,true) and ON_Font::FontNameHash(rsh,true) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Ignore portions of PostScript names after the hyphen that separates the font family and font face. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,true) and ON_Font::FontNameHash(rsh,true) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Description: Compare the font names ignoring hyphens, underbars, and spaces. Parameters: lhs - [in] font name to compare rhs - [in] font name to compare Returns: If ON_Font::FontNameHash(lsh,false) and ON_Font::FontNameHash(rsh,false) are equal, then 0 is returned. Otherwise ON_wString::CompareOrdinal(lhs,rhs,true) is returned. Remarks: Useful for sorting font names.
|
static |
Returns: -1: weight_a is lighter, weight_b is heavier +1: weight_a is heavier, weight_b is lighter 0: weight_a = weight_b
ON__UINT32 ON_Font::CRC32 | ( | bool | bIgnoreNameOrdinalCase | ) | const |
Description: Returns a 32-bit crc of the font weight, style, stretch, underline, strikethrough, and WIndows logfont name characteristics.
Parameters: bIgnoreWindowsLogfontNameOrdinalCase - [in] If true, ON_wString::MapStringOrdinal() is applied to the windows logfont name and the returned CRC is ordinal case independent.
|
static |
|
static |
Returns: Windows: "Regular" Apple: "Regular"
|
static |
Returns: Windows: "Arial" Apple: "Helvetica Neue"
|
static |
Returns: Windows: "ArialMT" Apple: "HelveticaNeue"
|
static |
Returns: Windows: "ArialMT" Apple: "HelveticaNeue"
const ON_wString ON_Font::Description | ( | ) | const |
Returns: A long description that includes family, face, weight, stretch and style information. Generally not useful for finding matching fonts. Remarks: Calls ON_Font.Description(ON_Font::NameLocale::localizeFirst, ON_wString::HyphenMinus,ON_wString::Space,true)
const ON_wString ON_Font::Description | ( | ON_Font::NameLocale | name_local, |
wchar_t | family_separator, | ||
wchar_t | weight_width_slope_separator, | ||
bool | bIncludeUndelinedAndStrikethrough | ||
) | const |
Description: Get a text description with family weight, width (stretch), slope (style). Parameters: family_separator - [in] character to place after family name in the description. 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. weight_width_slope_separator - [in] character to place bewtween weight, stretch, and style descriptions 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. bIncludeUndelinedAndStrikethrough - [in] If true, underlined and strikethrough attributes are appended 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. Returns: A font description with family name, weight, stretch, and style. If present, the weight, stretch, style, underlined, and strikethrough descriptions begin with a capital letter followed by lowercase letters. Remarks: A description similar to the PostScript name is returned by DescriptionFamilyWeightStretchStyle(ON_wString::HyphenMinus,0,false). However, this often differs from the actual PostScript name.
const ON_wString ON_Font::Description | ( | ON_Font::NameLocale | name_local, |
wchar_t | family_separator, | ||
wchar_t | weight_width_slope_separator, | ||
bool | bIncludeUndelinedAndStrikethrough, | ||
bool | bIncludeNotOnDevice | ||
) | const |
Description: Get a text description with family weight, width (stretch), slope (style). Parameters: family_separator - [in] character to place after family name in the description. 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. weight_width_slope_separator - [in] character to place bewtween weight, stretch, and style descriptions 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. bIncludeUndelinedAndStrikethrough - [in] If true, underlined and strikethrough attributes are appended 0 = no separator. 0, ON_wSting::HyphenMinus, and ON_wString::Space are common choices. bIncludeNotOnDevice - [in] If true and this->IsManagedSubstitutedFont() is true, then the returned string begins with "[Not on device]" followed by the font's description. Returns: A font description with family name, weight, stretch, and style. If present, the weight, stretch, style, underlined, and strikethrough descriptions begin with a capital letter followed by lowercase letters. Remarks: A description similar to the PostScript name is returned by DescriptionFamilyWeightStretchStyle(ON_wString::HyphenMinus,0,false). However, this often differs from the actual PostScript name.
void ON_Font::Dump | ( | ON_TextLog & | ) | const |
for debugging
Description: Compares the font weight, style, stretch, underline, strikethrough, linefeed_ratio and facename characteristics. Returns: 0 == ON_Font::CompareFontCharacteristics(lhs,rhs). Remarks: Use FontCharacteristicsHash() when every characteristic needs to be compared.
Returns: True if lhs an rhs are in the same font family.
Returns: True if lhs and rhs have equal family names and equal face names in with the name local or in English.
|
static |
|
static |
|
static |
|
static |
const ON_wString ON_Font::FaceName | ( | ) | const |
Returns: ON_Font::FaceName(ON_Font::NameLocale::LocalizedFirst)
const ON_wString ON_Font::FaceName | ( | ON_Font::NameLocale | name_locale | ) | const |
Returns: The font's face name. Remarks: Typically a font family has many faces and the face name gives a clue about the weight, stretch, and style of the face.
For example, Arial is a common font family that often includes faces like "Regular", "Bold", "Italic", "Bold Italic", "Narrow", "Narrow Bold", "Narrow Italic", "Narrow Bold Italic", "Black", and "Black Oblique".
Platform equivalents: Apple: = not available Windows: = IDWriteFontFamily.GetFaceNames()
NOTE WELL: This is NOT the Windows LOGFONT lfFaceName.
|
static |
Description: On non-WIndows platforms like Mac OS, iOS, and Android, this function can be used to generate fake windows logfont names. For fonts that have at most 4 faces with the same stretch and variations in weight and slant, the family_name is a good choice. For fonts that have many faces, like Helvetica Neue on Mac OS, this function will generate names that act like a Windows LOGFONT name for use in archaic name + regular/bold/italic/bold-italic font selection user interfaces. Returns: A fake windows logfont name.
const ON_wString ON_Font::FamilyName | ( | ) | const |
Returns: ON_Font::FamilyName(ON_Font::NameLocale::LocalizedFirst)
const ON_wString ON_Font::FamilyName | ( | ON_Font::NameLocale | name_locale | ) | const |
Returns: The font's family name. Remarks: Typically a font family has many faces.
Platform equivalents: Apple: = CTFontCopyFamilyName(...) / NSFont.familyName Windows: = IDWriteFontFamily.GetFamilyNames()
NOTE WELL: This is NOT the Windows LOGFONT lfFaceName.
|
static |
Parameters: dirty_name - [in] A Windows GDI LOGFONT name or PostScript name. Returns: A family name
unsigned int ON_Font::FontCharacteristicsAsUnsigned | ( | ) | const |
Description: The font properties weight, style, stretch, underlined, and strikethrough are encoded in the returned value. Remarks: This is a legacy value used in 3dm archive reading/writing and some sorting operations.
const class ON_SHA1_Hash& ON_Font::FontCharacteristicsHash | ( | ) | const |
Returns: A SHA-1 hash of all font characteristics, including platform specific settings. Two fonts have identical font characteristics, if and only if they have identical FontCharacteristicsHash() values.
Example: ON_Font f1 = ... ON_Font f2 = ... if ( f1.FontCharacteristicsHash() == f2.FontCharacteristicsHash() ) { / f1 and f2 have identical font characteristics } else { / f1 and f2 have different font characteristics }
const ON_wString& ON_Font::FontDescription | ( | ) | const |
const wchar_t* ON_Font::FontDescriptionAsPointer | ( | ) | const |
const wchar_t* ON_Font::FontFaceName | ( | ) | const |
|
static |
Description: This is the best way to get a font from rich text properties. Parameters: rich_text_font_name - [in] Rich text quartet name. If you have an ON_Font, then ON_Font.RichTextName() gets a good choice for this name. For Windows installed fonts, this is identical to the Windows LOGFONT.lfFaceName. For MacOS this is an invented name and is chosen to work cross platform as well as possible. For Apple families with up to 4 faces that align with the rich text quartet "regular/bold/italic/bold-italic" faces, things tend to work as expected. for common Apple families like Helvetica Neue with a dozen or so faces that are designed to work well for western european languages, opennurbs selects 4 faces in the family that tend to align with would many people expect as the rich text "regular/bold/italic/bold-italic" face. Things get dicier with less common families and fonts designed for non-western european languages. Basically, Apple and richt text do not play nicely together.
bBoldQuartetMember - [in] True to select the heavier members of the rich text quartet.
bItalicQuartetMember - [in] True to select the more slanted memmers of the rich text quartet.
bUnderlined - [in] True if you want underlined text. (Underlining is created as a rendering effect and not a separate face.)
bStrikethrough - [in] True if you want strikethrough text. (Strikethrough is created as a rendering effect and not a separate face.)
Returns: If there is an installed font, it is returned. Otherwise a managed font is returned. When the managed font is not installed, the corresponding member of ON_Font::Default::InstalledQuartet() is used to render the font.
const ON_FontMetrics& ON_Font::FontMetrics | ( | ) | const |
Returns: Normalized font metrics.
Remarks: Font metric "normalized" units are comparable between different fonts. Normalized font metrics exist so that code that positions glyphs from multiple fonts does not have to take the unit system and resolution used in the design of each font. In opennurbs, much of this code that positions glyphs is located in ON_Annotation, ON_TextContent, and ON_TextRun member functions and is used when rendering annotation objects.
Fonts can be designed and defined at different resolutions and relative scaling is necessary when text contains glyphs from fonts designed at different grid resolutions. For example, TrueType font grid with and height is often 1024x1024 or 2048x2014, OpenType grids are often 1000x1000, and PostScript grids are often 1000x1000. Opennurbs "font units" are the units the font was designed in.
Long ago, opennurbs and Rhino used only Windows TrueType fonts and ran only in Microsoft Windows. During this era, the "normalized units" were for a Windows LOGFONT created with lfHeight = ON_Font::Constants::AnnotationFontCellHeight.
Currently opennurbs and Rhino work on Microsoft Windows and Apple platforms and use FreeType to access font information. When a font is not "tricky", the "font design" units are the the units FreeType uses when a font is loaded with FT_LOAD_NO_SCALE.
When working with fonts and glyhphs in opennurbs and Rhino, SDK users almost always want to use normalized font and glyph metrics.
|
static |
Parameters: font_name - [in] A UTF-16 or UTF-32 encoded null terminated string. bStopAtHyphen - [in] If true, the hash calculation terminates at the first hyphen. This is useful when font_name is a PostScript name and you don't want to include face weight or style information in the hash.
For example, if bStopAtHyphen is true, then the four PostScript names "Calibri", "Calibri-Bold", "Calibri-Italic", and "Calibri-BoldItalic" have the same hash.
There are some fonts where a hyphen is an integral part of the font face name. Examples include "Arial-Black", "AvenirLT-Roman", "MecSoftFont-1", "MS-Gothic", "MS-PGothic", "MS-UIGothic", "SLF-RHN-Architect", "SLF-RHN-Industrial", "SLF-RHN-WhiteLiinen", and so on. These hyphens are exempt from the bStopAtHyphen check. Returns: A hash of the font_name parameter that ignores spaces, hyphens, underbars, and case. For example, the four names "Yu Gothic Regular", "YuGothic-Regular", "YUGOTHICREGULAR", and "yugothicregular" have the same FontNameHash(). The hash will be identical for UTF-16 and UTF-32 encodings.
ON_Font::Origin ON_Font::FontOrigin | ( | ) | const |
Returns: Source of the information used to set the font characteristics. Unset = 0,
|
static |
Description: In the rare cases when an ON_Font::Weight value must be passed as an unsigned int, use ON_Font::FontWeightFromUnsigned() to convert the unsigned value to an ON_Font::Weight value. Parameters: unsigned_font_weight - [in]
const ON_FontFaceQuartet ON_Font::FontQuartet | ( | ) | const |
Returns: If this font is installed or managed, the installed or mangaged font face quartet is returned. Otherwise ON_FontFaceQuartet::Empty is returned. Note that managed font quartets can be enlarged to include missing faces by calling ON_Font::FontFromRichTextProperties(). Installed font quartets exactly match what is installed on the current device. if this font is not a member of an installed face quartet.
ON_Font::Stretch ON_Font::FontStretch | ( | ) | const |
|
static |
Description: In the rare cases when an ON_Font::Stretch value must be passed as an unsigned int, use ON_Font::FontStretchFromUnsigned() to convert the unsigned value to an ON_Font::Stretch value. Parameters: unsigned_font_stretch - [in]
ON_Font::Style ON_Font::FontStyle | ( | ) | const |
Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
|
static |
Description: In the rare cases when an ON_Font::Style value must be passed as an unsigned int, use ON_Font::FontStyleFromUnsigned() to convert the unsigned value to an ON_Font::Style value. Parameters: unsigned_font_style - [in]
const ON_FontMetrics& ON_Font::FontUnitFontMetrics | ( | ) | const |
Description: This function is for expert users doing something complicated. Returns: Font metrics read directly from the font definition with no or minimal scaling. Remarks: See ON_Font.FontMetrics() documentation for important information about the difference between normalized and font unit metrics.
double ON_Font::FontUnitToNormalizedScale | ( | ) | const |
Returns: scale to apply when converting from a FT_LOAD_NO_SCALE FreeType glyph metric or outline to normalized opennurbs font coordinates.
ON_Font::Weight ON_Font::FontWeight | ( | ) | const |
|
static |
Description: In the rare cases when an ON_Font::Weight value must be passed as an unsigned int, use ON_Font::FontWeightFromUnsigned() to convert the unsigned value to an ON_Font::Weight value. Parameters: unsigned_font_weight - [in]
|
static |
Parameters: font_family_name - [in] A font family name like Arial or Helvetica. bIncludePartialMatch - [in] If true, family names that begin with font_family_name will be included. installed_fonts - [out] A list of all fonts available on the current computer with a matching font family name. Returns: Number of fonts available on the current computer.
|
static |
Parameters: installed_fonts - [out] A list of all fonts available on the current computer sorted by font family name. Returns: Number of fonts available on the current computer.
|
static |
|
static |
Description: Get a font managed by the application from the font characteristics. Never delete a font returned by GetManagedFont(). Parameters: face_name - [in] font_weight - [in] default = ON_Font::Default.FontWeight() font_style - [in] default = ON_Font::Default.FontStyle() font_stretch - [in] default = ON_Font::Default.FontStretch() bUnderlined - [in] default = ON_Font::Default.Underlined() = false bStrikethrough - [in] default = ON_Font::Default.Strikethrough() = false linefeed_ratio - [in] default = ON_Font::Default.LinefeedRatio() windows_charset - [in] default = ON_Font::WindowsCharSet::DefaultCharSet
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Parameters: postscript_name - [in] Windows: PostScript name = IDWriteFont.GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME,...) Apple: PostScript name = CTFontCopyPostScriptName() / NSFont.fontName
|
static |
Parameters: postscript_name - [in] Windows: PostScript name = IDWriteFont.GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME,...) Apple: PostScript name = CTFontCopyPostScriptName() / NSFont.fontName
|
static |
Returns: If there is a managed font with the specified serial number, it is returned. Otherwise, nullptr is returned.
|
static |
Parameters: managed_fonts - [out] The current list of managed fonts. Returns: Number of managed fonts.
|
static |
int ON_Font::GetStrikeoutPosition | ( | ) | const |
int ON_Font::GetStrikeoutSize | ( | ) | const |
int ON_Font::GetUnderscorePosition | ( | ) | const |
int ON_Font::GetUnderscoreSize | ( | ) | const |
bool ON_Font::HasUnsetProperties | ( | bool | bCheckFamilyName, |
bool | bCheckPostScriptName | ||
) | const |
Parameters: bCheckFamilyName - [in] bCheckPostScriptName - [in] Returns: True if any of LOGFONT face name is empty. True if any of weight, stretch, or style is unset. True if bCheckFamilyName is true and FamilyName() is empty. True if bCheckPostScriptName is true and PostScriptName() is empty. False otherwise.
int ON_Font::HeightOfI | ( | ) | const |
int ON_Font::HeightOfLinefeed | ( | ) | const |
double ON_Font::HeightScale | ( | double | text_height | ) | const |
const ON_Font* ON_Font::InstalledFamilyMemberWithWeightStretchStyle | ( | ON_Font::Weight | desired_weight, |
ON_Font::Stretch | desired_stretch, | ||
ON_Font::Style | desired_style | ||
) | const |
Parameters: desired_weight - [in] Pass ON_Font::Weight::Unset if you do not want to change the weight. desired_stretch - [in] Pass ON_Font::Stretch::Unset if you do not want to change the stretch. desired_style - [in] Pass ON_Font::Style::Unset if you do not want to change the style.
Returns: The installed font in the same family as this with the best match for the desired weight, stretch, and style. If nothing close to suitable is available, nullptr is returned.
const ON_Font* ON_Font::InstalledFont | ( | bool | bAllowBestMatch | ) | const |
Description: Look for a font installed on the current device that matches this font. The Strikethrough, Underlined, and PointSize properties are ignored. Parameters: bAllowBestMatch - [in] If no exact match is available and bAllowBestMach is true and there are installed fonts with a matching family name, then the best match in the family is returned. Returns: If there is a matching installed font, it is returned. Otherwise, nullptr is returned.
|
static |
Description: Unless you are certain you want to restrict your choices to installed fonts, it is better to call ON_Font::FontFromRichTextProperties(). Parameters: rtf_font_name - [in] Rich text quartet neame. This name is not well defined and depends on the device and application that created the rich text. For Windows installed fonts, this is identical to the Windows LOGFONT.lfFaceName. On MacOS this is a name Rhino cooks up and is chosen to work cross platform as well as possible. Apple and richt text do not play nicely together. bRtfBold - [in] True to prefer the heavier memmbers of the installed rich text quartet. bRtfItalic - [in] True to prefer the more slanted memmbers of the installed rich text quartet. Returns: An installed font to use for this rich text face font or nullptr if the current device does not have a in installed font with for this rich text quartet.
|
static |
Returns: The list of installed fonts in a class with lots of searching tools.
const ON_FontFaceQuartet ON_Font::InstalledFontQuartet | ( | ) | const |
Returns: The installed font face quartet for this font or ON_FontFaceQuartet::Empty if this font is not a member of an installed face quartet.
bool ON_Font::IsBold | ( | ) | const |
Description: User interfaces that want to provide a name + regular/bold/italic/bold-italic font finder must use IsBoldInQuartet() and IsItalicInQuartet().
This function looks at weight the font designer assigned to the font. This is an unreliable way to determine if a font is "light/regular/bold" compared to other faces in its font family.
Returns: True if heavier than ON_Font::Weight::Medium.
Remarks: Just in case you didn't read the description, ON_Font.IsBold() is a terrible way to decide if a font is "bold" in a quartet (regular,bold,italic,bold-italic). Use ON_Font.QuartetFaceMember()
bool ON_Font::IsBoldInQuartet | ( | ) | const |
Returns: True if this font is considered a bold member in its installed font ON_FontFaceQuartet. Remarks: In a traditional regular/bold/italic/bold-italic font face interfaces, "bold" is relative to the quartet members and cannot be determined by inspecting the numerical value of the font's weight. For example, Arial Black has a weight of 900=ON_FontWeight::Weight::Heavy, but the Arial Black quartet has only two faces, regular and italic. In quartets for fonts with a simulated bold, like AvenirLT-Roman, the bold member often has a LOGFONT weight of 551 < SemiBold = 600. The Windows AvenirLT-Roman quartet has four faces and the bold faces in the quartet have weights 551.
|
static |
Returns: True if weight is ON_Font::Weight::Semibold or heavier.
bool ON_Font::IsDoubleStrokeFont | ( | ) | const |
Returns: True if this is a known double stroke font. False otherwise. See Also: IsEngravingFont()
bool ON_Font::IsEngravingFont | ( | ) | const |
Description: The outlines for an engraving font have single-stroke, double-stroke, or perimeters designed for path engraving. These fonts behave poorly when used for filled font rendering or creating solid extrusions. The OrachTech 2 line fonts are examples of engraving fonts that are not single or double stroke. Returns: True if the font is a known engraving font.
bool ON_Font::IsInstalledFont | ( | ) | const |
Returns: True if this font is a mangaged font with a face that is installed on the current device or this is an installed font returned by a function like ON_Font::InstalledFont(), ON_Font::GetInstalledFontFamily(), or ON_Font::GetInstalledFontList(). False in all other cases.
bool ON_Font::IsItalic | ( | ) | const |
Description: If is better to use IsItalicInQuartet().
Returns: true if FontStyle() is ON_Font::Style::Italic. false if FontStyle() is ON_Font::Style::Upright or .ON_Font::Style::Oblique. Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
bool ON_Font::IsItalicInQuartet | ( | ) | const |
Returns: True if this font is considered an italic member in its installed font ON_FontFaceQuartet. Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
bool ON_Font::IsItalicOrOblique | ( | ) | const |
Returns: true if FontStyle() is ON_Font::Style::Italic or is ON_Font::Style::Oblique. Otherwise false. Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
bool ON_Font::IsLight | ( | ) | const |
Description: User interfaces that want to provide a name + regular/bold/italic/bold-italic font finder must use IsBoldInQuartet() and IsItalicInQuartet().
This function looks at weight the font designer assigned to the font. This is an unreliable way to determine if a font is "light/regular/bold" compared to other faces in its font family.
Returns: True if FontWeight() is lighter than ON_Font::Weight::Normal
bool ON_Font::IsManagedFont | ( | ) | const |
Returns: True if this font is a managed font returned by one of the static ON_Font::GetManagedFont(...) functions. Remarks: ON_Font::Default is managed.
bool ON_Font::IsManagedInstalledFont | ( | ) | const |
Returns: True if this is a managed font and the font is installed on this device. False otherwise. Remarks: If this->IsManagedFont() is true, then exactly one of IsManagedInstalledFont() or IsManagedSubstitutedFont() is true. When this->IsManagedInstalledFont() is true, this->InstalledFont() returns the installed font.
bool ON_Font::IsManagedSubstitutedFont | ( | ) | const |
Returns: True if this font is a managed font that references a font that is not installed on this computer. Remarks: If this->IsManagedFont() is true, then exactly one of IsManagedInstalledFont() or IsManagedSubstitutedFont() is true. When this->IsManagedSubstitutedFont() is true, this->SubstituteFont() returns the installed font.
bool ON_Font::IsNormalWeight | ( | ) | const |
Description: User interfaces that want to provide a name + regular/bold/italic/bold-italic font finder must use IsBoldInQuartet() and IsItalicInQuartet().
This function looks at weight the font designer assigned to the font. This is an unreliable way to determine if a font is "light/regular/bold" compared to other faces in its font family.
Returns: True if FontWeight() is ON_Font::Normal or ON_Font::Weight::Medium
|
static |
Description: When reading version 5 3dm achives, the font description can be a generic font description or an Apple font name. This function rejects certain descriptions like "Default" and "Arial" for use as Apple font names.
bool ON_Font::IsOblique | ( | ) |
ERROR - missing const.
Returns: true if FontStyle() is ON_Font::Style::Oblique. false if FontStyle() is ON_Font::Style::Upright or .ON_Font::Style::Italic. Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
bool ON_Font::IsSimulated | ( | ) | const |
Returns: True if the font face is simulated in some way
bool ON_Font::IsSingleStrokeFont | ( | ) | const |
Returns: True if this is a known single stroke font. False otherwise. See Also: IsEngravingFont()
bool ON_Font::IsSingleStrokeOrDoubleStrokeFont | ( | ) | const |
Returns: True if this is a known single stroke or double stroke font. False otherwise. See Also: IsEngravingFont()
bool ON_Font::IsStrikethrough | ( | ) | const |
bool ON_Font::IsSymbolFont | ( | ) | const |
Returns: True if the font is a symbol font. Typically this means that there is no meaningful correspondence between public use UNICODE codepoints and glyphs. Remarks: The Linguist's Software fonts (circa 1997) with the family names CityBlueprint CountryBlueprint Romantic Technic are classified as symbol fonts but have reasonable glyphs for most ASCII codepoints.
bool ON_Font::IsUnderlined | ( | ) | const |
bool ON_Font::IsUpright | ( | ) | const |
Returns: true if FontStyle() is ON_Font::Style::Upright. false if FontStyle() is ON_Font::Style::Italic or .ON_Font::Style::Oblique. Remarks: When working with rich text you want to use IsItalicInQuartet(). For fonts with a slanted regular face like Corsiva, ON_Font.FontStyle() = ON_Font::Style::Italic, ON_Font.IsItalic() = true, and ON_Font.IsItalicInQuartet() = false.
bool ON_Font::IsValid | ( | ON_TextLog * | text_log = nullptr | ) | const |
Description: Tests an object to see if its data members are correctly initialized. Parameters: text_log - [in] if the object is not valid and text_log is not nullptr, then a brief englis description of the reason the object is not valid is appened to the log. The information appended to text_log is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Returns: @untitled table true object is valid false object is invalid, uninitialized, etc.
|
static |
Description: This function is poorly designed, poorly named, named and doesn't do anything very useful. Avoid it. It will be deleted when it is possible to break the SDK. Parameters: face_name - [in] Name to test Returns: False if face_name is nullptr, or face_name is the empty string, or the first element in the name is < ON_wString::Space, or the face_name contains any of these elements: ; " ' ` = # True otherwise.
|
static |
double ON_Font::LinefeedRatio | ( | ) | const |
const ON_wString ON_Font::Locale | ( | ) | const |
BUSTED #pragma endregion.
Returns: Locale for the font localized font names.
unsigned char ON_Font::LogfontCharSet | ( | ) | const |
const ON_Font* ON_Font::ManagedFamilyMemberWithRichTextProperties | ( | bool | bBold, |
bool | bItalic, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) | const |
Parameters: bBold - [in] True for the rich text quartet "bold face" with is typically heavier than the "regular" face. bItalic - [in] True for the rich text quartet "italic" with is typically more slanted than the "regular" face. bUnderlined - [in] True for an underlined face bStrikethrough - [in] True for a strikethrough face Returns: ON_Font::ManagedFontFromRichTextProperties(this->RichTextName(),bBold,bItalic,bUnderlined,bStrikethrough);
const ON_Font* ON_Font::ManagedFamilyMemberWithWeightStretchStyle | ( | ON_Font::Weight | desired_weight, |
ON_Font::Stretch | desired_stretch, | ||
ON_Font::Style | desired_style, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) | const |
Parameters: desired_weight - [in] Pass ON_Font::Weight::Unset if you do not want to change the weight. desired_stretch - [in] Pass ON_Font::Stretch::Unset if you do not want to change the stretch. desired_style - [in] Pass ON_Font::Style::Unset if you do not want to change the style. bUnderlined - [in] bStrikethrough - [in]
Returns: The installed font in the same family as this with the best match for the desired weight, stretch, and style. If nothing close to suitable is available, nullptr is returned.
const ON_Font* ON_Font::ManagedFont | ( | ) | const |
#if defined(ON_RUNTIME_APPLE_OBJECTIVE_C_AVAILABLE) static const ON_Font* GetManagedFontFromAppleNSFont( NSFont* apple_font, bool bAnnotationFont ); endif Returns: The managed font for this font. Remarks: If this->IsManagedFont() is true, then "this" is returned.
|
static |
Description: It is better to call ON_Font::FontFromRichTextProperties(). Parameters: rtf_font_name - [in] Rich text format name. This name is not well defined and depends on the device and application that created the rich text. On Windows this is often a LOGFONT.lfFaceName. On MacOS it is often a PostScript name.
bRtfBold - [in] RTF bold flag
bRtfItalic - [in] RTF italic flag Returns: A managed font to use for these rich text properties.
|
static |
Returns: The list of managed fonts in a class with lots of searching tools.
unsigned int ON_Font::ManagedFontSerialNumber | ( | ) | const |
Description: Two ON_Font classes reference the same platform font and create identical glyphs if and only if the have the same ManagedFontSerialNumber(). Returns: 0: This font is unset. >= 1: Serial number of the managed font with the same characteristics. Remark: For managed fonts other than ON_Font::Default, the value of ManagedFontSerialNumber() typically varies between instances of the same application. Different platforms and application versions may use different font faces for ON_Font::Default. If an ON_Font is a managed font, then RuntimeSerialNumber() and ManagedFontSerialNumber() are identical. If an ON_Font is not a managed font, then RuntimeSerialNumber() is zero.
double ON_Font::NormalizedToFontUnitScale | ( | ) | const |
Returns: scale to apply when converting from a FT_LOAD_NO_SCALE FreeType glyph metric or outline to normalized opennurbs font coordinates.
ON_OutlineFigure::Type ON_Font::OutlineFigureType | ( | ) | const |
Returns: If the outline figure type is known for certain, it is returned. Otherwise, ON_OutlineFigure::Type::Unknown is returned.
const ON_PANOSE1 ON_Font::PANOSE1 | ( | ) | const |
double ON_Font::PointSize | ( | ) | const |
Returns: Font character height in points (1 point = 1/72 inch).
See the remarks for a definition of "character height".
Remarks: A "point" is a length unit system. 1 point = 1/72 inch = 25.4/72 millimeters.
Typically, fonts are designed for maximum clarity when the rendered character height is close to PointSize().
font cell height = font ascent + font descent.
font character height = font cell height - font internal leading.
For fonts designed for languages that use latin letters, it is common for the character height to be equal to or a little larger than the distance from the bottom of a lower case g to the top of an upper case M. The character height is also called the "em height".
Font internal leading is the space above typical capital latin letters that is reserved for diacritical marks like the ring above the A in the UNICODE "LATIN LETTER A WITH RING" U+00C5 glyph (Angstrom symbol).
const ON_wString ON_Font::PostScriptName | ( | ) | const |
Returns: ON_Font::PostScriptName(ON_Font::NameLocale::LocalizedFirst)
const ON_wString ON_Font::PostScriptName | ( | ON_Font::NameLocale | name_locale | ) | const |
Returns: The font's PostScript name. Remarks: The PostScript name is not always unique for each face. For example, OpenType variable fonts like Windows 10 Bahnschrift have "Bahnschrift" as the PostScript name for at least 10 different Bahnschrift faces.
Platform equivalents: Apple: = CTFontCopyPostScriptName(...) / NSFont.fontName Windows: = IDWriteFont.GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME,...)
const wchar_t* ON_Font::PostScriptNameAsPointer | ( | ) | const |
Returns: A pointer for immediate use in formatted printing as in FormattedPrint(L"PostScript name = \"&ls"
",font.PostScriptNameAsPointer()); Remarks: WARNING: Do not save this pointer for later use. It points to memory in a dynamic string.
const ON_wString ON_Font::QuartetDescription | ( | ) | const |
Description: Get a string like "Arial (Regular)" that describes this font's quartet. Returns: quartet name + (face)
ON_FontFaceQuartet::Member ON_Font::QuartetFaceMember | ( | ) | const |
Returns: If known, this font's quartet face (regular, bold, italic, bold-italic). Otherwise ON_FontFaceQuartet::Member::Unset Remarks: For Windows installed fonts, the LOGFONT partition determines the quartet face. On Apple platforms, opennurbs uses a table for common fonts and leaves the rest unset. When unset, this is the best way to determine which quartet member this font represents. In all cases, the absolute weight or the ON_Font.IsBold() is unreliable and should be avoided at all costs.
const ON_wString ON_Font::QuartetName | ( | ) | const |
Returns: Name of the quartet for this font. See ON_FontFaceQuartet for more details.
const ON_wString ON_Font::QuartetName | ( | ON_Font::NameLocale | name_locale | ) | const |
Returns: Name of the quartet for this font. See ON_FontFaceQuartet for more details.
bool ON_Font::Read | ( | ON_BinaryArchive & | ) |
restore definition from binary archive
bool ON_Font::ReadV5 | ( | ON_BinaryArchive & | , |
int * | V5_font_index, | ||
ON_UUID * | V5_font_id | ||
) |
V6 separated the V5 ON_Font into ON_TextStyle and ON_Font.
const ON_wString ON_Font::RichTextFontName | ( | ) | const |
Returns: ON_Font::RichTextFontName(this,false); Remarks: For Windows installed fonts, this is identical to the Windows LOGFONT name. For Apple platforms and rich text quartet names do not play nicely together.
|
static |
Parameters: font - [in] bDefaultIfEmpty - [in] If true and font is nullptr or has empty names, then the rich text font name for ON_Font::Default is returned, Returns: Font name to use in rich text file fonttbl sections. {\fonttbl...{\fN <RichTextFontName>;}...}
|
static |
|
static |
|
static |
|
static |
|
static |
unsigned int ON_Font::RuntimeSerialNumber | ( | ) | const |
Returns: 0: This is not a managed font. 1: This is the managed font ON_Font::Default. >= 2: This is a managed font other than ON_Font::Default. Remark: For managed fonts other than ON_Font::Default, the value of RuntimeSerialNumber() typically varies between instances of the same application. Different platforms and application versions may use different font faces for ON_Font::Default. If an ON_Font is a managed font, then RuntimeSerialNumber() and ManagedFontSerialNumber() are identical. If an ON_Font is not a managed font, then RuntimeSerialNumber() is zero.
bool ON_Font::SetAppleFontWeightTrait | ( | double | apple_font_weight_trait | ) |
Description: Don't use this old function. Higher quality font information is created by SetFromAppleFont() and SetFromWindowsDWriteFont(). NOTE WELL: Changing the weight requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
bool ON_Font::SetAppleWeightOfFont | ( | int | apple_weight_of_font | ) |
Description: Don't use this old function. Higher quality font information is created by SetFromAppleFont() and SetFromWindowsDWriteFont(). NOTE WELL: Changing the weight requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
|
static |
bool ON_Font::SetFamilyName | ( | const wchar_t * | family_name | ) |
Parameters: family_name - [in] The font family name.
This a name like "Arial". It is NOT a name like ArialMT, Arial-..., "Arial Black", "Arial Narrow", ... Generally, family names do NOT contain word that specify weight (Bold, Light, Heavy, ...), width (Medium, Condensed, ...), or slope (Oblique, Italic, Upright). Generally, family names do NOT contain hyphens (like thos in PostScript names).
Apple: = CTFontCopyFamilyName() / NSFont.familyName Windows: = IDWriteFontFamily.GetFamilyNames() NOTE WELL: GDI LOGFONT.lfFaceName is NOT a font family name.
https://blogs.msdn.microsoft.com/text/2009/04/15/introducing-the-directwrite-font-system/
bool ON_Font::SetFontCharacteristics | ( | const wchar_t * | gdi_logfont_name, |
bool | bBold, | ||
bool | bItalic, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) |
Description: Create a font with a specified facename and properties. Parameters: gdi_logfont_name - [in] Windows LOGFONT.lfFaceName. bBold - [in] True for a bold version of the font. bItalic - [in] True for an italic version of the font. Returns: True if the font characteristics were valid and set on the font.
bool ON_Font::SetFontCharacteristics | ( | const wchar_t * | gdi_logfont_name, |
ON_Font::Weight | font_weight, | ||
ON_Font::Style | font_style, | ||
ON_Font::Stretch | font_stretch, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) |
Description: Set the font's face name and characteristics. Parameters: gdi_logfont_name - [in] Windows LOGFONT.lfFaceName value. Returns: True if the font characteristics were valid and set on the font.
bool ON_Font::SetFontCharacteristics | ( | const wchar_t * | gdi_logfont_name, |
ON_Font::Weight | font_weight, | ||
ON_Font::Style | font_style, | ||
ON_Font::Stretch | font_stretch, | ||
bool | bUnderlined, | ||
bool | bStrikethrough, | ||
double | linefeed_ratio, | ||
unsigned int | logfont_charset | ||
) |
bool ON_Font::SetFontCharacteristics | ( | double | point_size, |
const wchar_t * | gdi_logfont_name, | ||
bool | bBold, | ||
bool | bItalic, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) |
Description: Create a font with a specified facename and properties. Parameters: point_size - [in] If point_size > 0.0, then it specifies which size of font definition should be used. Otherwise the font size used for annotation text is used. For high quality fonts it is generally the case that different point sizes of the same font face have subtle differences in glyph design and are not simply scaled versions of a base glyph. face_name - [in] Windows LOGFONT.lfFaceName value. bBold - [in] True for a bold version of the font. bItalic - [in] True for an italic version of the font. Returns: True if the font characteristics were valid and set on the font.
bool ON_Font::SetFontCharacteristics | ( | double | point_size, |
const wchar_t * | gdi_logfont_name, | ||
ON_Font::Weight | font_weight, | ||
ON_Font::Style | font_style, | ||
ON_Font::Stretch | font_stretch, | ||
bool | bUnderlined, | ||
bool | bStrikethrough | ||
) |
bool ON_Font::SetFontCharacteristics | ( | double | point_size, |
const wchar_t * | gdi_logfont_name, | ||
ON_Font::Weight | font_weight, | ||
ON_Font::Style | font_style, | ||
ON_Font::Stretch | font_stretch, | ||
bool | bUnderlined, | ||
bool | bStrikethrough, | ||
double | linefeed_ratio, | ||
unsigned int | logfont_charset | ||
) |
bool ON_Font::SetFontCharacteristicsForExperts | ( | double | point_size, |
const ON_wString | postscript_name, | ||
const ON_wString | quartet_name, | ||
ON_FontFaceQuartet::Member | quartet_member, | ||
const ON_wString | family_name, | ||
const ON_wString | face_name, | ||
ON_Font::Weight | font_weight, | ||
ON_Font::Style | font_style, | ||
ON_Font::Stretch | font_stretch, | ||
bool | bUnderlined, | ||
bool | bStrikethrough, | ||
unsigned char | logfont_charset, | ||
int | windows_logfont_weight, | ||
double | apple_font_weight_trait, | ||
ON_PANOSE1 | panose1 | ||
) |
bool ON_Font::SetFontDescriptionForExperts | ( | const wchar_t * | ignored_parameter | ) |
bool ON_Font::SetFontFaceName | ( | const wchar_t * | windows_logfont_name | ) |
Description: This is a legacy function that traces it's heritage to Windows specific GDI LOGFONT code from 1995. Best to avoid it whenever possible. Ideally, use an Windows IDWriteFont or Apple CTFont to create an ON_Font that references an installed font. Less ideally, use a complete LOGFONT structure. Parameters: windows_logfont_name - [in] GDI LOGFONT.lfFaceName value. Note well: This is not the font "face name", not the font "family name", and not the font PostScript name. It is often a combination of the family name, an additional "GDI sub-family" name. Occasionally it includes some face weight and style attributes. Returns: True if the value was set.
void ON_Font::SetFontOrigin | ( | ON_Font::Origin | font_origin | ) |
bool ON_Font::SetFontStretch | ( | ON_Font::Stretch | font_stretch | ) |
Description: Don't use this old function. If you have a font and want a face in the same famliy with a different stretch, then call InstalledFamilyMemberWithWeightStretchStyle(nullptr,desired_stretch,unset).
NOTE WELL: Changing the stretch requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
bool ON_Font::SetFontStyle | ( | ON_Font::Style | font_style | ) |
Description: Don't use this old function. If you have a font and want a face in the same famliy with a different style, then call InstalledFamilyMemberWithWeightStretchStyle(nullptr,unset,desired_style).
NOTE WELL: Changing the style requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
bool ON_Font::SetFontWeight | ( | ON_Font::Weight | font_weight | ) |
Description: Don't use this old function. If you have a font and want a face in the same famliy with a different weight, then call InstalledFamilyMemberWithWeightStretchStyle(desired_weight,unset,unset).
NOTE WELL: Changing the weight requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
bool ON_Font::SetFromAppleFontName | ( | const wchar_t * | postscript_name | ) |
Parameters: postscript_name - [in] From CTFontCopyPostScriptName(...) / NSFont.fontName Remarks: The "Apple Font Name" is the PostScript font name in the Mac OS "Font Book" application and in some other Apple documentation. It is CTFontCopyPostScriptName(...) / NSFont.fontName.
bool ON_Font::SetFromAppleFontName | ( | const wchar_t * | postscript_name, |
double | point_size | ||
) |
Parameters: postscript_name - [in] From CTFontCopyPostScriptName(...) / NSFont.fontName point_size - [in] Pass 0.0 for annotation fonts Remarks: The "Apple Font Name" is the PostScript font name in the Mac OS "Font Book" application and in some other Apple documentation. It is CTFontCopyPostScriptName(...) / NSFont.fontName.
bool ON_Font::SetFromFontDescription | ( | const wchar_t * | font_description | ) |
bool ON_Font::SetFromFontDescription | ( | const wchar_t * | font_description, |
const wchar_t * | postscript_name | ||
) |
bool ON_Font::SetFromPostScriptName | ( | const wchar_t * | postscript_name | ) |
Description: Sets the ON_Font information from the platform font with the specified postscript_name. Parameters: postscript_name - [in] bAcceptPartialMatch - [in] If bAcceptPartialMatch is true, there is not a font on the device with a matching name, but there are fonts with names that have significant overlap, then the font with the best overlap is returned. For example if "Arial-Black" is not present and "Arial-BoldMT" is present, then ON_Font.SetFromPostScriptName(L"Arial-Black",true) will return the font with PostScript name "Arial-BoldMT". Returns: True if the font was set.
bool ON_Font::SetLogfontCharSet | ( | unsigned char | logfont_charset | ) |
void ON_Font::SetPANOSE1 | ( | ON_PANOSE1 | panose1 | ) |
bool ON_Font::SetPointSize | ( | double | point_size | ) |
Parameters: point_size - [in] font character height in point units.
Remarks: See the remarks section ON_Font::PointSize() for more information about point units and character height.
void ON_Font::SetSimulated | ( | bool | bSimulatedWeight, |
bool | bSimulatedStretch, | ||
bool | bSimulatedStyle, | ||
bool | bSimulatedOther | ||
) |
bool ON_Font::SetStrikethrough | ( | bool | bStrikethrough | ) |
bool ON_Font::SetUnderlined | ( | bool | bUnderlined | ) |
unsigned int ON_Font::SetUnsetProperties | ( | const ON_Font & | source, |
bool | bUpdateDescription | ||
) |
Description: If a propery is unset in this and set in source, then it is set to the source value. Parameters: source - [in] bUpdateDescription - [in] When in doubt, pass true. If bUpdateDescription is true and at least one property is changed, then the description is also updated. Returns: Number of changed properties.
bool ON_Font::SetWindowsLogfontName | ( | const wchar_t * | windows_logfont_name | ) |
Description: This is a legacy function that traces it's heritage to Windows specific GDI LOGFONT code from 1995. Best to avoid it whenever possible. Ideally, use an Windows IDWriteFont or Apple CTFont to create an ON_Font that references an installed font. Less ideally, use a complete LOGFONT structure. Parameters: windows_logfont_name - [in] GDI LOGFONT.lfFaceName value. Note well: This is not the font "face name", not the font "family name", and not the font PostScript name. It is often a combination of the family name, an additional "GDI sub-family" name. Occasionally it includes some face weight and style attributes. Returns: True if the value was set.
bool ON_Font::SetWindowsLogfontWeight | ( | int | windows_logfont_weight | ) |
Description: Don't use this old function. Higher quality font information is created by SetFromAppleFont() and SetFromWindowsDWriteFont(). NOTE WELL: Changing the weight requires updating the Family, Face, PostScript and Windows LOGFONT names as well.
bool ON_Font::SimulatedStretch | ( | ) | const |
Returns: often bold from normal
bool ON_Font::SimulatedStyle | ( | ) | const |
Returns: true if the style was simulated (typically italic from upright)
bool ON_Font::SimulatedWeight | ( | ) | const |
Returns: often bold from normal
|
static |
|
static |
const ON_Font* ON_Font::SubstituteFont | ( | ) | const |
Returns: If this font is a managed font that references a font that is not installed on this computer, then a pointer to the installed font that is the substitute for the missing font is returned. Otherwise nullptr is returned.
|
static |
Description: Tests InstalledFontList(). Parameters: text_log - [in] Summary of the test. If errors are detected, they are printed in error_log. Returns: true: Test passed - no errors detected. false: Test failed.
|
static |
|
static |
|
static |
|
static |
Parameters: apple_font_weight_trait - [in] Apple WeightTrait The valid value range is from -1.0 to 1.0. The value of 0.0 corresponds to the regular or medium font weight.
|
static |
Description: The correspondence between Apple "weight of font" values and ON_Font::Weight enum values is ON_Font::Weight::Thin = 1 ON_Font::Weight::Ultralight = 2 ON_Font::Weight::Light = 3 ON_Font::Weight::Normal = 4
ON_Font::Weight::Medium = 5 ON_Font::Weight::Semibold = 6 ON_Font::Weight::Bold = 7 ON_Font::Weight::Ultrabold = 8 ON_Font::Weight::Heavy = 9 Returns: The best ON_Font::Weight enum value for the Apple weight of font.
|
static |
Description: The correspondence between Windows LOGFONT lfWeight values and ON_Font::Weight enum values is
ON_Font::Weight::Thin = 100 ON_Font::Weight::Ultralight = 200 ON_Font::Weight::Light = 300 ON_Font::Weight::Normal = 400 ON_Font::Weight::Medium = 500 ON_Font::Weight::Semibold = 600 ON_Font::Weight::Bold = 700 ON_Font::Weight::Ultrabold = 800 ON_Font::Weight::Heavy = 900 Returns: The best ON_Font::Weight enum value for the Windows LOGFONT weight.
|
static |
|
static |
|
static |
|
static |
const ON_wString ON_Font::WidthWeightSlantDescription | ( | ) | const |
|
static |
|
static |
Parameters: face_name - [in]
GDI LOGFONT.lfFaceName value. Note well: This is not the font "face name" or the font "family name". It is typically a combination of the face name and "GDI sub-family" name and typically does not include words that identify face weight or face style. Returns: If the code is running on Windows: The appropriate value of LOGFONT.lfCharSet for the input facename. If the code is not running on Windows: ON_Font::WindowsConstants::logfont_default_charset.
const ON_wString ON_Font::WindowsLogfontName | ( | ) | const |
Returns: ON_Font::WindowsLogfontName(ON_Font::NameLocale::LocalizedFirst)
const ON_wString ON_Font::WindowsLogfontName | ( | ON_Font::NameLocale | name_locale | ) | const |
Returns: The font's Windows GDI LOGFONT.lfFaceName. Remarks: This name is preserved so Rhino can write early version files and so some old code can use Windows GDI tools. Every effort should be made to avoid using Windows LOGFONT lfFaceName.
const wchar_t* ON_Font::WindowsLogfontNameAsPointer | ( | ) | const |
Returns: A pointer for immediate use in formatted printing as in FormattedPrint(L"Windows LOGFONT.lfFaceName[] = \"&ls"
",font.WindowsLogfontNameAsPointer()); Remarks: WARNING: Do not save this pointer for later use. It points to memory in a dynamic string.
int ON_Font::WindowsLogfontWeight | ( | ) | const |
|
static |
Description: The correspondence between Windows LOGFONT lfWeight values and ON_Font::Weight enum values is ON_Font::Weight::Thin = 100 LOGFONT lfWeight ON_Font::Weight::Ultralight = 200 LOGFONT lfWeight ON_Font::Weight::Light = 300 LOGFONT lfWeight ON_Font::Weight::Normal = 400 LOGFONT lfWeight ON_Font::Weight::Medium = 500 LOGFONT lfWeight ON_Font::Weight::Semibold = 600 LOGFONT lfWeight ON_Font::Weight::Bold = 700 LOGFONT lfWeight ON_Font::Weight::Ultrabold = 800 LOGFONT lfWeight ON_Font::Weight::Heavy = 900 LOGFONT lfWeight Returns: The Windows LOGFONT lfWeight value that corresponds to the ON_Font::Weight enum value.
bool ON_Font::Write | ( | ON_BinaryArchive & | ) | const |
serialize definition to binary archive
bool ON_Font::WriteV5 | ( | int | V5_font_index, |
ON_UUID | V5_font_id, | ||
ON_BinaryArchive & | |||
) | const |
V6 separated the V5 ON_Font into ON_TextStyle and ON_Font.
|
friend |
|
friend |
|
friend |
|
static |
ON_Font::Default depends on the platform. Arial on Windows Helvetica Neue on Mac OS
|
static |
ON_Font::Unset has unset face name and platform font name.