Don't tell people to build all the samples and demos because this takes
time and some of them are badly outdated. Do tell them to build and run
the minimal one to check that things work as intended.
Also remove links to the wiki from wxOSX instructions, there is not much
useful from non-archaeological point of view there.
It may be better than the default GetBestSize() result. Fixes best size
of wxStaticBox when children are narrower than label, and minimum size for
controls using a scrolled window, such as wxTreeCtrl.
It could (and did, albeit rarely) happen that we read only the first of
the couple events associated with a file rename and in this case the
code crashed due to dereferencing invalid iterator.
Ideal would be to delay sending the "renamed" event until we get the new
path, but for now just fix the crash by not using the invalid iterator.
Closes#24119.
Postpone the creation of the QStatusBar fields until the first call to
SetStatusText(). This is to account for any field control added by the
user and also to avoid having to call UpdateFields() multiple times.
wxSTB_ELLIPSIZE_XXX and wxSTB_SHOW_TIPS supports are also implemented now.
The statbar sample is also updated: The OnSize() handler is removed because
it doesn't do much. that is: it is defined to keep the bitmap centered in the
status bar field it occupies if it is resized. but this is already done by the
wxStaticBitmap control, at least under wxMSW, wxGTK3 and wxQt.
This is not necessary and, more importantly, results in a crash if you try
to recreate the status bar (which can be seen in the statbar example)
Also remove leftover QList declaration
A window that was iconized while hidden, then uniconized while still
hidden would fail to show uniconized. The reason is that Iconize(false)
failed to update m_showCmd. What determines whether that is needed is
not whether Windows considers the window iconized but whether wxWidgets
does.
This was previously fixed in ef40bc3dae (Fix uniconizing hidden top
level windows in wxMSW., 2012-08-05), see #14539, but was broken later
by 3518f1a7d8 (Use a single wxTopLevelWindow::m_showCmd flag in wxMSW,
2018-06-22), so fix it again.
Closes#24117.
This includes a static function to calculate Easter that can be used for
other authorities.
Document the wxDateTimeWorkDays and wxDateTimeHolidayAuthority classes.
Closes#24094.
This allows user codes to simply designate where their controls should
appear in the status bar without the need to handle wxEVT_SIZE
themselves.
They can still handle the event if the default positioning does not meet
their needs, but the new API is simpler and can be implemented for wxQt.
Closes#24092.
Without this change, using wxEL_ALLOW_NEW without wxEL_ALLOW_EDIT
resulted in an assertion failure, so fix it by turning wxEL_ALLOW_EDIT
too in this case: this makes sense because adding a new element is
"editing" too, and there doesn't seem to be any realistic scenario in
which new items can be added but the existing items can't be changed.
Closes#24099.
Closes#24100.
This was deleted for GTK3 in 80e2264373 (Fix wxBORDER_NONE handling for
wxTextCtrl under GTK+ 3, 2017-10-31), but there was no harm in keeping it,
and it actually helps with a transitory visual glitch when the widget is
created on a parent that is already showing.
See #24105
Don't say that the directory where the archives are unpacked shouldn't
contain anything else than include and lib directories, as it can/does
contain other files, such as wxwidgets.props.
Closes#24098.
Co-Authored-By: Bill Forster <billforsternz@gmail.com>
Fix wxBitmapBundle::FromSVG(), which renders incorrectly on GTK and add
wxHAS_PREMULTIPLIED_ALPHA to make the code dealing with alpha more clear
and correct.
See #24097.
Replace most 'neither' words introduced after 66916c74a3 (Fix double
negatives used with 'neither' in docs and comments, 2022-08-15) with
'either'.
All changes are to comments only.
Closes#24090.
The previous ToCDouble() function accepted leading spaces, a starting +
sign, and hex strings. std::from_chars() does not accept spaces or +,
and requires a special flag to convert hex strings, so handle this
manually to preserve the old behaviour of this function.
This is similar to the changes done for ToCULong() in #24022.
Closes#24089.
This fixes a crash when DoShowMultipleLogMessages() is called with
wxUSE_LOG_DIALOG set to 0. The code after the #else statement gets the
size of the wxArrayString but then instead of accessing that array, it
tried to access the m_aMessages array which is empty, resulting in a
crash in the C runtime. This commit simply gets the strings from the
correct array.
Closes#24087.
We need to use a native clip view for things to behave correctly under
this OS version, otherwise scrollbars can be overdrawn by the window
contents.
Closes#24067.
Closes#24073.
Use TIFFFlush() in wxTIFFHandler::SaveFile() in order to check for
success when saving TIFF images, as TIFFClose() doesn't have any error
code to do it.
Closes#23214.
Closes#24072.
This is more consistent with the conversion in the other direction, but
here we also fall back to UTF-8 if conversion fails as it seems better
than just losing the argument entirely.
Also make the conversion a bit more efficient by stealing the pointer
from wxCharBuffer instead of using strdup() to copy the string.
And do nothing in this function if the arguments had been already
initialized, as it will make it more convenient to call from other
places.
No real changes.
It was incorrectly called wxAppConsole::YieldFor() but the function was
moved from wxAppConsole to wxEventLoopBase back in dde19c2180 (second
part of #10320: move wxApp event handling functions to wxEventLoopBase
(in particular move Yield() functions); add backward compatible
redirections to wxApp; update docs; remove global lists wxPendingEvents
and wxPendingEventsLocker, 2009-02-15).
Closes#24095.
Some WMs initially report incorrect frame extents for the hint window,
then correct it to 0x0 later. This interacts badly with the deferred
show mechanism, causing the hint window height to be much too small.
Issues with TLW decoration sizes can be avoided by setting the client
size rather than the overall size.