Commit Graph
95 Commits
Author SHA1 Message Date
Steve CornettandVadim Zeitlin 828b5f87df Fix wxDataViewTreeCtrl expander style switching to light mode
Always apply theme "Explorer" upon switching to light mode, except for
the wxGauge, for which we still need to disable themes.

Closes #26838.
2026-08-16 17:17:30 +02:00
Steve CornettandVadim Zeitlin 4b2826661a Fix dark mode wxDataViewTreeCtrl expander size on DPI change
Do not specify a dark theme in wxRendererXP::GetExpanderSize() because
it may give incorrect result in high DPI: as we only need the size here,
using light theme (which always works) is good enough.

Fixes #26829.

Closes #26837.
2026-08-16 17:13:43 +02:00
Steve CornettandVadim Zeitlin 546966cfc7 Use native dark theme border for wxTextCtrl when possible in wxMSW
Using "DarkMode_DarkTheme" with wxTextCtrl results in a nicely looking
border with real native appearance, so use it when supported and only
fall back to our implementation otherwise.

Closes #26824.
2026-08-16 17:10:02 +02:00
Steve CornettandVadim Zeitlin 49b2ce20ea Implement dark mode switching for wxToolTip in wxMSW
Enable dark mode switching for wxToolTip.

Closes #26818.
2026-08-14 20:06:32 +02:00
Steve CornettandVadim Zeitlin dee9c72e16 Add function to detect DarkMode_DarkTheme
To detect whether DarkMode_DarkTheme is available, use a dedicated
function rather than wxCheckOsVersion, for improved readability.

No changes in behaviour.

Closes #26817.
2026-08-14 20:04:58 +02:00
Steve Cornett 92dc88da2a Restore wxGauage position upon dark/light mode switch 2026-08-11 10:44:32 -07:00
Steve Cornett 01c6cb1cbc Fix dark mode for wxGauge with DarkMode_DarkTheme
Fix wxGauge indeterminate mode when using DarkMode_DarkTheme which appeared light mode. Fix switching from dark to light mode which caused the bar color to change to blue, rather than green.
2026-08-11 09:16:03 -07:00
Steve Cornett 13cb775496 Fix wxGuage switching from light to dark mode on old Windows
Explicitly set colors upon switching from light mode to dark mode for old Windows versions.
2026-08-10 09:46:18 -07:00
Steve CornettandVadim Zeitlin fb7f082901 Dark mode border for wxTextCtrl based on DarkMode_DarkTheme
Adjust colors used in wxTextCtrl::MSWDrawThemeBorder() to match how the
Edit control is rendered with the DarkMode_DarkTheme theme rather than
how the WinUI 3 TextBox appears. This should improve the appearance on
dialog backgrounds.

Closes #26800.

Closes #26805.
2026-08-09 19:12:10 +02:00
Steve Cornett f1b53b1274 Replace some useless code with a comment 2026-08-07 09:22:33 -07:00
Steve Cornett c89416ae5f Use DarkMode_DarkTheme if available 2026-08-07 08:16:19 -07:00
Steve Cornett 4ab4b5e3f1 Dark mode support for wxGauge
Add dark mode support for the wxGauge control.

Closes #26767.
2026-08-06 17:53:37 -07:00
Steve CornettandVadim Zeitlin 4227d13440 Fix wxTextCtrl border switching from dark mode
Do not check dark mode in wxTextCtrl::CanApplyThemeBorder(). Instead,
improve the checking for themed border drawing in the WM_NCPAINT
handler.

This fixed the border appearance after switching from dark mode to the
light one.

Closes #26794.
2026-08-06 21:57:23 +02:00
Steve CornettandVadim Zeitlin f12b90aa93 Update wxStaticLine appearance when switching dark mode in wxMSW
Upon dark/light mode switch, update the wxStaticLine border style.

Closes #26786.
2026-08-06 21:53:03 +02:00
Steve CornettandVadim Zeitlin 9c60c62a12 Use DarkMode_DarkTheme with wxChoice if available
For wxChoice in dark mode, the theme DarkMode_DarkTheme looks a little
better, so use that if available.

See #26775.

Closes #26781.
2026-08-05 00:38:10 +02:00
Steve CornettandVadim Zeitlin a5e16e55ae Use system colors for generic calendar header
Use system colors for generic calendar header instead of blue and gray.
A separator line is drawn below the header. This makes the control look
consistent with the Win32 and WinUI 3 controls. Custom header colors are
not overwritten by system color change event.

See #25552.

Closes #26777.
2026-08-04 18:49:41 +02:00
Steve CornettandVadim Zeitlin 5d4829d6d1 Make dark mode system colors more consistent with other platforms
Assign values for wxSYS_COLOUR_3DLIGHT and wxSYS_COLOUR_BTNHIGHLIGHT
consistent with Linux and macOS.

Also stop using wxSYS_COLOUR_BTNHIGHLIGHT for rendering disabled text in
wxGrid and wxGenericStaticText: it didn't look before and would be even
worse after this change. Instead, just draw the text in "disabled"
colour, without using drop shadow at all.

Closes #26753.
2026-08-04 18:46:45 +02:00
Steve CornettandVadim Zeitlin d5aacc4712 Make wxTextCtrl dark mode border consistent with light mode
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxQt (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxX11 (push) Canceled after 0s
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Canceled after 0s
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxDFB (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Canceled after 0s
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Canceled after 0s
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Canceled after 0s
CMake builds / MSW/MSVC wxMSW (push) Canceled after 0s
CMake builds / MSW/Clang wxMSW (push) Canceled after 0s
CMake builds / macOS latest wxOSX Ninja (push) Canceled after 0s
CMake builds / macOS 14 wxOSX Xcode (push) Canceled after 0s
CMake builds / macOS 14 wxIOS (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 5.15 (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 6.10 (push) Canceled after 0s
Mac builds / wxMac ARM ASAN not compatible (push) Canceled after 0s
Mac builds / wxMac Universal C++14 (push) Canceled after 0s
Mac builds / wxiOS Simulator on Silicon Mac (push) Canceled after 0s
Mac builds / wxiOS (push) Canceled after 0s
Mac builds / wxMac Intel C++17 (push) Canceled after 0s
Mac Xcode builds / iOS Simulator static (push) Canceled after 0s
Mac Xcode builds / macOS dynamic Release (push) Canceled after 0s
Mac Xcode builds / iOS static Debug (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Release x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Debug Win32 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Release arm64 (push) Canceled after 0s
MSW builds / wxMSW vs2026 DLL Release x64 (push) Canceled after 0s
MSW cross-builds / wxMSW 64 bits not compatible (push) Canceled after 0s
MSW cross-builds / wxMSW/Univ (push) Canceled after 0s
MSW cross-builds / wxMSW 32 bits (push) Canceled after 0s
Code Checks / Check Spelling (push) Canceled after 0s
Code Checks / Check Whitespace (push) Canceled after 0s
Code Checks / Check Mixed EOL (push) Canceled after 0s
Code Checks / Check C++ Style (push) Canceled after 0s
Code Checks / Check All Headers In allheaders.h (push) Canceled after 0s
Update Documentation / Update Online Documentation (push) Canceled after 0s
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.
2026-07-30 23:57:16 +02:00
Steve CornettandVadim Zeitlin a4bedd7396 Fix wxChoice scroll bar after switching to light mode in wxMSW
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxQt (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxX11 (push) Canceled after 0s
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Canceled after 0s
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxDFB (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Canceled after 0s
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Canceled after 0s
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Canceled after 0s
CMake builds / MSW/MSVC wxMSW (push) Canceled after 0s
CMake builds / MSW/Clang wxMSW (push) Canceled after 0s
CMake builds / macOS latest wxOSX Ninja (push) Canceled after 0s
CMake builds / macOS 14 wxOSX Xcode (push) Canceled after 0s
CMake builds / macOS 14 wxIOS (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 5.15 (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 6.10 (push) Canceled after 0s
Mac builds / wxMac ARM ASAN not compatible (push) Canceled after 0s
Mac builds / wxMac Universal C++14 (push) Canceled after 0s
Mac builds / wxiOS Simulator on Silicon Mac (push) Canceled after 0s
Mac builds / wxiOS (push) Canceled after 0s
Mac builds / wxMac Intel C++17 (push) Canceled after 0s
Mac Xcode builds / iOS Simulator static (push) Canceled after 0s
Mac Xcode builds / macOS dynamic Release (push) Canceled after 0s
Mac Xcode builds / iOS static Debug (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Release x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Debug Win32 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Release arm64 (push) Canceled after 0s
MSW builds / wxMSW vs2026 DLL Release x64 (push) Canceled after 0s
MSW cross-builds / wxMSW 64 bits not compatible (push) Canceled after 0s
MSW cross-builds / wxMSW/Univ (push) Canceled after 0s
MSW cross-builds / wxMSW 32 bits (push) Canceled after 0s
Code Checks / Check Spelling (push) Canceled after 0s
Code Checks / Check Whitespace (push) Canceled after 0s
Code Checks / Check Mixed EOL (push) Canceled after 0s
Code Checks / Check C++ Style (push) Canceled after 0s
Code Checks / Check All Headers In allheaders.h (push) Canceled after 0s
Update Documentation / Update Online Documentation (push) Canceled after 0s
Fix wxChoice drop-down list scroll bar when switching to light mode by
using "DarkMode_DarkTheme" only for dark mode. Use "Explorer" for light
mode.

Closes #26736.
2026-07-24 23:41:59 +02:00
Steve CornettandVadim Zeitlin d7d94f918d Support explicit switching both to and from dark mode in wxMSW
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.
2026-07-24 23:31:50 +02:00
Steve CornettandVadim Zeitlin 2e982a1b67 Fix dark mode title bar for Windows 10 1909 and 1903 in wxMSW
This change essentially reverts ffeeb612cd (Remove not needed code for
dark mode support under Windows 1809, 2026-06-26). The value of
DWMWA_USE_IMMERSIVE_DARK_MODE changed in Windows 10 v2004, but we
support dark mode on v1903 and later and we still need to use the old
attribute value in this version and v1909.

Closes #26732.
2026-07-24 13:56:29 +02:00
Steve CornettandVadim Zeitlin 58dfc19c96 Fix wxGrid handling of system color change
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.
2026-07-23 23:47:12 +02:00
Steve CornettandVadim Zeitlin 5ec278eb4d Fix wxBitmapComboBox for system color change
Remove an unnecessary SetBackgroundColour() to allow system color
change events to take effect. The default background color is already
correct.

Closes #26721.
2026-07-23 23:35:48 +02:00
Steve CornettandVadim Zeitlin fbbeb21d8f Update wxGenericFontButton when system colours change
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxQt (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxX11 (push) Canceled after 0s
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Canceled after 0s
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxDFB (push) Canceled after 0s
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Canceled after 0s
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Canceled after 0s
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Canceled after 0s
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Canceled after 0s
CMake builds / MSW/MSVC wxMSW (push) Canceled after 0s
CMake builds / MSW/Clang wxMSW (push) Canceled after 0s
CMake builds / macOS latest wxOSX Ninja (push) Canceled after 0s
CMake builds / macOS 14 wxOSX Xcode (push) Canceled after 0s
CMake builds / macOS 14 wxIOS (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 5.15 (push) Canceled after 0s
CMake builds / MSW/MSVC wxQt 6.10 (push) Canceled after 0s
Mac builds / wxMac ARM ASAN not compatible (push) Canceled after 0s
Mac builds / wxMac Universal C++14 (push) Canceled after 0s
Mac builds / wxiOS Simulator on Silicon Mac (push) Canceled after 0s
Mac builds / wxiOS (push) Canceled after 0s
Mac builds / wxMac Intel C++17 (push) Canceled after 0s
Mac Xcode builds / iOS Simulator static (push) Canceled after 0s
Mac Xcode builds / macOS dynamic Release (push) Canceled after 0s
Mac Xcode builds / iOS static Debug (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 DLL Release x64 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Debug Win32 (push) Canceled after 0s
MSW builds / wxMSW vs2022 Release arm64 (push) Canceled after 0s
MSW builds / wxMSW vs2026 DLL Release x64 (push) Canceled after 0s
MSW cross-builds / wxMSW 64 bits not compatible (push) Canceled after 0s
MSW cross-builds / wxMSW/Univ (push) Canceled after 0s
MSW cross-builds / wxMSW 32 bits (push) Canceled after 0s
Code Checks / Check Spelling (push) Canceled after 0s
Code Checks / Check Whitespace (push) Canceled after 0s
Code Checks / Check Mixed EOL (push) Canceled after 0s
Code Checks / Check C++ Style (push) Canceled after 0s
Code Checks / Check All Headers In allheaders.h (push) Canceled after 0s
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.
2026-07-22 00:14:39 +02:00
Steve CornettandVadim Zeitlin 01b131c9d1 Update generic wxSearchCtrl on system colour change
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.
2026-07-21 01:09:36 +02:00
Steve CornettandVadim Zeitlin 530a958e11 Defer dark mode system colour change event
Defer dark mode system colour change event until after switch is
finished, when the new theme is already active.

Also call RefreshImmersiveColorPolicyState() to fix the initial dark
mode state which was always light before (but it was hidden by
processing WM_SETTINGCHANGE twice).

Closes #26692.

Closes #26698.
2026-07-21 00:56:34 +02:00
Steve CornettandVadim Zeitlin abff4f0712 Fix wxNotebook background colour in wxMSW dark mode
In dark mode, make the wxNotebook regions affected by
SetbackgroundColour() match light mode. The default background colour is
wxSYS_COLOUR_WINDOW rather than wxSYS_COLOUR_BTNFACE, which looks too
light.

Closes #25678.

Closes #26695.
2026-07-21 00:33:21 +02:00
Steve CornettandVadim Zeitlin 9415a54512 Fix wxNotebook border in wxMSW dark mode
On Windows in dark mode, draw a border around the wxNotebook body using
the same colour as the border for the tabs. This makes the dark mode
appearance more consistent with light mode.

See #25678.

Closes #26694.
2026-07-21 00:28:58 +02:00
Steve CornettandVadim Zeitlin 4618ae1eb2 Fix wxNotebook dark mode spin control appearance upon AddPage()
Subclass the spin control from AddPage() as well as OnSize(), so that
the spin control is drawn properly in dark mode when it appears as a
result of adding a new page.

Closes #26685.
2026-07-21 00:14:24 +02:00
Steve CornettandVadim Zeitlin 5ea5e65a59 Improve code finding native spin control in wxNotebook
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.
2026-07-21 00:13:20 +02:00
Steve CornettandVadim Zeitlin 589b622899 Remove not really used USE_NOTEBOOK_ANTIFLICKER from wxMSW code
Remove the USE_NOTEBOOK_ANTIFLICKER configuration option macro. It seems
this was only needed for Windows CE and it couldn't be set to 0 any more
as this started resulting in build errors since 16727d1714 (Start
implementing our own wxNotebook drawing in dark mode, 2022-12-21).

Closes #26684.
2026-07-21 00:07:50 +02:00
Steve CornettandVadim Zeitlin 6de4ddb544 Fix wxSpinButton dark mode switching under Windows 11 22H2
Add call to MSWSetDarkOrLightMode() upon control creation to get correct
dark mode drawing under Windows 11 22H2 and later and avoid inverting
colours if they are already drawn correctly for dark mode.

Closes #26683.
2026-07-21 00:04:49 +02:00
Steve CornettandVadim Zeitlin aa52238256 Fix wxMSW wxSpinButton background in dark mode
The paint event handler clears the DC to the background colour before
drawing the bitmap to properly handle alpha transparency.

Use wxBufferedPaintDC to avoid flicker.

Closes #26682.
2026-07-21 00:02:00 +02:00
Steve Cornett 763b682e8c Fix wxGrid for system colour change
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.
2026-07-18 08:24:08 -07:00
Steve Cornett fcb8350945 Remove some disabled code
Remove _USE_VISATTR disabled code
2026-07-18 06:59:15 -07:00
Steve Cornettandpaulcor e56922d847 Fix building with wxUSE_RICHEDIT=0
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
2026-07-14 20:44:22 -07:00
Steve Cornett 3f41cec0a3 Avoid overwriting custom background color 2026-07-08 14:23:34 -07:00
Steve Cornett cae06de182 Fix dark mode switching for wxRichTextStyleListCtrl
Update background colour upon system colour change event.
2026-07-08 10:28:49 -07:00
Steve Cornett bfa27255a9 Fix dark mode switching for wxRichTextCtrl
Add missing event.Skip() so that scroll bar is updated for dark mode switch.
2026-07-08 10:27:41 -07:00
Steve CornettandVadim Zeitlin 9b46b1d886 Fix context help popup appearance in dark mode in wxMSW
Fix Windows dark mode for context help popup by using
wxSystemSettings::GetColour() instead of ::GetSysColor().

Closes #26650.
2026-07-01 02:37:56 +02:00
Steve CornettandVadim Zeitlin c06b50221c Add missing functions for wxUSE_DARK_MODE=0
Stubs for these functions for this build variant should have been added
when they themselves were but this was forgotten.

Closes #26649.
2026-07-01 01:03:18 +02:00
Steve CornettandVadim Zeitlin 0401dd5ac3 Explicitly draw dark mode border
On Windows in dark mode, explicitly draw borders rather than relying on
DrawThemeBackground(), which does not work well on older versions of
Windows.

Closes #26646.
2026-06-30 22:43:03 +02:00
Steve CornettandVadim Zeitlin 013f249f93 Fix dark mode border flicker
Fix dark mode border flicker by using a clipping region when calling
MSWDefWindowProc(). This prevents drawing the light mode border before
the dark border is drawn.

See #26646.
2026-06-30 22:42:44 +02:00
Steve CornettandVadim Zeitlin 25d7cfefea Support switching to wxMSW dark mode in wxAuiToolBar
On Windows, enable dark mode switching for wxAuiToolBar by updating
m_themed upon system colour change.

Closes #26648.
2026-06-30 22:29:27 +02:00
Steve CornettandVadim Zeitlin 5e4034bc30 Fix wxStyledTextCtrl dark mode switching
Add event.Skip() to wxStyledTextCtrl::OnSysColourChanged() so that upon
switching to or from dark mode, the scroll bar switches modes.

Closes #26639.
2026-06-27 19:50:29 +02:00
Steve CornettandVadim Zeitlin fc2755524f Add system colour change handler to wxSashWindow
Closes #26638.
2026-06-27 19:47:51 +02:00
Steve CornettandVadim Zeitlin 70e467e9ae Fix wxPropertyGrid dark mode switching
Add event.Skip() to wxPropertyGrid::OnSysColourChanged() so that upon
switching to or from dark mode, the scroll bar switches modes.

Closes #26637.
2026-06-27 19:46:38 +02:00
Steve CornettandVadim Zeitlin a83d0b0af6 Fix system colour change for wxVListBox
Remove the background colour setting from wxVListBox::Create() so that
the control uses the up-to-date background colour in the paint event
handler. This way the control responds to system colour changes.

The comment about transparent drawing is wrong since 0975a8a (Applied
patch [ 1405821 ] wxVListBox double-buffering + fix to a scrolling issue
By Jaakko Salli, 2006-01-17).

Closes #26636.
2026-06-27 19:45:19 +02:00
Steve CornettandVadim Zeitlin ffeeb612cd Remove not needed code for dark mode support under Windows 1809
Remove GetDwmSetWindowAttribute() call intended for Windows version
which we no longer support with dark mode.

Closes #26634.
2026-06-27 19:30:55 +02:00
Steve CornettandVadim Zeitlin f26f253694 Handle system colour change in wxInfoBarGeneric
Move colour settings from Create() into a new function UpdateColours(),
which gets called from Create() and also upon system colour change.

Closes #26633.
2026-06-27 19:28:04 +02:00
Steve CornettandVadim Zeitlin d2c579305c Fix wxFontPreviewer appearance in dark mode
Add dark mode support to wxFontPreviewer:

- Replace manually drawn black-on-white border with window border
  wxBORDER_SIMPLE.
- Set text colour to wxSYS_COLOUR_WINDOWTEXT.

Closes #26632.
2026-06-27 19:25:50 +02:00
Steve CornettandVadim Zeitlin d6f5fdcf95 Fix switching plain read-only multiline wxTextCtrl to dark mode
For dark mode switching, update the background colour for non-rich
read-only multiline wxTextCtrl controls. The foreground colour is
already updated.

The background colour is controlled by assigning m_backgroundColour
rather than calling SetBackgroundColour(). This leaves the m_hasBgCol
member untouched so that it distinguishes custom colours set by the user
which should not be overwritten, from colours set internally which can
be overwritten.

Some checks of hasBgCol are changed to m_backgroundColour.IsOK(). When
m_backgroundColour.IsOK() is true, there is either a custom colour or an
internally set colour that we need to use.

Closes #26629.
2026-06-27 19:22:47 +02:00
Steve CornettandVadim Zeitlin 6254fc30f2 Fix dark mode switching for wxStatusBar
When switching to light mode, always use the theme name L"Explorer"
rather than using MSWGetDarkModeSupport().

The theme name and id needed for dark mode does not always work for
light mode. For example, for wxStatusBar combination name=nullptr
id=L"ExplorerStatusBar" results in an un-themed status bar with strange
internal borders and missing gripper.

Closes #26608.
2026-06-20 03:16:43 +02:00
Steve CornettandVadim Zeitlin 7f582c5730 Update background brush in MSWSetDarkOrLightMode()
Remap the colour used for the background brush to the new mode.

Closes #26603.
2026-06-20 03:16:43 +02:00
Steve CornettandVadim Zeitlin e23ddf4b65 Implement wxMDIChildFrame::GetDefaultAttributes() in wxMSW
Ensure that the correct background colour is returned for MDI children.

See #26603.
2026-06-20 03:06:01 +02:00
Steve Cornett 441157ae04 Use DarkMode_DarkTheme for wxListBox
use DarkMode_DarkTheme for wxListBox, if available. This improves the appearance of the simple border style
2026-06-19 11:27:55 -07:00
Steve Cornett 952fd47728 Only use DarkMode_DarkTheme if available 2026-06-18 16:46:08 -07:00
Steve CornettandVadim Zeitlin 1281d51021 Fix wxNotebook background colour in dark mode
After the changes of f8363719d4 (Preserve wxNotebook custom colours upon
dark mode switch, 2026-06-15), we need to erase background using the
proper brush.

Closes #26605.

Closes #26606.
2026-06-17 01:49:13 +02:00
Steve CornettandVadim Zeitlin 86f6a8d039 Add support for switching to dark mode to wxTreeCtrl
Update wxTreeCtrl to respond to system colour changes, including
switching into and out of dark mode.

Closes #26601.
2026-06-16 18:44:45 +02:00
Steve CornettandVadim Zeitlin 0b6e531bae Remove wxDialogBase::OnSysColourChanged()
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.
2026-06-16 00:25:03 +02:00
Steve Cornett 920b428a4c Remove MSWSetDarkOrLightMode() 2026-06-15 12:59:20 -07:00
Steve Cornett f8363719d4 Preserve wxNotebook custom colours upon dark mode switch 2026-06-15 11:41:53 -07:00
Steve Cornett 4df35f2418 Preserve wxStaticText custom colours upon dark mode switch 2026-06-15 11:41:22 -07:00
Steve CornettandVadim Zeitlin 0e60afa604 Preserve wxListCtrl custom colours upon dark mode switch in wxMSW
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.
2026-06-13 20:25:33 +02:00
Steve CornettandVadim Zeitlin 29e64673a6 Preserve wxToolBar custom background colour upon dark mode switch
Avoid overwriting wxToolBar custom colours upon switching into or out of
dark mode.

Closes #26581.
2026-06-12 18:44:00 +02:00
Steve CornettandVadim Zeitlin 34a29a1599 Fix disabled wxStaticBox text color in dark mode
Ensure that the control is redrawn when it's enabled or disabled and fix
its drawing in dark mode when it is disabled.

Closes #26575.
2026-06-11 23:52:30 +02:00
Steve CornettandVadim Zeitlin 2d07a1e214 wxMSW: Border handling code cleanup
Remove a useless function and some commented-out code.

Closes #26580.
2026-06-11 23:16:52 +02:00
Steve Cornett ad3b42ade6 Add same dark mode support for wxRadioButton 2026-06-10 16:36:11 -07:00
Steve Cornett 04c345d5f8 Enable and disable owner-draw as needed 2026-06-10 16:34:37 -07:00
Steve Cornett a014ea5f56 Use MSWMakeOwnerDrawn() instead of SetForegroundColour() 2026-06-10 09:32:52 -07:00
Steve CornettandVadim Zeitlin de11441324 Fix wxChoice/wxComboBox popup border in MSW dark mode
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
This was broken by 5bd892f7ac (Fix dark mode selection in list controls
in latest Windows 11, 2026-05-31) which styled the entire list as scroll
bar which was wrong.

Use "DarkMode_DarkTheme" instead of "Explorer" to make the list appear
correctly both under Windows 10 and 11.

Closes #26573.

Closes #26574.
2026-06-10 18:01:02 +02:00
Steve CornettandVadim Zeitlin 8a573dd7e7 Improve handling of the borders in MSW dark mode
For Windows dark mode, draw themed borders instead of translating
wxBORDER_THEME to wxBORDER_SIMPLE. Borders have the same thickness
between light mode and dark mode for consistent alignment and
positioning. See #26529.

In dark mode, the border styles wxBORDER_STATIC, wxBORDER_RAISED and
wxBORDER_SUNKEN are sometimes drawn by the system using light mode
colours. So draw these borders similarly to themed borders, but using
the proper width. There is no attempt to mimic a raised or sunken look.

The WM_NCCALCSIZE and WM_NCPAINT message handling is simplified and
corrected for calculating the border width.

Closes #26571.
2026-06-10 17:33:42 +02:00
Steve CornettandVadim Zeitlin 3fc3a33f58 Add wxWindow::MSWGetBorderThickness()
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.
2026-06-10 17:22:09 +02:00
Steve Cornett 063f78f68d Dark mode switching for wxCheckBox on Windows 10 2026-06-08 10:14:01 -07:00
Steve CornettandVadim Zeitlin f12b247d26 Implement support for switching between light/dark modes in wxMSW
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Replace MSWGetDarkModeSupport() with MSWSetDarkOrLightMode() which can
now be called to initialize dark mode for a window or to switch it from
one mode to the other and call this function when the mode changes.

Closes #26516.
2026-06-07 03:15:08 +02:00
Steve CornettandVadim Zeitlin 21e71a06c0 Use dark mode theme for tree item buttons
Fix appearance of the buttons in wxDataViewCtrl when switching between
light and dark modes.

Closes #26547.
2026-06-01 22:44:09 +02:00
Steve CornettandVadim Zeitlin 975dc5e53d wxMSW: Repaint all windows upon system color change
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
The problem is when the system switches between dark and light mode,
Refresh() is never called. More specifically, when WM_SETTINGCHANGE
occurs with "ImmersiveColorSet", HandleSettingChange() is not called.
But that is where the only Refresh() call is.

Top level windows should get Refresh() upon WM_SYSCOLORCHANGE as well as
WM_SETTINGCHANGE. Adding another Refresh() call into
HandleSysColorChange() solves the problem.

Closes #26514.
2026-05-26 23:58:34 +02:00
Steve CornettandVadim Zeitlin 3bb2fe3979 Fix build with wxUSE_DARK_MODE=0
Provide stub function implementations that were missing in this case.

Closes #26510.
2026-05-25 21:21:51 +02:00
Steve CornettandVadim Zeitlin 8ac3d483a6 Remove wxUSE_UXTHEME option and assume it is always on
It has not been possible to build with this option disabled for 4 years.
It appears there has been little effort to support this option since
then. For 8 years, there has been a duplicate definition of
wxUxThemeIsActive(), causing a linker warning.

Closes #26509.
2026-05-25 21:19:07 +02:00
Steve CornettandVadim Zeitlin 93a565d845 Remove fall back definitions for BCM_SETIMAGELIST and related
All currently used compilers/SDKs define them, so there is no need to do
it ourselves any more.

See #26509.

Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
2026-05-25 21:19:07 +02:00
Steve CornettandVadim Zeitlin 83d752642a Fix minimum Windows version for supporting dark mode
There was an incompatible change in one of the functions we use in
v1903, so even while we could support older versions, we currently don't
and it's simpler to just increase the minimum supported version rather
than fix this.

See #26494.
2026-05-23 19:01:17 +02:00
Steve CornettandVadim Zeitlin 6cb7b3a615 Don't send redundant wxSysColourChangedEvent in wxFrame
These events are already sent to all children, there is no need to do it
explicitly.

See #26454.
2026-05-23 18:57:30 +02:00
Steve CornettandVadim Zeitlin a0881cb589 Eliminate redundant system color change events
Prior to this change, the handling for WM_SETTINGCHANGE with the
"ImmersiveColorSet" argument introduced an additional system color
change event in addition to handling the message normally. This doubled
the number of events per window. Since WM_SETTINGCHANGE is applied
recursively to child windows, this resulted in an exponential increase
in the number of events generated, doubling with each level of child
windows. The solution is to handle WM_SETTINGCHANGE with
"ImmersiveColorSet" as a system color change only - as if it were
WM_SYSCOLORCHANGE.

Closes #26454.
2026-05-23 18:54:11 +02:00
Steve CornettandVadim Zeitlin 625efe66f1 Fix wxFrame system color change in wxMSW
This change fixes wxFrame so that it properly responds to switching
between high contrast themes as well as dark mode.

Do it by not setting the frame background colour by default and
implementing GetDefaultAttributes() properly instead, as this ensures
that the correct colour is used by default, in both light and dark
modes, while explicitly set colour still overrides it.

See #25755.

Closes #26427.
2026-05-23 18:43:22 +02:00
Steve CornettandVadim Zeitlin bb47481f4c Update non-client colors upon theme change in wxMSW
This change updates the colors in the top level window title bar, menu
bar, etc, with dark/light theme change.

wxMSWDarkMode::EnableForTLW() is renamed to ConfigureTLW() as this
function can now either enable or disable the use of dark theme.

Closes #26425.
2026-05-23 18:38:53 +02:00
Steve CornettandVadim Zeitlin 4c63042036 Remove another redundant Refresh() from wxMDIParentFrame code
Similar to the parent commit, this is not needed any longer after the
changes of the grandparent commit.

See #26424.
2026-05-23 18:35:05 +02:00
Steve CornettandVadim Zeitlin 072bda8fab Remove a redundant Refresh() from wxToolBar code
This is not needed any more after the changes in the parent commit.

See #26424.
2026-05-23 18:34:20 +02:00
Steve CornettandVadim Zeitlin c4cf2c48ee Add Refresh() in wxWindowMSW::OnSysColourChanged()
Refresh the windows when any system settings change, including changes
to the colours and metrics.

See #26424.
2026-05-23 18:31:31 +02:00
Steve CornettandVadim Zeitlin 5f75241f3a Add system color change event handler to wxDataViewCtrl
Make the control update its appearance after system theme change under
Windows.

Closes #26420.
2026-05-02 22:55:17 +02:00
Steve CornettandVadim Zeitlin dbce2cf0d1 Tweak wxSYS_COLOUR_INFOBK value in dark mode under Windows 11
Use the average of the colours in the dithered background actually used.

See #26412.
2026-04-30 19:09:26 +02:00
Steve CornettandVadim Zeitlin c95a03c543 Really fix wxRendererXP::DrawItemText() selected text in dark mode
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / macOS latest wxGTK 3 Unix Makefiles (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / wxMSW vs2026 DLL Release x64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Use the correct "DarkMode_ItemsView::LISTVIEW" theme instead of
apparently invalid "DarkMode::LISTVIEW".

Closes #26414.
2026-04-29 23:59:28 +02:00
Steve CornettandVadim Zeitlin e85bec8741 Update some colour values for Windows dark mode
Most notably, change the text colour to be white instead of #e0e0e0.

Also tweak some colours that are slightly different under Windows 11.

Closes #26412.

Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
2026-04-29 23:32:05 +02:00
Steve CornettandVadim Zeitlin bd00c4806d Remove redundant Visual Studio optimization settings
Remove compiler options implied by /O2 as it makes it unnecessarily more
difficult to replace /O2 with /O1.

Closes #26416.
2026-04-29 23:06:46 +02:00
Steve CornettandVadim Zeitlin 39e1c00952 Fix wxRendererXP::DrawItemText() selected text color in dark mode
Use appropriate theme in dark mode to get the correct result from
GetColour(LVP_LISTITEM, TMT_TEXTCOLOR, LISS_SELECTED).

Closes #26399.
2026-04-25 16:38:41 +02:00
stevecorandVadim Zeitlin 1bc4900ed6 Remove wxUSE_GEOMETRY
Disabling it doesn't save much on code size and the build without it is
currently broken anyhow, so just remove the possibility to turn it off.

Closes #26388.

Closes #26402.
2026-04-24 19:10:09 +02:00