Commit Graph

35 Commits

Author SHA1 Message Date
chris2oph
dd306cac77 Various wxFont fixes in wxQt
Implement point/pixel size accessors correctly.

Implement support for strike-through fonts.

Also implement DoSetNativeFontInfo() for wxQt.

Make wxFont unit test pass by accounting for Qt-specific aspects.

Closes https://github.com/wxWidgets/wxWidgets/pull/1113
2019-01-14 23:39:02 +01:00
Vadim Zeitlin
b1dcdb864c Add simple unit tests for the new wxFont features
Check that calling SetFractionalPointSize() and SetNumericWeight() at
the very least results in the expected return values from
GetFractionalPointSize() and GetNumericWeight().
2018-09-17 15:24:42 +02:00
Vadim Zeitlin
08e5acedcc Centralize backwards compatibility code in wxFont
Add wxFontBase::AccountForCompatValues() and use it in all ports instead
of redoing the same comparison with wxDEFAULT in all of them.

This is done not so much to avoid the code duplication, which was
minimal anyhow, but to make the code more clear and make it easier to
remove it from all ports at once in the bright (but remote) future when
we don't need these compatibility hacks any more.

Also document that wxDEFAULT and wxNORMAL are only handled specially in
the old-style ctor taking the individual font components and not the new
one using wxFontInfo and extend the unit test to check this.
2018-09-07 03:08:42 +02:00
Vadim Zeitlin
b84db46feb Add unit test for wxFont::GetStyle() and special style values
Similarly to the previous commit, verify that wxNORMAL, wxITALIC and
wxSLANT still work for compatibility (note the latter is synonymous with
wxITALIC under MSW).
2018-09-06 03:13:23 +02:00
Vadim Zeitlin
5bf920775a Add unit test for wxFont::GetWeight() and special weight values
Verify that using wxNORMAL, wxBOLD and wxLIGHT still works, as they must
do for compatibility reasons.
2018-09-06 03:13:23 +02:00
Vadim Zeitlin
de3cc614b2 Add unit test for wxFont::GetPointSize() and special sizes
Verify that using wxDEFAULT works to create a font of default size, for
compatibility reasons, and that using -1 works in the same way too.
2018-09-06 03:13:23 +02:00
Vadim Zeitlin
7cc016b5fa Remove CppUnit boilerplate from wxFont unit test
No real changes, just remove the test case class which is not at all
necessary in this unit test.
2018-09-06 03:13:23 +02:00
Vadim Zeitlin
76aad86cfb Remove unnecessary wxUSE_FONTMAP guard from wxFont unit test
This test doesn't require wxFontMapper.
2018-09-06 03:13:23 +02:00
Vadim Zeitlin
a68cb585cd Consistently use "unsigned" and "%u" in font unit test
Don't mix "size_t" and "unsigned" and don't use "%lu" for printing
"size_t" values as this doesn't work under Win64 where sizeof(size_t) is
8 while sizeof(unsigned long) is still just 4.
2017-11-24 22:55:11 +01:00
Vadim Zeitlin
e70fc11ef1 Replace CppUnit with Catch for unit tests
Drop the legacy CppUnit testing framework used for the unit tests.
Replacing it with Catch has the advantage of not requiring CppUnit
libraries to be installed on the system in order to be able to run
tests (Catch is header-only and a copy of it is now included in the
main repository itself) and, in the future, of being able to write
the tests in a much more natural way.

For now, however, avoid changing the existing tests code as much as
[reasonably] possible to avoid introducing bugs in them and provide
the CppUnit compatibility macros in the new wx/catch_cppunit.h header
which allow to preserve the 99% of the existing code unchanged. Some
of the required changes are:

 - Decompose asserts using "a && b" conditions into multiple asserts
   checking "a" and "b" independently. This would have been better
   even with CppUnit (to know which part of condition exactly failed)
   and is required with Catch.

 - Use extra parentheses around such conditions when they can't be
   easily decomposed in the arrays test, due to the use of macros.
   This is not ideal from the point of view of messages given when
   the tests fail but will do for now.

 - Rewrite asserts using "a || b" as a combination of condition
   checks and assert macros. Again, this is better anyhow, and is
   required with Catch. Incidentally, this allowed to fix a bug in
   the "exec" unit test which didn't leave enough time for the new
   process to be launched before trying to kill it.

 - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros,
   our emulation of this macro can be used only once.

 - Provide string conversions using Catch-specific StringMaker for
   a couple of types.

 - Replace custom wxImage comparison with a Catch-specific matcher
   class.

 - Remove most of test running logic from test.cpp, in particular don't
   parse command line ourselves any longer but use Catch built-in
   command line parser. This is a source of a minor regression:
   previously, both "Foo" and "FooTestCase" could be used as the name of
   the test to run, but now only the latter is accepted.
2017-11-02 01:53:16 +01:00
Dimitri Schoolwerth
fe716b3c8e Fix 'not enough actual parameters for macro' warning
The macro wxGCC_WARNING_RESTORE is being used without a parameter which
MSVC warns about. Fix by passing the same parameter as when using
wxGCC_WARNING_SUPPRESS, namely deprecated-declarations.

Regression since b58c87db28.
2016-04-15 02:35:40 +00:00
Vadim Zeitlin
b58c87db28 Avoid gcc deprecation warnings for wxNORMAL in the tests
We use wxNORMAL intentionally to test for its support, so we're not interested
in deprecation warnings about it.
2016-02-26 14:36:01 +01:00
Dimitri Schoolwerth
9a517e572e Revert "Disable wxFont::SetStrikethrough() test under wxOSX."
Enable the test again because strike-through support has been available
under wxOSX for some time.

This reverts commit 9b1aeb4c93.
2015-05-22 03:28:07 +04:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
db65392b95 Disable a harmless deprecation MSVC warning for wxNORMAL in a test.
Explicitly disable the warning just for the code using wxNORMAL as the use of
this deprecated constant can't be avoided in the code which tests for its
support.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-03 12:47:32 +00:00
Vadim Zeitlin
b356d1d3c7 Add wxFont::GetBaseFont().
This can be used to "undo" the result of Bold() ,Underlined() or Italic()
methods and returns an unadorned version of the font.

Closes #11815.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-11 20:48:20 +00:00
Paul Cornett
967a94c91a remove WXWIN_COMPATIBILITY_2_6, add WXWIN_COMPATIBILITY_3_0
closes #15792

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-04 20:07:33 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
9b1aeb4c93 Disable wxFont::SetStrikethrough() test under wxOSX.
Strike through support is not available in wxFont under this platform, as
documented.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-15 01:32:00 +00:00
Vadim Zeitlin
e78209f6a8 Fix wxFont test compilation after wxFont(int flags) ctor removal.
Also mention this incompatible (since 2.9.4) change in the change log.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-30 11:13:21 +00:00
Vadim Zeitlin
a349dc1085 Handle underlined and strikethrough attributes in wxGTK native font info.
These attributes were not handled by wxFont::GetNativeFontInfoDesc() as it
only serialized the Pango font description which doesn't support them.

Fix this by handling these attributes explicitly and prepending them to the
Pango font string if necessary.

Closes #14559.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:17:12 +00:00
Vadim Zeitlin
cec8d6774a Add unit test verifying compilation of various wxFont ctors.
Check that various invocations of wxFont ctor at least compile to avoid
problems like the ones fixed by r70450.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-23 14:42:56 +00:00
Dimitri Schoolwerth
e3778b4d9c No code changes, fixed some typos.
Changed several occurrences of "it's" where "its" is meant, as well as a few other minor typos.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-30 10:57:04 +00:00
Vadim Zeitlin
aa6b8882a4 Correct wxFont::GetFamily() unit test to test for wxFONTFAMILY_DEFAULT.
GetFamily() returns wxFONTFAMILY_DEFAULT and not wxFONTFAMILY_UNKNOWN since
r65670.

Correct the test to handle wxFONTFAMILY_DEFAULT as allowed value.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-21 13:00:13 +00:00
Vadim Zeitlin
b7cb8553f3 Use "monospace" face name for all Unix systems, hopefully it should work.
This fixes failures of several build bot slaves (all running Debian or
Ubuntu) which were due to using "Fixed" under these Linux distributions.

Unfortunately "Fixed" didn't work as Pango doesn't seem to recognize it as a
valid face name. "DejaVu Sans" should probably work on most current Linux
systems but "Monospace" should hopefully be available on other Unix systems as
well.

We could also just take whatever wxFontEnumerator returns which should
probably be even more fool-proof.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-18 22:15:53 +00:00
Francesco Montorsi
23790a2a29 add wxGetLinuxDistributionInfo() and wxPlatformInfo::GetLinuxDistribution() functions; also add to wxPlatformInfo the GetOperatingSystemDescription(), GetDesktopEnvironment(), GetOperatingSystemDirectory() functions to group in the same class (wxPlatformInfo) all available platform-detection functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-02 13:01:41 +00:00
Vadim Zeitlin
541aafe2fa disable a test failing under wxGTK because of what appears to be a Pango limitation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-17 14:12:28 +00:00
Vadim Zeitlin
3f7c8a8762 use a different known good face name under non-MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-17 14:01:38 +00:00
Vadim Zeitlin
c56fc0dc30 correct test failures under MSW, it shouldn't assume that all predefined fonts have non-empty facenames; also simplified it by separating different tests in different functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-17 11:51:09 +00:00
Francesco Montorsi
aeecbca059 dump all font properties upon failure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-14 18:55:41 +00:00
Francesco Montorsi
6aafb94526 even more detailed info to debug buildslaves failures
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-13 18:34:27 +00:00
Francesco Montorsi
9b5e0a6dea provide more info when a check for native font [user] info fails
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-13 09:03:45 +00:00
Francesco Montorsi
6aea1e4a70 implement wxNativeFontInfo::SetFamily for wxGTK with the same logic used by wxMSW; remove the now useless m_family from wxGTK's wxFont implementation; better docs for many wxFont functions (don't use typeface term; use the 'face name' one instead) and wxFontFamily
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-12 22:53:26 +00:00
Francesco Montorsi
14a83cbf36 fix the FontTestCase::GetSet unit so that it passes under wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-25 12:49:04 +00:00
Francesco Montorsi
5b06a80f9f add a wxFont test unit (currently GetFamily and the Get/SetEncoding() bits are disabled because they fail on wxGTK -- need more investigation)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-18 15:32:28 +00:00