wxDateTimeChristianHolidays was tested with a wxDateTimeUSCatholicFeasts
already existing and taking precedence. I.e. the tests for Christmas in
ChristianHolidays actually tested (again) the USCatholicFeasts
implementation.
This reveals an off-by-one bug in wxDateTimeChristianHolidays::DoIsHoliday(),
which doesn't use the enum symbol for month, and declares Christmas to be
on the 25th day of the 13th month.
Further, this raises the question whether it is a bad idea to have the
authority implementations in a header. Fixing bugs like this would
require recompiling the application, instead of simply updating the
DLL/dylib.
The changes of 0dfe37a643 (Add wxMSW-specific wxBitmapBundle accessors
to wxMenuItem, 2025-08-18) broke this as wxMSW-specific function taking
bool hid the base class function.
Just make the wxMSW function compatible with the base class one by
defaulting "bChecked" to false. Alternatively, we could use using
declaration to bring the base class function in scope, but this doesn't
seem to have any advantages and this change seems more clear.
In any case, add a unit test checking that the calls to these functions
at least compile.
See #25685, #25705.
Closes#25719.
This allows to reintroduce wxPGPropertyFlags enum compatible with its
3.2 definition.
The new name for the scoped enum is not great because it less precise
but is shorter, which is more convenient, and it seems difficult to find
something else sufficiently different from wxPGPropertyFlags as to not
provoke confusion with it.
Changing the table shouldn't make the cell (0, 0) current if we hadn't
had any current cell before, this was unintentional side effect of
e570d85164 (Ensure current cell remains valid when wxGrid table changes,
2023-09-15) which resulted in an unwanted wxEVT_GRID_SELECT_CELL event
when creating the grid.
Fix this by only calling UpdateCurrentCellOnRedim() if we have a valid
current cell to update.
See #23751.
Closes#25498.
During the switch from copy to move ctor of wxListCtrl in a5777cdcbd
(Make wxListItemData movable and not copyable, 2023-01-19) copying the
item text was simply lost, resulting in items forgetting their text when
they were moved internally by the vector in which they are stored, which
could result in e.g. their text becoming empty when a new column was
appended.
Fix this by adding the missing text (and also image and user data) field
to the move ctor and move assignment operator.
Closes#25519.
We still use some macros to avoid having to define the same test cases
for wxListCtrl and wxListView, but the code structure is much more
understandable and explicit now.
No changes in behaviour.
This should logically be part of the parent commit as it tests (mostly)
for the problem fixed by it, but do it separately because the parent
commit will need to be backported to 3.2, while this one won't be (as it
uses C++11).
See #25608.
Add wxIMAGE_OPTION_PNG_DESCRIPTION which is filled with the contents of
the (first) "Description" chunk from the PNG file when loading it and
saved into such (iTXt) chunk when saving.
Fixes#25556.
Closes#25565.
This whitespace was annoying as it was getting automatically removed by
the contributors working with the editors respecting the settings in our
own .editorconfig and so resulting in patches that mixed significant and
whitespace-only changes.
Remove it once again (this has been already done before in 8fbca5cb70
(Remove all trailing spaces, 2019-01-30) but apparently only partially)
to avoid the problem.
This makes the code more readable and there should be no reason not to
use UTF-8 in string literals any longer.
Also replace wxHAVE_U_ESCAPE (all still supported compilers have it)
with wxMUST_USE_U_ESCAPE, which is only set for MSVS 2015 currently and
will be removed when we drop support for it and can use literal Unicode
characters in the wide strings everywhere.
This was broken in 4cc13e1099 (Use vector in wxMSW wxAcceleratorTable
code, 2023-05-15), make it work again now and add a unit test ensuring
that it doesn't get broken again.
Also document the current behaviour.
Closes#25517.
Update the functions dealing with buttons to take into account the extra
sizer added in cd07eabd54 (Add support for "Do not show this again"
checkbox to wxInfoBar, 2025-05-12) which broke the existing logic.
See #25394, #25461.
Closes#25489.
Closes#25493.
Don't interpret percent signs in the string as format specifiers if
there are no parameters.
This makes using wxLogWhatever(s) safe with arbitrary string "s" safe:
previously, if it contained any "%s" inside it, this could crash, but
now it just logs literal "%s".
TestTimeTicks() checks were skipped for test dates with gmticks == -1,
ensure that these tests really run by providing the expected ticks
values.
See #24442.
Add --with-catch2 configure option which can be used with "sys" value to
use the system version of CATCH2.
By default, still use the built-in version, however, as it doesn't have
any real drawbacks.
Closes#23654.
Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
This fixes a typo resulting in build failure from the recent b9726c02d5
(Disable sporadically failing test in MSVS 2019 CI build, 2025-05-09).
See #25056.