Commit Graph
100 Commits
Author SHA1 Message Date
Maarten Bent 78472fde85 CMake: Make sure SDL3 targets exist when using installed wxWidgets 2026-08-02 15:01:01 +02:00
Maarten Bent c70a840f3a CMake: Fix defining wxHAVE_WAYLAND_CLIENT
Fixes #26707
2026-08-02 14:48:42 +02:00
Maarten BentandVadim Zeitlin a66bf5d897 Disable MinGW thread local workaround in wxTranslations
This has been fixed in MSYS2 MinGW.

Fixes #26195.

Closes #26587.
2026-06-16 00:04:01 +02:00
Maarten Bent 8bf3e155a7 Support pen and brush styles in wxSVGGraphicsContext
SVG does not allow redefining patterns with the same ID, so write each pattern only once.
2026-06-13 22:21:30 +02:00
Maarten Bent 89d1921478 Enable saving SVG for graphics context page in drawing sample 2026-06-13 21:15:23 +02:00
Maarten Bent 8746823e94 Fix overlay in drawing sample when wxGC is disabled 2026-06-13 21:15:14 +02:00
Maarten Bent 8d7c1c6b98 Fix setting overlay opacity when wxGC is disabled 2026-06-13 21:14:18 +02:00
Maarten Bent a113ddc9e5 Add some guards against missing build options 2026-06-06 12:43:17 +02:00
Maarten Bent a967bead1a CMake: Declare more build option dependencies 2026-06-06 12:43:16 +02:00
Maarten Bent d3cdfc8882 CMake: Always install common headers
Even when a component is disabled.

Fixes #26515
2026-06-06 12:43:16 +02:00
Maarten Bent 973777583c Improve speed of reading webp into memory
Use the newly added wxInputStream::Read() function to read the entire
file into a buffer instead of using wxMemoryOutputStream.

See #26457
2026-05-21 21:43:34 +02:00
Maarten Bent 836f199177 Add function to read entire wxInputStream to a buffer
When the size is known, read the data directly into the buffer.
Otherwise read it in chucks until the end of the stream is reached.
2026-05-21 21:43:32 +02:00
Maarten Bent cd8c7e4d7e Increase temporary buffer size of streams
Reading large files using a small buffer causes significant delays.

See #26457
2026-05-17 19:13:39 +02:00
Maarten BentandVadim Zeitlin 3d389bbbbf CMake: Add UNICODE define to all targets
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
So IDEs like Visual Studio show the correct character set.

Add an option to override the character set and use it in the win32 API tests.

See #26458.

Closes #26462.
2026-05-15 02:20:19 +02:00
Maarten BentandVadim Zeitlin cd201ad5f3 CMake: Fix libwebp build properties
Allow to call wx_add_builtin_library for external targets.
and use it for the libwebp targets.

See #26428.

Closes #26456.
2026-05-15 02:12:54 +02:00
Maarten Bent 8ade35509a CMake: Show check_symbol_exists messages only once
Same behaviour as the built-in check functions.
2026-04-11 20:18:37 +02:00
Maarten Bent 8c1ede6607 CMake: Don't install release PDBs when stripped releases is enabled
See #26338
2026-04-11 20:18:14 +02:00
Maarten Bent 62403ce1e0 CMake: Add wxbase_only target
Can be used by console applications, it links with wx::base with wxUSE_GUI=0.

Update wx_copy_target in wxWidgetsConfig.cmake to handle INTERFACE libraries correctly.

See #26285
2026-04-11 20:18:04 +02:00
Maarten Bent 24571ab89d CMake: Install with relative symlinks
Try to install using 'ln -s --relative' first, before falling back to 'ln -s' and 'cmake  -E create_symlink'.
If all fail, use 'cmake  -E copy'.

Also add an option to disable using symlinks and always copy.

Correctly use and (not) escape DESTDIR and CMAKE_INSTALL_PREFIX in install and uninstall variables.

Fixes #26247
2026-04-11 20:18:04 +02:00
Maarten Bent 54bbd316de CMake: Get rid of macro to link sample libraries
And check if widgets sample targets are valid before using it.
2026-04-11 17:16:28 +02:00
Maarten Bent 48092f29cb CMake: Set the wx-config RESCOMP value 2026-04-11 17:16:27 +02:00
Maarten Bent 7f293e4194 CMake: Refactor applying toolkit properties
Group them together in base and not-base.
2026-04-11 17:16:27 +02:00
Maarten Bent 764d775076 CMake: Allow to override wx_option_auto 2026-04-11 17:16:27 +02:00
Maarten Bent b17a03da7f CMake: Import install properties of static libraries
When installing static libraries, the built-in libraries also need import mappings for MinSizeRel and RelWithDebInfo configurations.
Otherwise they will default to using Debug libraries.
2026-04-11 17:16:27 +02:00
Maarten Bent 0f85b2ecfc Update WebView2 version in documentation and availability check
Update the compile-time version check with the last added struct.

Fixes #26291
2026-03-15 18:19:24 +01:00
Maarten Bent 210d1db7a7 CMake: Automatically update outdated WebView2 package 2026-03-15 18:19:18 +01:00
Maarten BentandVadim Zeitlin 4fdc4be96e Fix wxWebViewChromium initialization
Make sure the wxWebViewChromiumModule is available in static builds.
This got broken by #25911.
2026-02-28 14:37:39 +01:00
Maarten BentandVadim Zeitlin aeeae2c065 Update jpeg and zlib submodules
Fix a bug in the last jpeg submodule update, fixes #26197.

And update zlib from v1.3.1 to v1.3.2.

Closes #26199.
2026-02-20 22:30:22 +01:00
Maarten Bent 6db1182ea0 Fix building with wxUSE_INTL disabled 2026-02-15 22:17:11 +01:00
Maarten Bent 02cff90601 Change return type of wxGetTranslation
Change it from 'const wxString&' to just 'wxString' so there is no need to keep a copy around of untranslated strings.
This allows to remove thread_local UntranslatedStringHolder used by GetUntranslatedString, which causes many problems with MinGW.

Fixes #26195.
2026-02-15 22:16:40 +01:00
Maarten BentandVadim Zeitlin 4e4159836d Update LunaSVG, Expat, libjpeg and libpng submodules
Update to their latest versions.

Closes #26191.
2026-02-14 23:48:38 +01:00
Maarten BentandVadim Zeitlin 7ba5acc72c Cache the Go installer in AppVeyor CI
No Response / no-response (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
No need to download it every time.

Closes #26132.
2026-01-30 14:08:34 +01:00
Maarten Bent 9f0235f268 Store wxMSW wxToolBar packing in logical pixels
Keep the public API consistent and the same as wxAuiToolBar::SetToolPacking().
2026-01-29 22:31:18 +01:00
Maarten Bent b72a48b8a6 Improve wxToolbar ToolPacking at high DPI
Treat m_toolPacking as DPI independent, and scale it to the active DPI.
Also scale other hard-coded sizes to the active DPI.

Fixes #26038
2026-01-27 20:02:13 +01:00
Maarten Bent c9798cada1 CMake: Add missing test files
Run GUI resource tests on WXMSW only.
Fix mouse enter/leave events test in wxQt by yielding longer.
2026-01-25 22:08:21 +01:00
Maarten Bent 99abe09211 Allow to use SVG size in wxBitmapBundle::FromSVG
If no default size is provided, get the size from the SVG.
2026-01-25 22:07:59 +01:00
Maarten Bent 7a9f24660d Refactor wxBitmapBundleImplSVG
Reduce code duplication by adding wxBitmapBundleLunaSVG and wxBitmapBundleNanoSVG that implement DoRasterize().
2026-01-25 22:07:58 +01:00
Maarten Bent cd6f7ef08c Specify wx branch for lunasvg submodule 2026-01-25 18:46:16 +01:00
Maarten BentandVadim Zeitlin 8c733d9c4d Move wxOSX chkconf.h and evtloopsrc.h files to base library
They are always used, independent of the toolkit.

Fixes #24583
2026-01-18 01:40:46 +01:00
Maarten Bent 79983d80ce Add CI job to test CMake GTK3 macOS 2026-01-17 14:09:29 +01:00
Maarten Bent 92820ce8a9 CMake: Improve checks for GTK3 on macOS
MacOS (at least with homebrew gtk3) does not have gdk/gdkx.h.
Check if the X11 (or any) back-end is used when enabling XTest/UIActionSimulator and OpenGL.
2026-01-17 14:08:08 +01:00
Maarten BentandVadim Zeitlin 312645b905 CMake: Search for GTK2 using pkg-config first
Add a copy of the FindGTK3 module, but modified for GTK2.
If it fails, use the CMake's default FindGTK2.

Fixes #26040.

Closes 26091.
2026-01-10 23:38:08 +01:00
Maarten BentandVadim Zeitlin 8dcb5419b9 Fix disabled wxListCtrl background colour
This was broken by recent dark-mode related changes.

Fixes #26068.

Closes #26072.
2026-01-07 17:25:46 +01:00
Maarten BentandVadim Zeitlin aaa15aad6d Fix custom foreground colour of selected items in dark mode
Keep the item colour instead of unconditionally replacing it with the
highlight colour in dark mode too, for consistency with white mode.

Closes #25633.
2025-12-14 16:51:20 +01:00
Maarten Bent 413ce93fbc Regenerate projects 2025-12-06 12:36:20 +01:00
Maarten Bent b93ee4156c Add new files to build systems 2025-12-06 12:36:20 +01:00
Maarten Bent 75513bc96b Update submodules 2025-12-06 12:36:19 +01:00
Maarten Bent b56c6bae7c Improve MSW wxListCtrl background attribute in dark mode
It extends the full column, including the padding.
To match light mode, there should be 1px between columns that do not have the attribute colour.
The first (most left) column, and columns with checkboxes or images should still use the padding.
2025-12-03 01:13:05 +01:00
Maarten Bent 8dc41cf183 Try to fix missing MSW wxListCtrl attribute colour in dark mode
See #26001
2025-12-03 00:34:05 +01:00
Maarten Bent 99fb774c5d Better fix for MSW wxListCtrl focus rect visibility
When erasing the background, draw outside the item rectangle.
2025-12-03 00:32:54 +01:00
Maarten Bent 41a7420f2d Slightly increase text padding in MSW wxListCtrl in dark mode
Try to get it to look like light mode.
See #26001
2025-11-30 21:15:20 +01:00
Maarten Bent 96e7dcddf6 Fix highlighting first item in MSW wxListCtrl in dark mode
The item was also highlighted when hovering over the header because ListView_HitTest
returns true when hovering over the header.
Replace ListView_HitTest by checking if the mouse pointer is in the item rectangle.
2025-11-30 20:42:45 +01:00
Maarten Bent 47891abefe Draw hot tracking highlight in MSW wxListCtrl in dark mode
When the mouse is over an item, change the colour of it.

This only works when using Explorer theme, DarkMode_Explorer does not get custom draw calls to remove the colour.

Fixes #26001
2025-11-30 16:10:35 +01:00
Maarten Bent 10bac0ff4e Improve drawing MSW wxListCtrl focus rect in dark mode
Subtract 2px so the right border is visible.
2025-11-30 16:00:10 +01:00
Maarten Bent 907ab5f58e Fix MSW wxListCtrl custom colours in light mode
This was broken in 3842352b21.
2025-11-30 15:56:11 +01:00
Maarten Bent 92167838aa Correctly restore dark mode header in MSW wxListCtrl
When removing custom header attributes, the default dark mode attributes need to be restored.
2025-11-30 13:47:51 +01:00
Maarten Bent b2ada524dc Fix incorrect wxListCtrl::GetSubItemRect(n, 0)
This was broken in bde6b7a8b8.
When the list is scrolled the x-coordinate will be negative.
So don't start counting from 0, but start from the original x coordinate of the full rectangle.
2025-11-30 01:15:32 +01:00
Maarten Bent d26f7a8575 Improve drawing wxListCtrl gird lines in dark mode
The grid lines are erased when custom drawing the sub-items, so the grid lines need to be redrawn after drawing the item.
OnPaint() is not called after every custom draw (e.g. just hovering over a row will cause a custom draw but no paint),
so it has to be drawn in the custom paint handler.

Add a common function for drawing grid lines and reuse it on OnPaint().
2025-11-30 01:15:32 +01:00
Maarten Bent ecfaa59a83 Improve disabled wxListCtrl in MSW dark mode
Draw the background color outside the list-items area on all Windows version,
both below and behind the items, and when the list is empty.

Set the text foreground and background colors when custom drawing. So the disabled
list will use the correct colors in list or icon view.

Fixes #25990
2025-11-30 01:15:30 +01:00
Maarten BentandVadim Zeitlin 3842352b21 Use correct column attributes when drawing wxListCtrl
When a column is custom drawn, it wrongly used the wxItemAttr of the
column being updated to redraw all columns.

Fix this by requesting the column attributes of each column that is
drawn.

See #25633.

Closes #25962.
2025-11-16 18:25:40 +01:00
Maarten Bent b25f44a7c4 Add test for including Windows headers before wx headers
Test both ANSI and WIDE (with/without UNICODE) builds.
2025-11-16 14:49:47 +01:00
Maarten Bent bfd436b39f CMake: Make _UNICODE/UNICODE defines private
Applications/libraries linking to wxWidgets libraries will not automatically inherit them anymore.
2025-11-15 18:55:06 +01:00
Maarten Bent 940b850b8e Use WIDE variant of win32 API functions
wxWidgets uses the WIDE variant of the win32 API. But when the ANSI version of
Windows.h is included before wxWidgets headers and wxNO_WIN32_W is defined,
the ANSI variant of the functions will be used.

This can cause build errors in headers that are (indirectly) included by the user.
Because the class/string types do not match the function type.

So use the WIDE variant explicitly to prevent these errors.
2025-11-10 23:10:52 +01:00
Maarten Bent b7705f83ee Add option to restore ANSI win32 functions
Define wxNO_WIN32_W before including wxWidgets headers to inline
ANSI win32 API functions instead of WIDE win32 API functions.

Fixes #25803
2025-11-10 23:10:25 +01:00
Maarten Bent 5228892b76 White-space and style cleanup in winundef.h 2025-11-09 18:02:12 +01:00
Maarten Bent 8593de07f9 Remove unneeded winundef.h includes
And remove some probably unneeded undefs.
2025-11-09 17:53:07 +01:00
Maarten BentandVadim Zeitlin 7caaa1ad7e Improve right-aligned text positioning in wxListCtrl dark mode
Handle it correctly, i.e. symmetrically to the left-aligned text and not
in the same way as it.
2025-11-08 00:13:42 +01:00
Maarten Bent 373561019d Forward all win32 messages to the Scintilla control
And if they are not processed, continue with the normal message handler.
2025-11-07 21:56:02 +01:00
Maarten Bent 8a71ad7d51 Use Scintilla as win32 classname for wxStyledTextCtrl
This way applications like screen readers know how to interface with it.
2025-11-07 21:55:59 +01:00
Maarten BentandVadim Zeitlin 514486b52f CMake: Improve creating Wayland protocol files
Create the files in a temporary directory and only copy them to the
final directory if the files are different.

This prevents the source files from being rebuilt every time CMake is
run and the protocol files are replaced.

Exclude the protocols directory from being installed.

Closes #25945.
2025-11-01 22:11:11 +01:00
Maarten BentandVadim Zeitlin 36fa157d23 Use wxLogWarning for changing appearance errors in drawing sample
wxLogStatus is unnoticeable in the drawing sample, see #25587.

Closes #25914.
2025-10-25 16:05:43 +02:00
Maarten BentandVadim Zeitlin 6e4bfe6752 Remove duplicate headers from file list
Remove wx/msw/init.h and wx/scopeguard.h headers from the core headers
list, as they are already included in the base headers list.

Closes #25913.
2025-10-25 15:10:59 +02:00
Maarten BentandVadim Zeitlin ccbd0ad63a Move wxWebViewBackendChromium name into common webview header
This allows to check for Chromium back-end availability without needing
wxUSE_WEBVIEW_CHROMIUM guards.

Closes #25911.
2025-10-25 15:10:07 +02:00
Maarten BentandVadim Zeitlin a36bebacc0 CMake: Update naming convention check in config file
Use the same check as is used in options.cmake.

Closes #25910.
2025-10-25 15:09:00 +02:00
Maarten Bent 67da47fdd8 CMake: Create wxWidgets::wxWidgets target when building
This is used by FindwxWidgets and already created in the installed CMake files.
Also create it when building wxWidgets, so it can be used when wxWidgets is included via add_subdirectory.

Also create aliases to all targets using the wxWidgets prefix.
2025-09-17 22:37:12 +02:00
Maarten Bent 2ddce18cee CMake: Improve WIN32_MSVC_NAMING when using other compilers 2025-09-17 21:25:25 +02:00
Maarten Bent 87110a3cf0 CMake: Use global variable to keep track of installed files 2025-09-17 21:25:17 +02:00
Maarten Bent 34993f9ca2 CMake: Move GEN_EXPR_DIR into function using it 2025-09-17 21:22:50 +02:00
Maarten Bent f36633d21d CMake: Use GNUInstallDirs variables when installing
These are used for the default library/archive/runtime/include directories,
but can be overridden with wxBUILD_INSTALL_<artifact>_DIR.

Replace the hard-coded lib and bin directories with wx_get_install_dir().
2025-09-17 21:22:49 +02:00
Maarten Bent 8ca3d109de Ignore tabs in cotire.cmake 2025-09-14 21:51:10 +02:00
Maarten Bent 74cb6d92d0 CMake: Add/update the version range
The CMake files are compatible with (at least) CMake 4.1.
This silences the 'CMake < 3.10 deprecated' messages with recent CMake versions.
2025-09-14 21:51:09 +02:00
Maarten Bent 680b0b5408 CMake: Mark more variables as advanced 2025-09-14 21:51:08 +02:00
Maarten Bent 76b9b23260 CMake: Don't recreate existing targets
This allows to use findPackage(wxWidgets) twice, e.g. to check for different components.
2025-09-14 21:51:08 +02:00
Maarten Bent 295d089477 CMake: Remove duplicate find_package
Packages of third-party dependencies were searched twice. Once when adding them via wx_add_thirdparty_library to determine if they are available or of the built-in library should be used. And then again when including the third-party cmake file. Move all the logic into the third-party library cmake file.

This also removes the need to move the WebP variables into the parent scope.
2025-09-14 21:51:07 +02:00
Maarten Bent 4d1b1d62b0 CMake: Update cotire to 1.8.1 2025-09-14 21:51:07 +02:00
Maarten Bent 7ed4c5ca04 Move svg sample draw function to anonymous namespace
To prevent accidentally using (wxWindow::)FromDIP instead of dc.FromDIP().
2025-09-14 14:24:14 +02:00
Maarten Bent 656afd8c72 Add and use a wxSVGFileDC constructor accepting wxSize
Add a constant for the default SVG dpi resolution.
2025-09-14 14:23:22 +02:00
Maarten Bent 700defddcc Save SVG files with the actual drawing size
First render to a temporary wxSVGFileDC, then use the size of the bounding box as input for the actual SVG size.
Use a slightly larger size to account for lines drawn with a bigger wxPen width.
2025-09-14 14:23:21 +02:00
Maarten Bent 1534390071 Use correct FromDIP in drawing sample
Use FromDIP of the wxDC, not the wxWindow.
2025-09-14 14:23:21 +02:00
Maarten Bent 8bf1d311b9 Make svg sample DPI aware
Set the initial wxDC font so it will be the same across platforms.
2025-09-14 14:23:19 +02:00
Maarten BentandVadim Zeitlin c6ddb6ef89 Fix static CMake build using external WebP library
Define WebP_LIBRARIES and WebP_INCLUDE_DIRS in the parent scope,
otherwise the caller never gets the values found by either
find_package() or pkg_check_modules().

Closes #25786.
2025-09-10 13:45:45 +02:00
Maarten Bent 83f6b2f27e Allow to create a SVG in wxSVGFileDC with empty filename
This allows to render a SVG without writing it to a file, and can for example be useful to get the final size of the SVG.

Rename m_OK to m_writeError to better reflect its purpose.

Don't create the bitmap handler when it will not be used.
2025-09-09 22:17:42 +02:00
Maarten Bent de938ccfac Update SVG header created by wxSVGFileDC
Use DOCTYPE of svg1.1.
Use the wxWidgets version instead of the wxSVGVersion version in the description.
2025-09-09 21:45:41 +02:00
Maarten Bent 8b3df6cee4 Remove incorrect FromDIP from wxSVGFileDC
Input for wxDC functions and constructor are in DPI-independent pixels, so no scaling should be performed.
This ensures the SVG will get the same size on every platform.
2025-09-09 21:45:40 +02:00
Maarten Bent d9b9473650 Calculate bounding box in more wxSVGFileDC drawing functions 2025-09-09 21:45:40 +02:00
Maarten Bent 04841732fa Use wxMemoryDC in wxSVGFileDC for text metrics
This replaces using the deprecated wxScreenDC, and seems to have the correct DPI for text metric calculations.

Fixes #25707
2025-09-09 21:45:39 +02:00
Maarten Bent 5442b0c3aa Avoid using the style attribute in wxSVGFileDC
When an online SVG is opened in a browser, the browser might not want to process
the style attributes because there is no valid Content Security Policy (CSP).

Use the attributes directly inside the svg elements.
This passes the W3C validator, except for the 'white-space' attribute. So keep this one inside a style attribute.
2025-09-09 21:45:37 +02:00
Maarten BentandVadim Zeitlin 29c30d5917 Improve HitTest in generic wxListCtrl
Detect when a checkbox is hit and return wxLIST_HITTEST_ONITEMSTATEICON.

Determine the correct location of the icon, it might be preceded by a
checkbox.

Return only the icon rectangle in GetSubItemRect with wxLIST_RECT_ICON,
not the padding or margins above/below the icon.

Closes #25764.
2025-09-06 21:20:30 +02:00
Maarten Bent 098c7f0c4a Reduce wxPropertyGrid gutter width
Using the actual expander icon size instead of hard-coded ones (see 229a9631)
causes the gutter around the icons to be too big.

In general the icon seems wide enough to not need a gutter. Only on Windows
without using the system theme (i.e. when the +/- expander is used) the icon
becomes to small. Calculate a gutter size that will increase the icon width to
a standard 16px width.
2025-09-06 01:03:49 +02:00
Maarten Bent e3bfafeb57 Make wxGenericCalendarCtrl DPI aware
Use FromDIP for the hard-coded constants, and replace some numbers with constants.

Don't use a fixed position in the calendar example.
2025-09-05 23:50:21 +02:00