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.
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.
On macOS, wxUSE_ACCESSIBILITY (the generic wxAccessible layer) is unused:
Cocoa's dataview implementation relies entirely on native NSAccessibility,
and had no code at all describing custom-rendered cells to it. Both
VoiceOver and the ordinary tooltip mechanism fell back to NSObject's
default -description on the private wxCustomRendererObject value holder,
announcing/showing literally "<wxCustomRendererObject: 0x...>" instead of
the cell's actual content.
Add wxDataViewCustomRendererBase::GetAccessibleText() which is always
available in wxOSX that stringifies the renderer's current value, with
explicit handling for wxDataViewIconText (the common case of an
icon-plus-text custom renderer) since wxVariant::MakeString() doesn't
know that type. Also improve the existing GetAccessibleText()
implementation in the generic version by adding specific support for
wxDataViewIconText to it too.
Surface it on macOS via an -description override on wxCustomRendererObject,
which both NSCell's default stringification and the accessibility bridge
already consult for non-string objectValues.
Verified against a live app (aMule) with a real accessibility inspector
(pyobjc/ApplicationServices AXUIElement queries, the same API Accessibility
Inspector uses): custom-rendered cells now report their real text instead
of the debug representation, confirmed via 5 rounds of AX-tree hammering
with zero crashes. Also verified against samples/dataview with a custom
renderer using the same wxDataViewIconText round-trip.
Closes#18723.
Closes#26808.
Closes#26809.
This function could return an item which wasn't actually visible after
8ca1be38e2 (Add wxGenericTreeCtrl::DoGetNext(Next_Visible) function,
2023-11-08) due to a confusion about what "visible" meant, see the
parent commit.
Return the next item which is really visible on screen from this
function again.
See #24041.
Closes#26839.
8ca1be38e2 (Add wxGenericTreeCtrl::DoGetNext(Next_Visible) function,
2023-11-08) added this flag with a confusing name because it doesn't
mean the same thing here as in GetNextVisible(): here "visible" meant
just "in an expanded branch" and not necessarily "visible on screen".
Rename the flag to make it more clear what it means.
No real changes yet.
On MSW, translate logical left and right mouse buttons to their physical
buttons before passing them to mouse_event(). This keeps MouseClick() as
a primary-button click and MouseClick(wxMOUSE_BTN_RIGHT) as a secondary
click when the user swaps the mouse buttons.
Document this behavior for GUI tests.
Closes#26833.
To detect whether DarkMode_DarkTheme is available, use a dedicated
function rather than wxCheckOsVersion, for improved readability.
No changes in behaviour.
Closes#26817.
Replace BSTR wrapper AutoBSTR introduced locally with dark mode changes
to task dialog with existing wxBasicString serving the same purpose.
Also reorder the include headers so they are sorted alphabetically
as they should be.
No real changes.
Closes#26815.
This fixes an apparent copy-paste mistake. Setting `WX_GL_DEPTH_SIZE`
behind `Stencil()` doesn't make a great deal of sense. So we're simply
fixing the attribute assignment.
Closes#26821.
charactersIgnoringModifiersIncludingShift()'s UCKeyTranslate fallback
forced cmdKey but never Shift, so Ctrl+Shift+Minus produced '-' not
'_'. Redo the translation with shiftKey when the unshifted result
isn't a letter, but only for wxEVT_CHAR: KEY_DOWN/KEY_UP must stay
shift-invariant, so the character events now take the wx event type
to scope the fix.
The Ctrl-fold to ASCII control codes also only covered a-z. per
wxKeyEvent's docs, [, \, ], ^ and _ should fold to 27-31 too, and
GetUnicodeKey() should match GetKeyCode() for these.
Closes#26810.
Focus the native edit child when testing wxComboBox Enter handling on MSW,
where wxEVT_TEXT_ENTER is generated from the edit control's character message.
Also split Return simulation into key down/yield/key up so the native message
sequence is observed.
Make the other control tests less dependent on platform-specific details:
check visibility of the actual selected grid endpoint instead of a
DPI-sensitive nearby cell, and allow wxDataViewCtrl to report more than one
key-down event.
Some DC implementations can normalize the requested font when it is selected
into the DC. Save the font actually returned by the DC after applying the
font changer, and verify that clipping restores that realized font.
Make auth and DELETE response checks independent of JSON whitespace, preserve
the base URL path when redirecting to basic auth, and skip digest auth only
with the default public httpbin mirror and WinHTTP backend.
Add a TempDir test helper that creates a unique temporary directory and
removes it recursively when it goes out of scope.
Use it in archive, intl, filename and fswatcher tests instead of open-coding
temporary directory creation with CreateTempFileName(), tempnam(), mkdtemp()
or fixed names under the temporary directory.