Browse Source

Expose max/min for slider controls etc.

ui-automation-test
Steven Kirk 5 years ago
parent
commit
2df1e32aae
  1. 29
      native/Avalonia.Native/src/OSX/automation.mm
  2. 6
      src/Avalonia.Native/AvnAutomationPeer.cs
  3. 6
      src/Avalonia.Native/avn.idl

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

@ -157,6 +157,27 @@ public:
return [super accessibilityValue];
}
- (id)accessibilityMinValue
{
if (_peer->IsRangeValueProvider())
{
return [NSNumber numberWithDouble:_peer->RangeValueProvider_GetMinimum()];
}
return [super accessibilityMinValue];
}
- (id)accessibilityMaxValue
{
if (_peer->IsRangeValueProvider())
{
return [NSNumber numberWithDouble:_peer->RangeValueProvider_GetMaximum()];
}
return [super accessibilityMaxValue];
}
- (NSArray *)accessibilityChildren
{
if (_children == nullptr && _peer != nullptr)
@ -226,7 +247,7 @@ public:
{
if (!_peer->IsExpandCollapseProvider())
return NO;
return _peer->ExpandCollapseProvider_IsExpanded();
return _peer->ExpandCollapseProvider_GetIsExpanded();
}
- (void)setAccessibilityExpanded:(BOOL)accessibilityExpanded
@ -284,7 +305,7 @@ public:
{
if (selector == @selector(accessibilityPerformShowMenu))
{
return _peer->IsExpandCollapseProvider() && _peer->ExpandCollapseProvider_ShowsMenu();
return _peer->IsExpandCollapseProvider() && _peer->ExpandCollapseProvider_GetShowsMenu();
}
else if (selector == @selector(isAccessibilityExpanded))
{
@ -295,7 +316,9 @@ public:
return _peer->IsInvokeProvider() || _peer->IsExpandCollapseProvider();
}
else if (selector == @selector(accessibilityPerformIncrement) ||
selector == @selector(accessibilityPerformDecrement))
selector == @selector(accessibilityPerformDecrement) ||
selector == @selector(accessibilityMinValue) ||
selector == @selector(accessibilityMaxValue))
{
return _peer->IsRangeValueProvider();
}

6
src/Avalonia.Native/AvnAutomationPeer.cs

@ -78,14 +78,14 @@ namespace Avalonia.Native
public int IsExpandCollapseProvider() => (_inner is IExpandCollapseProvider).AsComBool();
public int ExpandCollapseProvider_IsExpanded() => ((IExpandCollapseProvider)_inner).ExpandCollapseState switch
public int ExpandCollapseProvider_GetIsExpanded() => ((IExpandCollapseProvider)_inner).ExpandCollapseState switch
{
ExpandCollapseState.Expanded => 1,
ExpandCollapseState.PartiallyExpanded => 1,
_ => 0,
};
public int ExpandCollapseProvider_ShowsMenu() => ((IExpandCollapseProvider)_inner).ShowsMenu.AsComBool();
public int ExpandCollapseProvider_GetShowsMenu() => ((IExpandCollapseProvider)_inner).ShowsMenu.AsComBool();
public void ExpandCollapseProvider_Expand() => ((IExpandCollapseProvider)_inner).Expand();
public void ExpandCollapseProvider_Collapse() => ((IExpandCollapseProvider)_inner).Collapse();
@ -94,6 +94,8 @@ namespace Avalonia.Native
public int IsRangeValueProvider() => (_inner is IRangeValueProvider).AsComBool();
public double RangeValueProvider_GetValue() => ((IRangeValueProvider)_inner).Value;
public double RangeValueProvider_GetMinimum() => ((IRangeValueProvider)_inner).Minimum;
public double RangeValueProvider_GetMaximum() => ((IRangeValueProvider)_inner).Maximum;
public double RangeValueProvider_GetSmallChange() => ((IRangeValueProvider)_inner).SmallChange;
public double RangeValueProvider_GetLargeChange() => ((IRangeValueProvider)_inner).LargeChange;
public void RangeValueProvider_SetValue(double value) => ((IRangeValueProvider)_inner).SetValue(value);

6
src/Avalonia.Native/avn.idl

@ -817,8 +817,8 @@ interface IAvnAutomationPeer : IUnknown
IAvnAutomationPeer* RootProvider_GetPeerFromPoint(AvnPoint point);
bool IsExpandCollapseProvider();
bool ExpandCollapseProvider_IsExpanded();
bool ExpandCollapseProvider_ShowsMenu();
bool ExpandCollapseProvider_GetIsExpanded();
bool ExpandCollapseProvider_GetShowsMenu();
void ExpandCollapseProvider_Expand();
void ExpandCollapseProvider_Collapse();
@ -827,6 +827,8 @@ interface IAvnAutomationPeer : IUnknown
bool IsRangeValueProvider();
double RangeValueProvider_GetValue();
double RangeValueProvider_GetMinimum();
double RangeValueProvider_GetMaximum();
double RangeValueProvider_GetSmallChange();
double RangeValueProvider_GetLargeChange();
void RangeValueProvider_SetValue(double value);

Loading…
Cancel
Save