Ensure that the tests expecting the results with a point as decimal separator
really are done in C locale.
This should help the tests pass in (French) locale used by the MSW build bot
slaves.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also update the cached data if setlocale() was called explicitly instead of
using wxLocale to change the locale because at least under Unix systems
calling setlocale() changes the result of wxLocale::GetInfo() and so the
result returned by wxNumberFormatter::GetDecimalSeparator() and
GetThousandsSeparatorIfUsed() could be inconsistent with the locale being
really used.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Show more information in the assert failure message to try to understand why
is the unit test failing on the buildbot.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Surprisingly, MSVC 6 seems to be able to compile most of the code but chokes
on a wxCOMPILE_TIME_ASSERT involving an inherited typedef. As this assert is
not critical, simply disable it for this compiler.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Setting the locale in the ctor of the test object doesn't work because the
locale is changed by the other tests that run before this one, use the
initialization method provided by cppunit to change the locale instead, this
is somewhat wasteful but at least it does work, unlike the old version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Some TIFF images are not properly formed, for example having an extra channel marked as being unspecified data while they should be treated as being an alpha channel. Detect some of those cases so that these TIFF images now will have alpha.
Applied patch by gmeeker. Closes#12874.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Applied (modified) patch by troelsk. Also added a basic unit test for checking the frames of a saved animated GIF (a previous unit test already handles content of a GIF with a single frame).
Closes#8583.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add validators for integer and floating point numbers.
Add an example of their use to the validate sample as well as a new unit test
and documentation for them.
Use the new classes instead of wxTextValidator in wxGrid code.
Closes#12166.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Caching the decimal and thousands separators in wxNumberFormatter is a useful
performance optimization, however it can give wrong results if the locale
changed since the cached values were initialized. So remember the locale used
for the initialization and redo it if it changed. This should still be almost
as fast as the previous version but now also correct (still not MT-safe
though).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It seems to make sense to allow using it for formatting and parsing long long
values as well as it can be done trivially using almost the same code as for
long.
It would be nice to support long double in a similar way but we don't wrap
C99 strtold() right now so it wouldn't be as simple, leave it for later.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Instead of writing a rather unreadable "defined(wxLongLong_t) &&
!defined(wxLongLongIsLong)" expression every time we need to decide if a
function needs to be overloaded for both long and long long, add a new symbol
which can be tested directly.
No real changes in the code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxNumberFormatter formats and parses numbers with thousands separators.
Add the class itself as well as documentation and the unit test for it.
See #12166.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The modal dialogs are an important exception to the usual rules of dealing
with wxWindow-derived objects so mention them here too.
Closes#12880.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The hidden root item can't be collapsed so don't even try to do it as this
just results in an assert.
This is similar to the changes of r48097 in ExpandAllChildren().
Closes#12881.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add classes declarations to Doxygen-generated documentation. This doesn't
replace the real documentation but is better than nothing.
See #10232.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This function is not yet really implemented under all platforms but provide
the documentation for it hinting at how (and where) it works.
Closes#12873.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
At least in wxMSW the control must override HasTransparentBackground() to
return true if it really wants its background to be transparent, so do it in
wxHyperlinkCtrlBase to fix the background appearance when using the generic
implementation in wxMSW.
See #12271.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Create() method in a base class can't be implemented and actually shouldn't
even have been defined there in the first place.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxRTC functions now operate on the currently focused object, which by default is the whole buffer.
Up to three property commands are now shown on the context menu, depending on
available objects in the current hierarchy.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The code in wxHtmlParser supposed in many places that a '<' character must be
always followed by a '>' one and could create (and sometimes dereference)
invalid iterators if this wasn't the case resulting in asserts from MSVC debug
CRT and possibly crashes.
Fix this by ensuring that only valid iterators are used and add a trivial unit
test for wxHtmlParser which checks that it can parse invalid HTML without
crashing.
Closes#12869.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Get rid of characters not starting a tag immediately in the beginning of the
loop instead of putting the entire loop body inside an if statement. This
doesn't change anything (this becomes more apparent if the patch is viewed
with "ignore white space changes" option) except making the code easier to
read and modify.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Recently modified client data test added calls to SetClient{Object,Data}(-1)
and MSVC complained about them, suppress these warnings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The test for checkbox existence was inversed resulting in a guaranteed crash
when calling IsCheckBoxChecked() before showing the dialog.
Closes#12866.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66669 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
VC8+ give tons of deprecation warnings for the standard functions which are
usually suppressed by wx headers but they need to be included first for the
suppression to be effective. In the MFC sample they were not resulting in many
useless warnings.
Fix this by pre-defining _CRT_SECURE_NO_WARNINGS to suppress them in the
sample itself.
Also suppress a warning about WINVER being undefined.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
MFC needs the entry point to be wWinMainCRTStartup() in Unicode builds but the
bakefile-generated projects use the default WinMain() so the sample didn't
link in Unicode.
Fix this by providing WinMain() which simply forwards to wWinMainCRTStartup()
as this seems to work for all MSVC/CRT versions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The test for index validity should be done by the base class public methods
themselves so that the protected methods in the derived classes don't need to
do it because this allows to have the check in one place only and not in every
port-specific derived class and also because a protected method can reasonably
expect to be called with already validated parameters.
This makes it unnecessary to perform the same check in many derived classes
and fixes the problem with those that forgot to check for item validity at all
before (like wxGTK wxChoice).
Also add a unit test checking for the correct behaviour. Unfortunately we
don't have any way to test for the precise assert being triggered so the test
passed for wxGTK wxChoice even before in debug builds because the expected
assert was raised by wxArray::Item() but the code crashed in release build --
whereas now it doesn't any more.
Closes#12858.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use just "bool show" instead of "const bool show".
This fixes compilation for some compilers (notably OpenVMS one) broken since
r66612.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775