Reuse wxListCtrl::SetTextColour() instead of calling ListView_SetTextColor()
from wxListCtrl::SetForegroundColour().
This ensures that the two functions behave consistently, e.g. they now both
use palette-relative colour instead of a raw RGB value in the case of the
latter method as before. This probably doesn't change anything in practice
nowadays.
Do the same thing for tif_win32.c as f995dfcc20
did for tif_unix.c, i.e. use a union for casting between HANDLEs and ints to
avoid compiler warnings which were given for the explicit casts before.
At the very least, this avoids tons of gcc warnings about implicit conversions
from float to int and it could also be more correct if the coordinates can
really be fractional.
Use wide-char versions of debug help functions if available, falling back to
the narrow char ones otherwise.
Also improve 64 bit support by using 64 bit versions of the functions if
available as well.
Closes#15138.
The list of loaded dynamic libraries gets included in the debug report, so it
seems logical to test this function independently in this sample to allow
checking whether it works correctly without having to generate a debug report
first.
This test was useful to verify that we don't need a __try/__catch block around
the code processing WM_TIMER as it's not called from the kernel and so doesn't
suffer from the same problem as WM_PAINT, i.e. exceptions happening inside
wxEVT_TIMER handlers are caught without problems.
See #16656.
Don't let unhandled Win32 (i.e. structured) exceptions escape from wxWndProc()
as they can just disappear into thin air when running under WOW64 as 32 bit
exceptions can't propagate through 64 bit kernel. So catch them immediately
and pass them to the global handler while we have the chance to do it, as
we're never going to get it in the outer __try/__catch block in wxEntry() in
src/msw/main.cpp.
In particular, this allows to catch crashes in wxEVT_PAINT handlers, such as
the one in debughlp sample, again.
Closes#16656.
Attach the hosts file under all platforms to the debug report: this makes more
sense the hosts file could be potentially useful, unlike autoexec.bat and
/etc/motd that were used before, is also consistent between the platforms and,
finally, avoids the error due to autoexec.bat not existing any more in the
modern Windows versions.
Closes#16655.
This is a modified version of the patch from Mozilla (see
https://hg.mozilla.org/releases/mozilla-esr31/rev/2f3e78643f5c) which was also
applied to Chromium. This version prefers to use the buffer of the correct
size instead of just returning an out-of-memory error if the size needed is
relatively (but not extraordinarily so, e.g. just slightly more than 64KB in
32 bit builds) big.
This method doesn't really have to be virtual and this change will allow to
backport the commit adding wxIconizeEvent generation to 3.0 branch.
See #16718.
Explicitly disable rich text content and automatic quotation marks replacement
in normal multiline text controls to make them behave closer to single line
ones and also multiline ones on other platforms.
See #16805.
For such controls (e.g. wxButton, wxChoice, wxGauge), their initial position
was different from the one specified when creating them, even though calling
SetPosition() later did position them at exactly the position passed as
argument.
See #16780.
Try to show as much useful information as possible for the available width,
notably show the time fully, including seconds, which was never done before.
Also add a date column to the dataview sample to allow seeing how this works
in practice.
See #16640.
Controls with wxTE_PASSWORD style didn't send wxEVT_TEXT_ENTER even if they
also had wxTE_PROCESS_ENTER. Fix this by checking for the latter style before
mapping the enter presses to default button activation.
See #14930.
Contrary to an old comment, using it seems to work, while using
secondarySelectedControlColor results in incorrect appearance, different from
the other disabled controls and, worse, makes the labels unreadable as their
colour is too close to that of the background inside nested panels.
See #10524.
If creating a sound object fails, delete it to ensure that it is recreated
later.
This fixes a minor bug: previously, if an invalid file was used as sound file,
only the first attempt to play it resulted in an error and all the subsequent
ones were just silently ignored. Now every attempt to play an invalid file
results in an error message, as expected.
Don't pretend that we created wxSound object successfully without actually
doing it: this means that now passing an invalid (e.g. non-existent or using
wrong format) file to wxSound::Create()/ctor will return false/result in
IsOk() returning false later, just as in the other ports.
It also means that playing a successfully created wxSound object won't give
any error messages, as unexpectedly happened before.
wxPG_NULL_BITMAP macro is not useful because is used only once. In the rest of wxPG code wxNullBitmap is used explicitly many times so for the sake of consistency we can resign from using this macro.
Document that the current value of the control is adjusted if it doesn't lie
in the newly set range and add a unit test to check for this, now that it
actually passes under all platforms, after the previous commits.
Ensure that the current value remains between the lower and upper range
boundaries in the generic implementation, as it was already done by the MSW
one.
If the old value didn't lie inside the new range, it was changed by the native
control internally but the value stored by wxDatePickerCtrl itself remained
unchanged, resulting in asserts later when the mismatch between them was
detected.
Closes#13189.
This parameter is a face name, not a family name, and should be handled as
such, it was totally broken before due to a lot of confusion between face
names and family names in the code.
Closes#4715.
This fixes the sample compilation with default configuration when using MinGW
as it uses wxUSE_GRAPHICS_CONTEXT=0 by default and so wxUSE_ACTIVITYINDICATOR
is turned off by default for it too.
Correctly declare SHStrDupW() as always producing a wide char string on output
and pass a wide string to wxStrlcpy() using a wide char buffer.
Closes#17033.
This helps to detect the situation when HTML tag handlers are not linked in at
all, as it can happen with MSVC when using static libraries, as this doesn't
prevent wxHTML from parsing HTML, it just doesn't render it correctly at all
and it can be difficult to understand why exactly does this happen, so try to
detect this situation and provide a hint.