Fix multiple issues in IPC using TCP sockets.
This is a substantial rewrite of the old code which brings improved
error detection, MT-safety and many other fixes.
There is also a much better test suite exercising this code now.
See #24858.
This avoids gcc -Wsuggest-override for it.
Always define GetXVisualInfo() in wxGTK wxApp, even for GTK 3, to ensure
that this virtual function can be overridden in wxGLApp: this is simpler
than overriding it only conditionally there.
For wxTextCtrl, draw a themed border consistent with how the control
looks in light mode, and consistent with the WinUI 3 TextBox control in
dark mode. A blue line appears at the bottom when the control has the
focus.
Closes#26745.
Extract existing code solving the same problem from wxListCtrl code into
a reusable wxMSWImpl::PaintScrollBarCorner() function and use it in
wxTreeCtrl too.
Fixes#26737.
Closes#26743.
This was dangerous because it allowed the code accidentally
dereferencing wxColour to silently compile -- and do a completely wrong
thing.
Just add a function returning GdkRGBA explicitly and use it.
See #26751.
This avoids the chronic problem of wxSysColourChangedEvent handlers
inadvertently failing to call Skip() and thus blocking important internal
processing, including propagating to child windows.
Also update the coefficient in wxGetSRGB() to use the correct value,
quoting the linked document:
Note 2
Before May 2021 the value of 0.04045 in the definition was
different (0.03928). It was taken from an older version of the
specification and has been updated. It has no practical effect
on the calculations in the context of these guidelines.
Don't duplicate the same code using different names in wxAUI and
wxRibbon, put it in a header which can be included from both.
No real changes, this is a pure refactoring.
It was int because the initial plan was to add other flags that could be
combined with the existing ones, but now that there are 3 possible
values combining the elements of this enum doesn't really make sense any
more.
With these changes, wxApp::SetAppearance() and
wxApp::MSWEnableDarkMode() can change the dark/light mode at any time.
They can be called before or after windows are created, and can be
called more than once.
The widgets sample has new menu commands to demonstrate this.
Closes#26734.
Fix wxGrid for system color change for colors that were assigned
defaults in Init(), and therefore did not update. These colors are
now determined as needed during drawing.
The grid sample "Colours" menu gets additional commands so you can set
all these colors.
Closes#26729.
Update the button text colour of this button, used by wxFontPickerCtrl
under Windows, upon system colour change event (which also covers
switching between light and dark appearances), unless the user selected
a colour.
Closes#26667.
Replaces XPM images with actual drawing commands that scale well, look
less cluttered, don't look pixelated, and match the ribbons theme.
Closes#26663.
Update the background colour of the generic wxSearchCtrl upon
wxSysColourChangedEvent to notably fix its appearance after switching
between light and dark modes in wxMSW.
Closes#26704.
Simply use Win32 FindWindowEx() instead of enumerating child windows
with a loop.
Also extract this code into a reusable function.
No real changes yet.
See #26685.
Instead of always calling this function inside an assert-like macro,
just assert in the function itself if the pane settings are
inconsistent.
This allows to give a more precise message, e.g. we can now explain what
is wrong with the center pane settings if any of the dock-related values
are non-zero.
See #26679.
Remember the editor instance used for the shown edit control and use it
for visibility checks, painting, hiding, and saving. This keeps the edit
control lifetime independent of later attribute changes, so replacing a
cell or column editor while editing does not make wxGrid hide or save
through the wrong editor.
Add a regression covering replacement of a column bool editor while its
cell is being edited.
Fixes#21986.
Closes#26670.
Update the text and background colours in wxGrid upon wxSysColourChangedEvent. Moved the colour setting code from Create() into a new function UpdateColours(), and call that from Create() and upon colour change event. To avoid overwriting custom colours, added flag members to track whether custom colours have been set.
Deleted the code that was disabled by #if _USE_VISATTR. That code has been inactive since 2004.
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.