Browse Source

Implement macOS accessibility value setter (#20262)

pull/20271/head
Julien Lebosquain 2 months ago
committed by GitHub
parent
commit
f46758f972
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 16
      native/Avalonia.Native/src/OSX/automation.mm
  2. 2
      src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs
  3. 2
      src/Avalonia.Controls/Automation/Provider/IValueProvider.cs
  4. 2
      src/Avalonia.Native/avn.idl

16
native/Avalonia.Native/src/OSX/automation.mm

@ -216,6 +216,22 @@
return [super accessibilityValue];
}
- (void)setAccessibilityValue:(id)newValue
{
if (_peer->IsValueProvider())
{
if (newValue == nil)
_peer->ValueProvider_SetValue(nil);
else if ([newValue isKindOfClass:[NSString class]])
_peer->ValueProvider_SetValue([(NSString*)newValue UTF8String]);
}
else if (_peer->IsRangeValueProvider())
{
if ([newValue isKindOfClass:[NSNumber class]])
_peer->RangeValueProvider_SetValue([(NSNumber*)newValue doubleValue]);
}
}
- (id)accessibilityMinValue
{
if (_peer->IsRangeValueProvider())

2
src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs

@ -127,7 +127,7 @@
/// <item>
/// <term>macOS</term>
/// <description>
/// <c>NSAccessibilityProtocol.setAccessibilityValue</c> (not implemented)
/// <c>NSAccessibilityProtocol.setAccessibilityValue</c>
/// </description>
/// </item>
/// </list>

2
src/Avalonia.Controls/Automation/Provider/IValueProvider.cs

@ -57,7 +57,7 @@
/// <item>
/// <term>macOS</term>
/// <description>
/// <c>NSAccessibilityProtocol.setAccessibilityValue</c> (not implemented)
/// <c>NSAccessibilityProtocol.setAccessibilityValue</c>
/// </description>
/// </item>
/// </list>

2
src/Avalonia.Native/avn.idl

@ -1317,7 +1317,7 @@ interface IAvnAutomationPeer : IUnknown
bool IsValueProvider();
IAvnString* ValueProvider_GetValue();
void ValueProvider_SetValue(char* value);
void ValueProvider_SetValue([const] char* value);
IAvnString* GetHelpText();

Loading…
Cancel
Save