This is needed for translucency effects, desktop background images
changing the toplevel window background tint.
Also don't erase background when no background color is specified.
Closes#26301.
Add fields for the information about the distribution this one is based
on to wxLinuxDistributionInfo and add them wxGetOsDescription() if
available/applicable.
Closes#26641.
Don't try allocating arbitrarily large amounts of memory for the
extended header in wxTarInputStream and impose a very big but still
reasonable enough to not result in out of memory condition size for it
by default.
Allow changing this size via the newly added SetMaxExtendedHeaderSize()
function for the applications that want to handle files with even bigger
header or, on the contrary, want to avoid allocating even that much.
This should fix running out of memory in OSS-Fuzz runs using the fuzzer
for this class.
Closes#26588.
Closes#26607.
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
This was done manually in 9864777203 (Upgrade to Doxygen 1.15.0,
2026-05-05) but the changes were lost after regeneration, so add an
override for this function documentation to the generating script itself
to ensure that they're preserved.
This also has the nice side effect of generating a better comment in the
header.
See #26431.
Move colour settings from Create() into a new function UpdateColours(),
which gets called from Create() and also upon system colour change.
Closes#26633.
This ensures that they are always initialized, even when the default
ctor is used, which wasn't the case before for m_help_button_hovered
which was never set in this case, resulting in UBSAN errors when running
the ribbon sample.
These accessors for the frozen row and column label sub-windows were
missing from the public API even though the equivalent data cell windows
(GetFrozenRowGridWindow/GetFrozenColGridWindow) are already public.
Without them it is impossible to bind events (e.g. EVT_MOTION) to the
frozen label strips from outside the wxGrid implementation.
Closes#26617.
Using the wxDC origin to implement scrolled drawing can require very large
origin offsets, which can exceed Cairo coordinate limits (2^23), and therefore
currently wxGTK3 limits as well. Managing the scroll offsets turns out to be
pretty simple in this case, avoiding any coordinate limitations.
See #25365
Replacing the existing global UpdateSizerOnDPIChange() with a member
function will allow accessing private wxSizer variables in it (see the
next commit) and making it virtual will allow overriding it in the
derived classes to update more fields on DPI change.
No real changes yet.
This commit is best viewed with Git --color-moved option.
The old class used incorrect const qualifiers on its member functions:
saving function typically modifies the object being saved into, and so
must not be const, while loading function should be const, but the old
class reversed this.
Do it right this time in the new GeometryStore class and keep the old
class for compatibility only.
See #26602.
Reading from a truncated stream returned values built from partially
or completely uninitialised buffers, e.g. ReadString() decoded the
unread tail of its temporary buffer and the fixed size readers returned
whatever happened to be on the stack. Check that all the requested bytes
were actually read and, if not, mark the input stream as being in error
and return an empty/zero value instead of silently wrong data.
Closes#26600.
Disable changes of d32c574141 (Update AUI layout on DPI change,
2026-06-01) for the platforms with wxHAS_DPI_INDEPENDENT_PIXELS, i.e.
wxGTK and wxOSX, because it's not just unnecessary but wrong to scale
layout by DPI scale factor there.
This function became unreferenced in 2158f4d798 (moved all wxDialog
event handlers to wxDialogBase to avoid code duplication (sixplication?)
among ports[...], 2006-08-19).
Closes#26594.
Avoid overwriting custom colours upon switching into or out of dark
mode.
The text colour is now the same thing as the foreground colour, as with
wxGenericListCtrl.
Closes#26584.
When an Edge-based wxWebView is a child of a more complex control and
that control is hidden and then shown again, artifacts from the old
window will appear in the web view window.
Fix this by forcing a repaint, in a non-trivial way because the native
window optimizes away most attempts to do it, whenever the window is
shown.
Closes#26566.
We don't need wxUniv wxWindow deriving from wxWindowMSW in that build
configuration here, just wxWindowMSW is enough and avoids the need to
cast wxWindowMSW pointers to wxWindow ones in wxUniv/MSW build.
This function is more convenient to use in MSW-specific code than
GetWindowBorderSize() as it returns the size of a single border and so
doesn't require the caller to divide the return value by 2.
No real changes.
See #26571.
This is similar to WinStruct<> but initializes dwSize and not cbSize
struct member.
In the future we should auto-detect the xxSize existence in WinStruct
using either SFINAE or, preferably, concepts, but for now keep things
simple.
Add HDC parameter to ::GetThemePartSize() wrappers and also add wrappers
for ::GetThemeMargins() and ::GetThemeFont().
The net effect is a small simplification of the task dialog code and
checking and logging of errors when calling these functions.
Reuse the already existing code in darkmode.cpp by extracting it into
SetTheme() function and call it from task dialog dark mode code.
Also add a helper wxHasRealDarkTheme() function to make the code more
readable.