Return wxFONTFAMILY_DEFAULT, not UNKNOWN, from wxFont::GetFamily().

Although returning wxFONTFAMILY_UNKNOWN when the font family is not recognized
makes more sense, it breaks a lot of existing code including all the
font-related code generated by DialogBlocks, so prefer to return
wxFONTFAMILY_DEFAULT instead -- which can't be confused for a valid font
family neither but can be passed to wxFont ctor or SetFamily() without
problems.

To ensure that this behaviour is correctly implemented by all ports, rename
the existing wxFont::GetFamily() to DoGetFamily() and call the new method from
wxFontBase::GetFamily() which adjusts the return value if needed.

Closes #12330.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-09-29 13:46:09 +00:00
parent 4a21ea9d9e
commit 59b7da02ff
25 changed files with 55 additions and 53 deletions

View File

@@ -36,11 +36,9 @@ enum wxFontFamily
/// See also wxFont::IsFixedWidth() for an easy way to test for monospace property.
wxFONTFAMILY_TELETYPE = wxTELETYPE,
/// Returned by wxFont::GetFamily() when the face name of the font cannot
/// be classified into one of the previous wxFontFamily values.
wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX,
wxFONTFAMILY_MAX
/// Invalid font family value, returned by wxFont::GetFamily() when the
/// font is invalid for example.
wxFONTFAMILY_UNKNOWN
};
/**
@@ -422,16 +420,17 @@ public:
virtual wxString GetFaceName() const;
/**
Gets the font family.
Gets the font family if possible.
As described in ::wxFontFamily docs the returned value acts as a rough,
basic classification of the main font properties (look, spacing).
If the current font face name is not recognized by wxFont or by the
underlying system, @c wxFONTFAMILY_UNKNOWN is returned.
underlying system, @c wxFONTFAMILY_DEFAULT is returned.
Note that currently this function is rather unreliable (@c wxFONTFAMILY_UNKNOWN
is returned in too many cases) and not particularly useful.
Font families mostly make sense only for font creation; see SetFamily().
Note that currently this function is not very precise and so not
particularly useful. Font families mostly make sense only for font
creation, see SetFamily().
@see SetFamily()
*/