public delegate uint AccessibilityGetInterfaces(IntPtr self);
[EditorBrowsable(EditorBrowsableState.Never)]
public AccessibilityGetInterfaces GetInterfaces; // 36
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ public delegate IntPtr AccessibilityGetRangeExtents(IntPtr self, int startOffset, int endOffset, int coordType);
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public AccessibilityGetRangeExtents GetRangeExtents; // 37
}
[DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_SetAccessibilityConstructor_NUI")]
}
[EditorBrowsable(EditorBrowsableState.Never)]
+ protected virtual Rectangle AccessibilityGetRangeExtents(int startOffset, int endOffset, AccessibilityCoordinateType coordType)
+ {
+ return new Rectangle(0, 0, 0, 0);
+ }
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
protected virtual bool AccessibilityCopyText(int startPosition, int endPosition)
{
return false;
[EditorBrowsable(EditorBrowsableState.Never)]
Paragraph,
}
+
+ /// <summary>
+ /// Accessibility coordinate type describing if coordinates are relative to screen or window
+ /// </summary>
+ /// <seealso cref="View.AccessibilityGetRangeExtents" />
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum AccessibilityCoordinateType
+ {
+ /// <summary>
+ /// Specifies xy coordinates relative to the screen.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Screen,
+ /// <summary>
+ /// Specifies xy coordinates relative to the component's top-level window.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Window,
+ }
}
return Interop.ControlDevel.DaliAccessibilityNewRange(range.StartOffset, range.EndOffset, range.Content);
}
+ private static IntPtr DuplicateAccessibilityRectangle(Rectangle rect)
+ {
+ return Interop.Rectangle.NewRectangle(rect.X, rect.Y, rect.Width, rect.Height);
+ }
+
//
// Accessible interface
//
ad.GetCharacterCount = AccessibilityGetCharacterCountWrapper;
ad.GetCursorOffset = AccessibilityGetCursorOffsetWrapper;
+ ad.GetRangeExtents = AccessibilityGetRangeExtentsWrapper;
ad.GetSelection = AccessibilityGetSelectionWrapper;
ad.GetText = AccessibilityGetTextWrapper;
ad.GetTextAtOffset = AccessibilityGetTextAtOffsetWrapper;
return GetViewFromRefObject(self).AccessibilityGetCursorOffset();
}
+ private static IntPtr AccessibilityGetRangeExtentsWrapper(IntPtr self, int startOffset, int endOffset, int coordType)
+ {
+ using Rectangle rect = GetViewFromRefObject(self).AccessibilityGetRangeExtents(startOffset, endOffset, (AccessibilityCoordinateType)coordType);
+
+ return DuplicateAccessibilityRectangle(rect);
+ }
+
private static IntPtr AccessibilityGetSelectionWrapper(IntPtr self, int selectionNumber)
{
AccessibilityRange range = GetViewFromRefObject(self).AccessibilityGetSelection(selectionNumber);