Create file tests/tests.props which adds the DLL build directory
to MSVS PATH in <LocalDebuggerEnvironment> property and add the
file to test.vcxproj and test_gui.vcxproj MSVC projects.
See also eba106431a (Allow running samples from MSVS in DLL
configurations, 2024-11-14).
Closes#26171.
The Windows headers bundled with MSVS 2015 do not define
WINHTTP_OPTION_HTTP_PROTOCOL_USED, an option flag required
after 9a76757 (Add wxWebRequestDebugLogger for details
logging of HTTP transfers, 2026-01-15).
Fix this by defining the option flag by ourselves when needed.
Closes#26144.
When using MSBuild, use the custom configuration name (property wxCfg)
in the object files folder name (property wxIntRootDir), just as it is
already done in the NMake makefile.
Closes#26135.
Closes#26136.
Add wxCalendarCtrl to the list of controls not supporting dark
mode at all.
Note that calling wxMenuItem::SetDisabledBitmap() will make
its wxMenu light.
Recently added libwebp was not added to the libraries MSVC automatically
links with when adding "$(WXWIN)\include\msvc" to the include paths.
This should have been part of ad6f05a (Add support for WebP image format, including animations, 2025-05-11).
Unix builds / Ubuntu 24.04 wxGTK with ASAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (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 24.04 wxGTK with UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (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 / Windows MSVC (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 / Windows wxQt 6.8 (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxMac ARM with ASAN (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 vs2019 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2019 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW builds / msw-msys2-clang (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits (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
Update Documentation / Update Online Documentation (push) Has been cancelled
No Response / no-response (push) Has been cancelled
Using a const char* and a wxString in the two branches of the ternary
operator resulted in compile-time errors when using C++20 standard
since the result type of the conditional expression was ambiguous,
so add explicit conversions to fix it.
See also #19355.
Closes#25501.
MSW builds / wxMSW vs${{ matrix.vsversion }} ${{ matrix.configuration }} ${{ matrix.platform }} (Debug, Win32, 2019) (push) Has been cancelled
MSW builds / wxMSW vs${{ matrix.vsversion }} ${{ matrix.configuration }} ${{ matrix.platform }} (Release, arm64, 2022) (push) Has been cancelled
MSW builds / msw-msys2-clang (push) Has been cancelled
MSW cross-builds / ${{ matrix.name }} (--disable-compat32, testing, wxMSW 64 bits) (push) Has been cancelled
MSW cross-builds / ${{ matrix.name }} (--enable-universal --disable-compat32 --disable-debug --disable-optimise, testing, true, wxMSW/Univ) (push) Has been cancelled
MSW cross-builds / ${{ matrix.name }} (stable, wxMSW 32 bits, i686-w64-mingw32) (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
Update Documentation / Update Online Documentation (push) Has been cancelled
Fix the flag name in wxSizerFlags::Shaped() description.
Add a reference to Windows Sizing Overview to Window Layout page and
Sizers Overview.
Add a reference to Sizers Overview to Window Sizing Overview.
Closes#25044.
Create file samples/samples.props which adds the DLL build directory
to MSVS PATH in <LocalDebuggerEnvironment> property.
Add file samples.props to all MSVS sample projects.
Make a number of factual and formal changes. The most important
ones are noting that wxWebViewChromium does not support script
message handlers and accounting for the fact that there can be
multiple backends on each platform.
wxEVT_WEBVIEW_CREATED should be sent only after the actual
web engine instance behind wxWebView (here WebView2) was created.
However, the Edge backend sent it from wxWebViewEdge::Create(),
i.e., before the web engine was created. Fix this by sending the
event from wxWebViewEdgeImpl::OnWebViewCreated() instead, where/when
the web engine instance does exist.
Closes#24758.
Remove outdated information about special meaning of wxRESIZE_BORDER
style flag on Windows.
Add a reference to ::wxDirSelector() and wxDirPickerCtrl.
Improve formatting by using @c where appropriate and fix few typos.
In the common dialogs overview, add that wxDirDialog can be used to
select also mutiple directories.
In wxDirSelector, provide the correct default argument for
the wxDirDialog style parameter, change the path parameter
name to match the implementation, and fix the example code.
Provide information about wxFD_ flags used by wxLoadFileSelector()
and wxSaveFileSelector().
Add missing default arguments for wxGetColourFromUser() and wxGetFontFromUser() parameters.
Improve formatting by using @c where appropriate.
wxGrid methods CalcRowLabelsExposed(), CalcColLabelsExposed(), and
CalcCellsExposed() were missing descriptions in the interface header
docs, so the description of AppendCols() was wrongly used for all three
methods in the generated docs.
Expand the description of wxWebView::GetNativeBackend().
Note that EVT_WEBVIEW_CREATED is available only since wxWidgets 3.3.
Add references to relevant classes and methods.
Improve wording and formatting.
Mention that other versions of CEF may work.
Closes#24752.
Improve the example code by (a) omitting the defaults when calling
wxSizerFlags()::Border() and (b) calling wxSizer::Add() using
wxSizerFlags-based overload instead of the one using many individual
parameters.
Also remove an extraneous "not" in the description of its Create()
method.
Closes#24710.
Attempting to change the style or alignment of the static text in the
widgets sample made the sample crash. The bug cause was the same as in
7c125d3 (Fix crash on spin page of widgets sample, 2024-04-18), i.e.,
a8b4753 (Reconnect events to the widget after recreating it in the sample,
2024-02-19).
Fix the issue by calling NotifyWidgetRecreation() for each control only
after they were all recreated.
Closes#24656.
Closes#24660.
Update Windows Server information.
Additionally, add a note to wxGetOsDescription() source to
keep the table in docs in the sync with the code.
Closes#24653.
Windows Server 2022 has build number lower than first Windows 11 build
number (20348 vs 22000), so we cannot use Windows 11 build number to
test for it here.
Attempting to change the style or alignment of the spin controls in the
widgets sample made the sample crash. This was caused by a8b4753
(Reconnect events to the widget after recreating it in the sample,
2024-02-19) which resulted in using windows that were previously
destroyed.
Fix this by calling NotifyWidgetRecreation() for each spin control only
after they were all recreated.
Closes#24487.
wxSYS_COLOUR_3DLIGHT was too bright in dark mode, use wxSYS_COLOUR_GRAYTEXT
instead, even if we have to used a different system colour for lines in
light and dark mode.
Closes#23772.
When displaying checkboxes, the text position was incorrectly offset
to the right even for subitems, not just for the item where the checkboxes
are actually painted.
When painting items in wxListCtrl in report view under Windows dark mode,
the selection was painted only when the control had focus.
However, this did not match the light mode, where the selection is always drawn
regardless of the focus (the listview is created with LVS_SHOWSELALWAYS style).
Under Windows dark mode, we paint wxListCtrl in report view by
ourselves and so we need to paint also the checkboxes when needed.
There is a small glitch on Windows 11, where a selected checkbox
has black instead of transparent pixels inside the rounded corners.
Closes#24410.
Fix coordinates of the rectangle we use to erase the unwanted
separator line in wxListCtrl report view in Windows 11 dark mode.
The rectangle was painted over the last item, instead below it
as intended.
Closes#24024.
Closes#24408.
Use the same argument name as in the actual code in the class
constructor as well as the convenience function, instead of
wrongly copypasted "book".
See also 33de6dc (Fix confusing wxPersistentTLW ctor argument name,
2023-12-22).
Closes#24158.
The Clear log and Exit buttons were not shown after the changes
in a69fabe (Fix using wxStaticBoxSizer in samples, 2023-10-22).
Fix this by creating them with the proper parent.
Closes#24005.
Closes#24007.
Add a note explaining that when creating a button sizer with this
method, one of the buttons will be usually made the default.
See #23992.
Closes#24001.
If a control is contained in a wxStaticBoxSizer or its child sizer,
wxStaticBoxSizer::GetStaticBox() should be used as the control's parent.
However, widgets and dialogs samples did not do that, which resulted in
flooding the message log in widgets sample with warnings about this; in
dialogs sample the warnings were shown in the debug output.
Fix this by always using the static box as the control's parent when the
control is contained (directly or indirectly) in a wxStaticBoxSizer.
Closes#23967.
To sort its items (files and folders) wxFileCtrl used simple string
compare and wxDirCtrl case-insensitive string compare.
However, the files and folders should be presented to the users in the
way they are used to, i.e., in the natural order. Therefore, use
wxCmpNatural() for file and folder names and wxStricmp() for file
extensions.
Closes#22054.
Closes#23962.
Using both wxDEPRECATED_MSG and wxNODISCARD for some reason breaks
compilation with clang (when using C++17 or newer standard).
Since wxBasicString::Get() is deprecated, one warning should be enough
so just remove wxNODISCARD from the method declaration.
Closes#23952.
Change wxTreeCtrl style for a control used by wxGenericDirCtrl so that
wxGenericDirCtrl looks more like the folder view in File Explorer (but
still don't show expanders for root-level items).
Also update wxGenericDirCtrl screenshot in the docs.
See also 6caaf58 (Use more modern appearance for wxMSW wxTreeCtrl by
default, 2023-09-30).
Closes#23922.
Change wxTreeCtrl default style under wxMSW to make it look more
up-to-date by default: use twisting buttons and full-row highlight and
don't display connector lines.
Using wxTR_LINES_AT_ROOT together with wxTR_NO_LINES may look odd but it
is needed because without wxTR_LINES_AT_ROOT, the buttons would not be
displayed.
Also update wxTreeCtrl screenshot in the docs.
Closes#23844.
Document previously undocumented macOS methods
enabling/disabling automatic character substitutions.
This should have been part of 90e1769 (Add API to control
OS X wxTextCtrl’s smart behavior, 2016-10-16).
Closes#23889.
The gestures frame created its own log target and deleted
the previous one but did not restore it when being closed.
This left the current log target invalid which led to a crash
when calling any wxLog*() function after gestures frame was closed.
Fix this by restoring the previous log target when gestures frame
is closed.
Closes#23767.
See #23881.
When testing downloading with wxURL and header Content-Length
is not available, display "n/a" as the file size instead of
the value of (unsigned long)-1.
Closes#23825.
Remove support for unsupported MSVS versions earlier than 2015
and Windows versions earlier than 7 from CMake build as they are not
supported any longer.
Also update wxUSE_GRAPHICS_GDIPLUS and wxUSE_GRAPHICS_DIRECT2D comments
in wxMSW setup.h to remove mentions of unsupported Windows XP but do
mention that MinGW-w64 can use Direct2D.
Closes#23787.
The note in the method description incorrectly stated that
"...the handlers are deleted in wxFileSystem's destructor so
that you don't have to care about it." However, unless a
handler is removed by calling wxFileSystem::RemoveHandler()
(or undocumented wxFileSystem::CleanUpHandlers()), it is deleted
only when wxWidgets shuts down in wxFileSystemModule::OnExit().
Update the method documentation that it is correct (and similar to
that of wxImage::AddHandler()).
Closes#23789.
- caret: Use the system color for window background instead of
hard-coded white.
- image: Use hard-coded black for the text drawing since all other
drawings on the image canvas use hard-coded colours too. The default
text colour was barely readable in dark mode.
- joytest: Use wxCYAN_PEN instead of wxBLACK_PEN to ensure the line is
visible both in light and dark colour system mode.
- ownerdrw: Use such background colour that there is good contrast
between text and background both in light and dark colour system mode.
- popup: Use such background colour for the pop up so that there is a
good contrast between text and background both in light and dark
colour system mode.
Closes#23773.
In the dialog, create the controls put in the static box sizer
with the sizer's static box as the parent instead of the dialog.
Improve appearance of custom drawn items in dark mode.
Closes#23765.
Add that anything using task dialog does not support dark mode.
Mention that most common dialogs do not support dark mode.
Mention that calling wxMenu::Break() will turn the menu light.
Closes#23769.
In the note about building wxWidgets with MinGW makefile and using
parallel build, explain that "-jN" option cannot be used when building
"setup_h" target.
Closes#23642.
XPM files demonstrating the use of wxBitmapBundle in the XRC files
were not copied when building the XRC sample with CMake.
This should have been part of eaa769a (Use wxBitmapBundle in
wxBitmapComboBox XRC handler, 2022-02-09).
Closes#23612.
The code in b76ebc6 switched from wxList to std::vector but the changes
did not account that we must store the pointers to derived classes in
the entity list, not just the struct they derive from.
Closes#23582.
The list client data must be destroyed not only when closing the
resource browser dialog (see 754f75c1cd (Fix memory leaks in artprov
sample, 2022-01-28) but also whenever the art client is changed.
Closes#23417.
Closes#23418.
Provide more information about application manifest, High DPI support,
and contents of wx/msw/wx.rc file.
Use the correct file extension for docs/msw/winxp.md.
Closes#23116.
Initialize member variables in the order they were declared,
use "using" to prevent hiding base class overload, and
add a missing "override" specifier.
Add wxNODISCARD macro which is defined as [[nodiscard]] if supported,
or the compiler-specific equivalent if one exists or nothing if not
available.
Start using it for some places with a risk of memory leak.
Closes#22943.