internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { DataGridView dataGridView = Owner.DataGridView; switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: return(dataGridView.AccessibilityObject.GetChild(0)); case UnsafeNativeMethods.NavigateDirection.PreviousSibling: return(null); case UnsafeNativeMethods.NavigateDirection.NextSibling: if (dataGridView.Columns.GetColumnCount(DataGridViewElementStates.Visible) == 0) { return(null); } return(NavigateForward()); default: return(null); } }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { if (direction == UnsafeNativeMethods.NavigateDirection.FirstChild || direction == UnsafeNativeMethods.NavigateDirection.LastChild) { return(this.ownerItem.ProgressBar.AccessibilityObject); } // Handle Parent and other directions in base ToolStripItem.FragmentNavigate() method. return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: case UnsafeNativeMethods.NavigateDirection.PreviousSibling: case UnsafeNativeMethods.NavigateDirection.NextSibling: var toolStripProgressBarControl = Owner as ToolStripProgressBarControl; if (toolStripProgressBarControl != null) { return(toolStripProgressBarControl.Owner.AccessibilityObject.FragmentNavigate(direction)); } break; } return(base.FragmentNavigate(direction)); }
/// <summary> /// Request to return the element in the specified direction. /// </summary> /// <param name="direction">Indicates the direction in which to navigate.</param> /// <returns>Returns the element in the specified direction.</returns> internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { if (direction == UnsafeNativeMethods.NavigateDirection.Parent && _owningPropertyGrid.SelectedGridEntry != null && _owningDropDownButton.Visible) { return(_owningPropertyGrid.SelectedGridEntry?.AccessibilityObject); } else if (direction == UnsafeNativeMethods.NavigateDirection.PreviousSibling) { return(_owningPropertyGrid.EditAccessibleObject); } return(base.FragmentNavigate(direction)); }
/// <summary> /// Returns the element in the specified direction. /// </summary> /// <param name="direction">Indicates the direction in which to navigate.</param> /// <returns>Returns the element in the specified direction.</returns> internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { PropertyGridView.PropertyGridViewAccessibleObject parent = (PropertyGridView.PropertyGridViewAccessibleObject)Parent; switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: return(Parent); case UnsafeNativeMethods.NavigateDirection.NextSibling: return(parent.GetNextCategory(_owningCategoryGridEntry)); case UnsafeNativeMethods.NavigateDirection.PreviousSibling: return(parent.GetPreviousCategory(_owningCategoryGridEntry)); case UnsafeNativeMethods.NavigateDirection.FirstChild: return(parent.GetFirstChildProperty(_owningCategoryGridEntry)); case UnsafeNativeMethods.NavigateDirection.LastChild: return(parent.GetLastChildProperty(_owningCategoryGridEntry)); } return(base.FragmentNavigate(direction)); }
object UnsafeNativeMethods.IRawElementProviderFragment.Navigate(UnsafeNativeMethods.NavigateDirection direction) { IntSecurity.UnmanagedCode.Assert(); return(AsNativeAccessible(publicIRawElementProviderFragment.Navigate(direction))); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: var owner = Owner as IDataGridViewEditingControl; if (owner != null && owner.EditingControlDataGridView.EditingControl == owner) { return(_parentAccessibleObject); } return(null); } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: return(Parent); case UnsafeNativeMethods.NavigateDirection.NextSibling: if (Parent.GetChildCount() > 1) { return(Parent.GetChild(1)); } break; case UnsafeNativeMethods.NavigateDirection.FirstChild: if (GetChildCount() > 0) { return(GetChild(0)); } break; case UnsafeNativeMethods.NavigateDirection.LastChild: if (GetChildCount() > 0) { return(GetChild(GetChildCount() - 1)); } break; } return(null); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { return(_accessibleObject.FragmentNavigate(direction)); }
/// <summary> /// Returns the element in the specified direction. /// </summary> /// <param name="direction">Indicates the direction in which to navigate.</param> /// <returns>Returns the element in the specified direction.</returns> internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.NextSibling: var propertyGridViewAccessibleObject = (PropertyGridView.PropertyGridViewAccessibleObject)Parent; var propertyGridView = propertyGridViewAccessibleObject.Owner as PropertyGridView; bool currentGridEntryFound = false; return(propertyGridViewAccessibleObject.GetNextGridEntry(_owningPropertyDescriptorGridEntry, propertyGridView.TopLevelGridEntries, out currentGridEntryFound)); case UnsafeNativeMethods.NavigateDirection.PreviousSibling: propertyGridViewAccessibleObject = (PropertyGridView.PropertyGridViewAccessibleObject)Parent; propertyGridView = propertyGridViewAccessibleObject.Owner as PropertyGridView; currentGridEntryFound = false; return(propertyGridViewAccessibleObject.GetPreviousGridEntry(_owningPropertyDescriptorGridEntry, propertyGridView.TopLevelGridEntries, out currentGridEntryFound)); case UnsafeNativeMethods.NavigateDirection.FirstChild: return(GetFirstChild()); case UnsafeNativeMethods.NavigateDirection.LastChild: return(GetLastChild()); } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { int firstItemIndex = 0; int lastItemIndex = _owningListBox.Items.Count - 1; int currentIndex = CurrentIndex; switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: return(_owningListBox.AccessibilityObject); case UnsafeNativeMethods.NavigateDirection.PreviousSibling: if (currentIndex > firstItemIndex && currentIndex <= lastItemIndex) { return(_owningAccessibleObject.GetChild(currentIndex - 1)); } return(null); case UnsafeNativeMethods.NavigateDirection.NextSibling: if (currentIndex >= firstItemIndex && currentIndex < lastItemIndex) { return(_owningAccessibleObject.GetChild(currentIndex + 1)); } return(null); } return(base.FragmentNavigate(direction)); }
/// <summary> /// Request to return the element in the specified direction. /// </summary> /// <param name="direction">Indicates the direction in which to navigate.</param> /// <returns>Returns the element in the specified direction.</returns> internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { if (_parentPropertyGrid.AccessibilityObject is PropertyGridAccessibleObject propertyGridAccessibleObject) { UnsafeNativeMethods.IRawElementProviderFragment navigationTarget = propertyGridAccessibleObject.ChildFragmentNavigate(this, direction); if (navigationTarget != null) { return(navigationTarget); } } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { if (owner == null || owner.DropDown == null) { return(null); } switch (direction) { case UnsafeNativeMethods.NavigateDirection.FirstChild: int childCount = GetChildCount(); if (childCount > 0) { return(GetChildFragment(0)); } return(null); case UnsafeNativeMethods.NavigateDirection.LastChild: childCount = GetChildCount(); if (childCount > 0) { return(GetChildFragment(childCount - 1)); } return(null); case UnsafeNativeMethods.NavigateDirection.NextSibling: case UnsafeNativeMethods.NavigateDirection.PreviousSibling: ToolStripDropDown dropDown = owner.Owner as ToolStripDropDown; if (dropDown == null) { break; } int index = dropDown.Items.IndexOf(owner); if (index == -1) { Debug.Fail("No item matched the index?"); return(null); } index += direction == UnsafeNativeMethods.NavigateDirection.NextSibling ? 1 : -1; if (index >= 0 && index < dropDown.Items.Count) { var item = dropDown.Items[index]; var controlHostItem = item as ToolStripControlHost; if (controlHostItem != null) { return(controlHostItem.ControlAccessibilityObject); } return(item.AccessibilityObject); } return(null); } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { if (owner == null || owner.DropDown == null) { return(null); } switch (direction) { case UnsafeNativeMethods.NavigateDirection.FirstChild: return(owner.DropDown.Items.Count > 0 ? owner.DropDown.Items[0].AccessibilityObject : null); case UnsafeNativeMethods.NavigateDirection.LastChild: return(owner.DropDown.Items.Count > 0 ? owner.DropDown.Items[owner.DropDown.Items.Count - 1].AccessibilityObject : null); case UnsafeNativeMethods.NavigateDirection.NextSibling: case UnsafeNativeMethods.NavigateDirection.PreviousSibling: ToolStripDropDown dropDown = owner.Owner as ToolStripDropDown; if (dropDown == null) { break; } int index = dropDown.Items.IndexOf(owner); if (index == -1) { Debug.Fail("No item matched the index?"); return(null); } index += direction == UnsafeNativeMethods.NavigateDirection.NextSibling ? 1 : -1; return(index >= 0 && index < dropDown.Items.Count ? dropDown.Items[index].AccessibilityObject : null); } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.FirstChild: int childCount = GetChildCount(); if (childCount > 0) { return(GetChild(0)); } break; case UnsafeNativeMethods.NavigateDirection.LastChild: childCount = GetChildCount(); if (childCount > 0) { int lastChildIndex = childCount - 1; return(GetChild(lastChildIndex)); } break; } return(null); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.FirstChild: return(DropDownItemsCount > 0 ? ownerItem.DropDown.Items[0].AccessibilityObject : null); case UnsafeNativeMethods.NavigateDirection.LastChild: return(DropDownItemsCount > 0 ? ownerItem.DropDown.Items[ownerItem.DropDown.Items.Count - 1].AccessibilityObject : null); } return(base.FragmentNavigate(direction)); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { switch (direction) { case UnsafeNativeMethods.NavigateDirection.Parent: var currentCell = dataGridView.CurrentCell; if (currentCell != null && dataGridView.IsCurrentCellInEditMode) { return(currentCell.AccessibilityObject); } break; case UnsafeNativeMethods.NavigateDirection.FirstChild: case UnsafeNativeMethods.NavigateDirection.LastChild: return(dataGridView.EditingControlAccessibleObject); } return(null); }
internal override UnsafeNativeMethods.IRawElementProviderFragment FragmentNavigate(UnsafeNativeMethods.NavigateDirection direction) { StatusStrip statusStrip = Owner as StatusStrip; if (statusStrip == null || statusStrip.Items.Count == 0) { return(null); } switch (direction) { case UnsafeNativeMethods.NavigateDirection.FirstChild: AccessibleObject firstChild = null; for (int i = 0; i < GetChildCount(); i++) { firstChild = GetChild(i); if (firstChild != null && !(firstChild is ControlAccessibleObject)) { return(firstChild); } } return(null); case UnsafeNativeMethods.NavigateDirection.LastChild: AccessibleObject lastChild = null; for (int i = GetChildCount() - 1; i >= 0; i--) { lastChild = GetChild(i); if (lastChild != null && !(lastChild is ControlAccessibleObject)) { return(lastChild); } } return(null); } return(base.FragmentNavigate(direction)); }