public static void TabSelect(IntPtr controlHandle, int index) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); AutomationElementCollection aec = SelectionItemPatternHelper.GetListItems(control); /* When using the GetListItems() methods, item index 0 is the tab control itself, so add on to get to correct TabItem */ if (index >= int.MaxValue) { throw new ProdOperationException("input must be less than Int32.MaxValue"); } int adjustedIndex = index + 1; string itemText = aec[adjustedIndex].Current.Name; StaticEvents.RegisterEvent(SelectionItemPattern.ElementSelectedEvent, control); SelectionItemPatternHelper.SelectItem(SelectionItemPatternHelper.FindItemByText(control, itemText)); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } catch (InvalidOperationException) { /* Call native function */ ProdTabNative.SetSelectedTab(controlHandle, index); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
/// <summary> /// Gets the value of the current slider control /// </summary> /// <param name="controlHandle">NativeWindowHandle to the target control</param> /// <returns> /// Value of the control /// </returns> /// <exception cref="ProdOperationException">Examine inner exception</exception> /// <remarks> /// Invalid for WPF controls /// </remarks> public static double SliderGetValue(IntPtr controlHandle) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(RangeValuePattern.Pattern, controlHandle); StaticEvents.RegisterEvent(RangeValuePattern.ValueProperty, control); double retVal = RangeValuePatternHelper.GetValue(control); if (retVal == -1) { ProdSliderNative.GetValueNative(controlHandle); } LogController.ReceiveLogMessage(new LogMessage(control.Current.Name + " Value: " + retVal)); return(retVal); } 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); } }
public static void DeselectItem(IntPtr controlHandle, string itemText) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); AutomationElement itemToSelect = SelectionItemPatternHelper.FindItemByText(control, itemText); StaticEvents.RegisterEvent(SelectionItemPattern.ElementRemovedFromSelectionEvent, control); SelectionItemPatternHelper.RemoveFromSelection(itemToSelect); LogController.ReceiveLogMessage(new LogMessage("List Item deselected: " + itemText)); } catch (InvalidOperationException) { /* Call native function */ ProdListBoxNative.DeSelectItemNative(controlHandle, itemText); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
public static void AddToSelection(IntPtr controlHandle, int index) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); StaticEvents.RegisterEvent(SelectionItemPattern.ElementAddedToSelectionEvent, control); SelectionItemPatternHelper.AddToSelection(control, index); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } catch (InvalidOperationException) { /* Call native function */ ProdListBoxNative.AddSelectedItemNative(controlHandle, index); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
public static void SetSelectedItem(IntPtr controlHandle, string itemText) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); StaticEvents.RegisterEvent(SelectionItemPattern.ElementSelectedEvent, control); AutomationElement indexedItem = SelectionItemPatternHelper.FindItemByText(control, itemText); SelectionItemPatternHelper.SelectItem(indexedItem); LogController.ReceiveLogMessage(new LogMessage(itemText)); } catch (InvalidOperationException) { ProdListBoxNative.SelectItemNative(controlHandle, itemText); } catch (ElementNotAvailableException err) { throw new ProdOperationException(err.Message, err); } catch (ArgumentException err) { throw new ProdOperationException(err.Message, err); } }
public static ToggleState GetCheckState(ProdWindow prodwindow, string automationId) { try { AutomationElement control = InternalUtilities.GetHandlelessElement(prodwindow, automationId); StaticEvents.RegisterEvent(TogglePattern.ToggleStateProperty, control); ToggleState ret = TogglePatternHelper.GetToggleState(control); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); return(ret); } 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); } }
public static ToggleState GetCheckState(IntPtr controlHandle) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(TogglePattern.Pattern, controlHandle); StaticEvents.RegisterEvent(TogglePattern.ToggleStateProperty, control); ToggleState ret = TogglePatternHelper.GetToggleState(control); if (ret == ToggleState.Indeterminate) { /* Otherwise, retry with native method */ ret = ProdCheckBoxNative.GetCheckStateNative(controlHandle); } LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); return(ret); } 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); } }
/// <summary> /// Performs a "Click" on the specified static ProdButton /// </summary> /// <param name="controlHandle">NativeWindowHandle of the target control</param> /// <exception cref="ProdOperationException">Examine inner exception</exception> /// <remarks> /// This overload is invalid for WPF controls /// </remarks> public static void ButtonClick(IntPtr controlHandle) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(InvokePattern.Pattern, controlHandle); StaticEvents.RegisterEvent(InvokePattern.InvokedEvent, control); InvokePatternHelper.Invoke(control); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } 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); } }
/// <summary> /// Set value of control /// </summary> /// <param name="controlHandle">NativeWindowHandle to the target control</param> /// <param name="value">The value to set the slider to.</param> /// <exception cref="ProdOperationException">Examine inner exception</exception> /// <remarks> /// Invalid for WPF controls /// </remarks> public static void SliderSetValue(IntPtr controlHandle, double value) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(RangeValuePattern.Pattern, controlHandle); StaticEvents.RegisterEvent(RangeValuePattern.ValueProperty, control); RangeValuePatternHelper.SetValue(control, value); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } 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); } }
public static void SelectRadio(IntPtr controlHandle) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(SelectionPattern.Pattern, controlHandle); StaticEvents.RegisterEvent(SelectionItemPattern.ElementSelectedEvent, control); TogglePatternHelper.SetToggleState(control, ToggleState.On); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } 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); } }
public static void ToggleCheckState(IntPtr controlHandle) { try { AutomationElement control = CommonUIAPatternHelpers.Prologue(TogglePattern.Pattern, controlHandle); StaticEvents.RegisterEvent(TogglePattern.ToggleStateProperty, control); TogglePatternHelper.Toggle(AutomationElement.FromHandle(controlHandle)); LogController.ReceiveLogMessage(new LogMessage(control.Current.Name)); } 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); } }