private static void NativeSetSelectedIndexes(BaseProdControl control, IEnumerable <int> indexes) { foreach (int index in indexes) { ProdListBoxNative.SetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, index); } }
private static ToggleState UiaGetToggleState(BaseProdControl control) { ToggleState ret = TogglePatternHelper.GetToggleState(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage(ret.ToString())); return(ret); }
private static bool UiaGetIsSelected(BaseProdControl control) { bool retVal = SelectionItemPatternHelper.IsItemSelected(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
private static AutomationElement UiaGetItem(BaseProdControl control, int row, int column) { AutomationElement retVal = GridPatternHelper.GetItem(control.UIAElement, row, column); LogController.ReceiveLogMessage(new LogMessage(retVal.Current.Name)); return(retVal); }
private static double UiaGetSmallChange(BaseProdControl control) { double retVal = RangeValuePatternHelper.GetSmallChange(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
private static int UiaGetRowCount(BaseProdControl control) { int retVal = GridPatternHelper.GetRowCount(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
/// <summary> /// Waits a specified amount of time for the specified control to be ready for interaction. /// </summary> /// <param name="control">The UI Automation element</param> /// <param name="delay">Time, in seconds, to wait for window to exist. -1 to wait forever</param> /// <returns> /// <c>true</c> if ready, <c>false</c> if not ready within time limit /// </returns> /// <exception cref="ProdOperationException">Examine inner exception</exception> public static bool ControlWaitReady(BaseProdControl control, int delay) { int tryCounter = 0; try { while (tryCounter != delay || delay == -1) { if (control.UIAElement.Current.IsEnabled) { return(true); } Thread.Sleep(1000); tryCounter++; } return(false); } catch (InvalidOperationException err) { throw new ProdOperationException(err.Message, err); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
private static RowOrColumnMajor UiaGetRowOrColumnMajor(BaseProdControl control) { RowOrColumnMajor retVal = TablePatternHelper.GetRowOrColumnMajor(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
private static void UiaSetValue(BaseProdControl control, double value) { LogController.ReceiveLogMessage(new LogMessage(value.ToString())); AutomationEventVerifier.Register(new EventRegistrationMessage(control, RangeValuePattern.ValueProperty)); RangeValuePatternHelper.SetValue(control.UIAElement, value); }
private static int UiaGetItemCount(BaseProdControl control) { AutomationElementCollection convRet = SelectionItemPatternHelper.GetListItems(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage("Items: " + convRet.Count)); return(convRet.Count); }
/// <summary> /// inserts the supplied string to the existing textBox text /// </summary> /// <param name="extension">The extended interface.</param> /// <param name="control">The UI Automation element</param> /// <param name="newText">Text to append to TextBox value</param> /// <param name="index">Zero based index of string to insert text into</param> public static void InsertTextHook(this ValueAdapter extension, BaseProdControl control, string newText, int index) { if ((bool)control.UIAElement.GetCurrentPropertyValue(ValuePattern.IsReadOnlyProperty)) { throw new ProdOperationException("TextBox is Read Only"); } try { UiaInsertText(control, newText, index); } catch (ArgumentNullException err) { throw new ProdOperationException(err); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err); } catch (InvalidOperationException) { /* now try a native SendMessage */ NativeInsertText(control, newText, index); } }
/// <summary> /// Handles the UIA version of The extended interface. event /// </summary> /// <param name="control">The UI Automation element</param> private static void UiaInvoke(BaseProdControl control) { AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent)); LogController.ReceiveLogMessage(new LogMessage(CLICK_MSG + control.UIAElement.Current.Name)); InvokePatternHelper.Invoke(control.UIAElement); }
private static string UiaGetText(BaseProdControl control) { string ret = ValuePatternHelper.GetValue(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage("String: " + ret)); return(ret); }
private static int UiaGetRowSpan(BaseProdControl control) { int retVal = TableItemPatternHelper.GetRowSpan(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage("Row Span: " + retVal)); return(retVal); }
private static int UiaSelectedIndex(BaseProdControl control) { AutomationElement[] element = SelectionPatternHelper.SelectedItems(control.UIAElement); int retVal = SelectionItemPatternHelper.FindIndexByItem(control.UIAElement, element[0].Current.Name); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString(CultureInfo.CurrentCulture))); return(retVal); }
/// <summary> /// Gets selection status of the item. /// </summary> /// <param name="control">The UI Automation element</param> /// <param name="text">The text.</param> /// <returns></returns> private static bool UiaIsItemSelected(BaseProdControl control, string text) { AutomationElement element = SelectionItemPatternHelper.FindItemByText(control.UIAElement, text); bool retVal = SelectionItemPatternHelper.IsItemSelected(element); LogController.ReceiveLogMessage(new LogMessage(retVal.ToString())); return(retVal); }
private static void UiaSelectMenuItem(BaseProdControl control, string[] itemPath) { AutomationElementCollection menuItems = UiaGetMenuItems(control); AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent)); LogController.ReceiveLogMessage(new LogMessage(string.Join(",", itemPath))); ExpandMenuItem(menuItems, itemPath); }
private static int UiaGetLength(BaseProdControl control) { string txt = ValuePatternHelper.GetValue(control.UIAElement); int retVal = txt.Length; LogController.ReceiveLogMessage(new LogMessage("Length: " + retVal)); return(retVal); }
private static double NativeGetValue(BaseProdControl control) { if (control.UIAElement.Current.ControlType == ControlType.Spinner) { return(ProdSliderNative.GetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); } return(ProdSliderNative.GetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); }
private static void NativeSetValue(BaseProdControl control, double value) { if (control.UIAElement.Current.ControlType == ControlType.Spinner) { ProdSpinnerNative.SetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, value); } ProdSliderNative.SetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, value); }
/// <summary> /// Natives the get items. /// </summary> /// <param name="control">The control.</param> /// <returns></returns> private static Collection <object> NativeGetItems(BaseProdControl control) { if (control.UIAElement.Current.ControlType == ControlType.ComboBox) { return(ProdComboBoxNative.GetItemsNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); } return(ProdListBoxNative.GetItemsNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); }
private static Collection <object> UiaGetItems(BaseProdControl control) { AutomationElementCollection convRet = SelectionItemPatternHelper.GetListItems(control.UIAElement); Collection <object> retVal = InternalUtilities.AutomationCollToObjectList(convRet); LogController.ReceiveLogMessage(new LogMessage("List Items: ", retVal)); return(retVal); }
private static void NativeSetSelectedItem(BaseProdControl control, string itemText) { if (control.UIAElement.Current.ControlType == ControlType.ComboBox) { ProdComboBoxNative.SelectItemNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, itemText); } ProdListBoxNative.SelectItemNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, itemText); }
private static void UiaSetSelectedItem(BaseProdControl control, string itemText) { LogController.ReceiveLogMessage(new LogMessage("Selecting " + itemText)); AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementSelectedEvent)); AutomationElement element = SelectionItemPatternHelper.FindItemByText(control.UIAElement, itemText); SelectionItemPatternHelper.SelectItem(element); }
private static AutomationElement[] UiaGetRowHeaders(BaseProdControl control) { AutomationElement[] retVal = TableItemPatternHelper.GetRowHeaderItems(control.UIAElement); Collection <object> retList = new Collection <object>(retVal); LogController.ReceiveLogMessage(new LogMessage("Headers", retList)); return(retVal); }
private static void UiaInvokeByAccessKey(BaseProdControl control, string keyCombination) { string cleaned = InternalUtilities.ConvertStringToSendKey(keyCombination); control.SetFocus(); AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent)); LogController.ReceiveLogMessage(new LogMessage(cleaned)); InternalUtilities.SendKeysSetText(control.UIAElement, cleaned); }
private static int NativeSelectedIndex(BaseProdControl control) { if (control.UIAElement.Current.ControlType == ControlType.ComboBox) { return(ProdComboBoxNative.GetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); } return(ProdListBoxNative.GetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle)); }
private static void UiaSetSelectedIndex(BaseProdControl control, int index) { LogController.ReceiveLogMessage(new LogMessage("Selecting " + index)); AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementSelectedEvent)); AutomationElement indexedItem = SelectionItemPatternHelper.FindItemByIndex(control.UIAElement, index); SelectionItemPatternHelper.SelectItem(indexedItem); }
private static int UiaGetSelectedItemCount(BaseProdControl control) { if (!UiaCanSelectMultiple(control)) { throw new ProdOperationException("Does not support multiple selection"); } AutomationElement[] selectedItems = SelectionPatternHelper.SelectedItems(control.UIAElement); LogController.ReceiveLogMessage(new LogMessage("Count: " + selectedItems.Length)); return(selectedItems.Length); }
/// <summary> /// Send the BM_Click message to a button control /// </summary> /// <param name="control">The UI Automation element</param> private static void NativeInvoke(BaseProdControl control) { if (control.UIAElement.Current.ControlType != ControlType.Button) { return; } /* should throw with no handle */ NativeInvokeHelper.Invoke(control); }