public TreeItem (IRawElementProviderSimple provider) : base (provider) { invokeProvider = (IInvokeProvider)provider.GetPatternProvider(InvokePatternIdentifiers.Pattern.Id); selectionItemProvider = (ISelectionItemProvider)provider.GetPatternProvider(SelectionItemPatternIdentifiers.Pattern.Id); expandCollapseProvider = provider.GetPatternProvider ( ExpandCollapsePatternIdentifiers.Pattern.Id) as IExpandCollapseProvider; textExpert = TextImplementorFactory.GetImplementor (this, provider); actionExpert = new ActionImplementorHelper (); // TODO: Localize the name?s actionExpert.Add ("click", "click", null, DoClick); if (ToggleProvider != null) actionExpert.Add ("toggle", "toggle", null, DoToggle); if (invokeProvider != null) actionExpert.Add ("invoke", "invoke", null, DoInvoke); IRawElementProviderFragment fragment = Provider as IRawElementProviderFragment; if (fragment != null && fragment.Navigate (NavigateDirection.FirstChild) != null) AddExpandContractAction (); Role = (ToggleProvider != null? Atk.Role.CheckBox: Atk.Role.TableCell); imageExpert = new ImageImplementorHelper (this); editableTextExpert = new EditableTextImplementorHelper (this, this, textExpert); }
public ComponentAdapter (IRawElementProviderSimple provider) : base (provider) { if (provider == null) throw new ArgumentNullException ("provider"); componentExpert = new ComponentImplementorHelper (this); }
public static void RemoveAutomationPropertyChangedEventHandler (IRawElementProviderSimple provider, AutomationPropertyChangedEventHandler eventHandler) { lock (propertyChangedEventEntries) propertyChangedEventEntries.RemoveAll (e => e.Provider == provider && e.Handler == eventHandler); }
public ExpandCollapseButton (IRawElementProviderSimple provider) : base (provider) { ec_prov = (IExpandCollapseProvider)provider.GetPatternProvider ( ExpandCollapsePatternIdentifiers.Pattern.Id); Role = Atk.Role.ToggleButton; }
public MenuItem (IRawElementProviderSimple provider) : base (provider) { if (provider == null) throw new ArgumentNullException ("provider"); if ((provider as IRawElementProviderFragment) == null) throw new ArgumentException ("Provider for ParentMenu should be IRawElementProviderFragment"); textExpert = TextImplementorFactory.GetImplementor (this, provider); Role = Atk.Role.MenuItem; string name = (string) provider.GetPropertyValue (AutomationElementIdentifiers.NameProperty.Id); if (!String.IsNullOrEmpty (name)) Name = name; invokeProvider = (IInvokeProvider) provider.GetPatternProvider (InvokePatternIdentifiers.Pattern.Id); toggleProvider = (IToggleProvider) provider.GetPatternProvider (TogglePatternIdentifiers.Pattern.Id); selectionItemProvider = (ISelectionItemProvider) provider.GetPatternProvider (SelectionItemPatternIdentifiers.Pattern.Id); expandCollapseProvider = (IExpandCollapseProvider) provider.GetPatternProvider (ExpandCollapsePatternIdentifiers.Pattern.Id); actionExpert.Add ("click", "click", null, DoClick); }
public Slider (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.Slider; rangeValueProvider = (IRangeValueProvider)provider.GetPatternProvider (RangeValuePatternIdentifiers.Pattern.Id); textExpert = TextImplementorFactory.GetImplementor (this, provider); oldText = textExpert.Text; }
public static void RemoveAutomationEventHandler (AutomationEvent eventId, IRawElementProviderSimple provider, AutomationEventHandler eventHandler) { lock (automationEventEntries) automationEventEntries.RemoveAll (e => e.EventId == eventId && e.Provider == provider && e.Handler == eventHandler); }
public static void AddStructureChangedEventHandler ( IRawElementProviderSimple provider, TreeScope scope, StructureChangedEventHandler eventHandler) { var entry = new StructureChangedEventEntry (provider, scope, eventHandler); lock (structureChangedEventEntries) structureChangedEventEntries.Add (entry); }
public static void AddAutomationEventHandler (AutomationEvent eventId, IRawElementProviderSimple provider, TreeScope scope, AutomationEventHandler eventHandler) { var entry = new AutomationEventEntry (eventId, provider, scope, eventHandler); lock (automationEventEntries) automationEventEntries.Add (entry); }
public ComboBoxDropDown (IRawElementProviderSimple provider) : base (provider) { this.provider = provider as IRawElementProviderFragmentRoot; if (this.provider == null) throw new ArgumentException ("Provider should be IRawElementProviderFragmentRoot"); expandCollapseProvider = (IExpandCollapseProvider)provider.GetPatternProvider (ExpandCollapsePatternIdentifiers.Pattern.Id); }
public SimpleTreeItem (IRawElementProviderSimple provider) : base (provider) { actionExpert.Clear (); actionExpert.Add (EXPAND_OR_CONTRACT_ACTION_NAME, EXPAND_OR_CONTRACT_ACTION_NAME, EXPAND_OR_CONTRACT_ACTION_DESC, DoInvoke); }
public CheckBoxButton (IRawElementProviderSimple provider) : base (provider) { toggleProvider = (IToggleProvider) provider.GetPatternProvider (TogglePatternIdentifiers.Pattern.Id); imageImplementor = new ImageImplementorHelper (this); if (toggleProvider == null) throw new ArgumentException ("The provider for CheckBox should implement the Toggle pattern"); Role = Atk.Role.CheckBox; }
public TabPage (IRawElementProviderSimple provider): base (provider) { Role = Atk.Role.PageTab; selectionItemProvider = (ISelectionItemProvider)provider.GetPatternProvider ( SelectionItemPatternIdentifiers.Pattern.Id); if (selectionItemProvider == null) throw new ArgumentException ( "Provider for TabPage should implement ISelectionItemProvider"); }
public static void AddAutomationPropertyChangedEventHandler ( IRawElementProviderSimple provider, TreeScope scope, AutomationPropertyChangedEventHandler eventHandler, int [] properties) { var entry = new PropertyChangedEventEntry (provider, scope, properties, eventHandler); lock (propertyChangedEventEntries) propertyChangedEventEntries.Add (entry); }
public ITextRangeProvider RangeFromChild(IRawElementProviderSimple childElement) { if (!(childElement is ElementProxy)) { throw new ArgumentException(SR.Get(SRID.TextProvider_InvalidChild, "childElement")); } return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(RangeFromChild), childElement); }
public Hyperlink (IRawElementProviderSimple provider) : base (provider) { invokeProvider = (IInvokeProvider)provider.GetPatternProvider (InvokePatternIdentifiers.Pattern.Id); hypertext = (IHypertext)invokeProvider; links = new List<HyperlinkObject> (); Role = Atk.Role.Label; textExpert = TextImplementorFactory.GetImplementor (this, provider); }
public Container (IRawElementProviderSimple provider): base (provider) { int controlTypeId = (int) Provider.GetPropertyValue ( AutomationElementIdentifiers.ControlTypeProperty.Id); if (controlTypeId == ControlType.Group.Id || controlTypeId == ControlType.Pane.Id) Role = Atk.Role.Panel; else Role = Atk.Role.Filler; }
public Image (IRawElementProviderSimple provider) : base (provider) { // Perhaps we should use Atk.Role.Image instead, // but gail uses Atk.Role.Icon // If we decide to use Image instead, we may need to // separate BalloonWindow handling, since it should // have Atk.Role.Icon. Role = Atk.Role.Icon; imageImplementor = new ImageImplementorHelper (this); }
public HeaderItem (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.TableColumnHeader; invokeProvider = (IInvokeProvider) provider.GetPatternProvider (InvokePatternIdentifiers.Pattern.Id); imageExpert = new ImageImplementorHelper (this); actionExpert = new ActionImplementorHelper (); if (invokeProvider != null) actionExpert.Add ("click", "click", null, DoClick); }
public Spinner (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.SpinButton; rangeValueProvider = (IRangeValueProvider)provider.GetPatternProvider (RangeValuePatternIdentifiers.Pattern.Id); editableRange = provider.GetPatternProvider (EditableRangePatternIdentifiers.Pattern.Id) as IEditableRangeProvider; valueProvider = (IValueProvider)provider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id); textExpert = TextImplementorFactory.GetImplementor (this, provider); oldText = textExpert.Text; }
// UI Automation Properties supported // AutomationElementIdentifiers.AcceleratorKeyProperty.Id // AutomationIdProperty() ? // AutomationElementIdentifiers.BoundingRectangleProperty.Id // AutomationElementIdentifiers.ClickablePointProperty.Id // AutomationElementIdentifiers.ControlTypeProperty.Id // AutomationElementIdentifiers.HelpTextProperty.Id // AutomationElementIdentifiers.IsContentElementProperty.Id // AutomationElementIdentifiers.IsControlElementProperty.Id // AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id // AutomationElementIdentifiers.LabeledByProperty.Id // AutomationElementIdentifiers.LocalizedControlTypeProperty.Id // AutomationElementIdentifiers.NameProperty.Id public Button (IRawElementProviderSimple provider) : base (provider) { invokeProvider = (IInvokeProvider)provider.GetPatternProvider(InvokePatternIdentifiers.Pattern.Id); imageImplementor = new ImageImplementorHelper (this); InitializeAdditionalProviders (); if (invokeProvider != null) { //it seems the default description should be null actionName = default_invoke_name; Role = Atk.Role.PushButton; } textExpert = TextImplementorFactory.GetImplementor (this, provider); }
/// <summary> /// Maps automation provider to DependencyObject. /// </summary> internal DependencyObject ElementFromProvider(IRawElementProviderSimple provider) { DependencyObject element = null; AutomationPeer peer = PeerFromProvider(provider); if (peer is UIElementAutomationPeer) { element = ((UIElementAutomationPeer)peer).Owner; } else if (peer is ContentElementAutomationPeer) { element = ((ContentElementAutomationPeer)peer).Owner; } return element; }
public Window (IRawElementProviderSimple provider) : base (provider) { if (provider != null) Role = Atk.Role.Frame; balloonWindow = (bool)(provider.GetPropertyValue (AutomationElementIdentifiers.IsNotifyIconProperty.Id) != null); rootProvider = (IRawElementProviderFragmentRoot) provider; if (rootProvider != null && balloonWindow) { Role = Atk.Role.Alert; Name = (string) provider.GetPropertyValue (AutomationElementIdentifiers.HelpTextProperty.Id); } transformProvider = (ITransformProvider) provider.GetPatternProvider (TransformPatternIdentifiers.Pattern.Id); windowProvider = (IWindowProvider) provider.GetPatternProvider (WindowPatternIdentifiers.Pattern.Id); }
public ComboBoxOptions (IRawElementProviderSimple provider) : base (provider) { if (provider == null) throw new ArgumentNullException ("provider"); if ((provider as IRawElementProviderFragment) == null) throw new ArgumentException ("Provider for ParentMenu should be IRawElementProviderFragment"); selectionProvider = (ISelectionProvider)provider.GetPatternProvider(SelectionPatternIdentifiers.Pattern.Id); if (selectionProvider == null) throw new ArgumentException ("The List inside the ComboBox should always implement ISelectionProvider"); selectionHelper = new SelectionProviderUserHelper (provider as IRawElementProviderFragment, selectionProvider); Role = Atk.Role.Menu; }
public SplitButton (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.Filler; button = AutomationBridge.CreateAdapter<Button> (provider); if (button != null) { button.ManagesRemoval = true; base.AddOneChild (button); } ec_button = AutomationBridge.CreateAdapter<ExpandCollapseButton> (provider); if (ec_button != null) { ec_button.ManagesRemoval = true; base.AddOneChild (ec_button); } }
public ComboBoxItem (IRawElementProviderSimple provider) : base (provider) { int controlType = (int) provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id); selectionItemProvider = (ISelectionItemProvider)provider.GetPatternProvider ( SelectionItemPatternIdentifiers.Pattern.Id); if (selectionItemProvider == null) throw new ArgumentException ( String.Format ("Provider for ComboBoxItem (control type {0}) should implement ISelectionItemProvider", controlType)); textExpert = TextImplementorFactory.GetImplementor (this, provider); //FIXME: take in account ComboBox style changes at runtime if (ParentIsSimple ()) Role = Atk.Role.TableCell; else Role = Atk.Role.MenuItem; }
public TextBoxEntryView (IRawElementProviderSimple provider) : base (provider) { if (IsTableCell) Role = Atk.Role.TableCell; else Role = Atk.Role.Text; if (provider.GetPatternProvider (TextPatternIdentifiers.Pattern.Id) == null && provider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id) == null) throw new ArgumentException ("Provider for TextBox should either implement IValue or IText"); textExpert = TextImplementorFactory.GetImplementor (this, provider); if ((int) provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id) == ControlType.Document.Id) multiLine = true; editableTextExpert = new EditableTextImplementorHelper (this, this, textExpert); }
public SplitContainer (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.SplitPane; rangeValueProvider = (IRangeValueProvider)provider.GetPatternProvider (RangeValuePatternIdentifiers.Pattern.Id); object o = provider.GetPropertyValue (AutomationElementIdentifiers.OrientationProperty.Id); if (o is OrientationType) orientation = (OrientationType)o; else { IDockProvider dockProvider = (IDockProvider)provider.GetPatternProvider (DockPatternIdentifiers.Pattern.Id); if (dockProvider != null) { orientation = (dockProvider.DockPosition == DockPosition.Top || dockProvider.DockPosition == DockPosition.Bottom)? OrientationType.Horizontal: OrientationType.Vertical; } else { Log.Warn ("SplitContainer: Couldn't get orientation for splitter. Does not support DockProvider."); orientation = OrientationType.Horizontal; } } }
public ComboBox (IRawElementProviderSimple provider) : base (provider) { if (!(provider is IRawElementProviderFragment)) throw new ArgumentException ("Provider should be IRawElementProviderFragment"); this.Role = Atk.Role.ComboBox; selProvider = (ISelectionProvider)provider.GetPatternProvider (SelectionPatternIdentifiers.Pattern.Id); if (selProvider == null) throw new ArgumentException ("ComboBoxProvider should always implement ISelectionProvider"); selectionHelper = new SelectionProviderUserHelper ((IRawElementProviderFragment)Provider, selProvider, true); var providersSelected = selProvider.GetSelection (); if (providersSelected != null && providersSelected.Length == 1) Name = (string)providersSelected [0].GetPropertyValue (AEIds.NameProperty.Id); }
public ListItem (IRawElementProviderSimple provider) : base (provider) { invokeProvider = (IInvokeProvider)provider.GetPatternProvider(InvokePatternIdentifiers.Pattern.Id); selectionItemProvider = (ISelectionItemProvider)provider.GetPatternProvider(SelectionItemPatternIdentifiers.Pattern.Id); if (selectionItemProvider == null) throw new ArgumentException ("ListItem should always implement ISelectionItemProvider"); toggleProvider = (IToggleProvider) provider.GetPatternProvider (TogglePatternIdentifiers.Pattern.Id); textExpert = TextImplementorFactory.GetImplementor (this, provider); imageExpert = new ImageImplementorHelper (this); actionExpert = new ActionImplementorHelper (); editableTextExpert = new EditableTextImplementorHelper (this, this, textExpert); // TODO: Localize the name?s actionExpert.Add ("click", "click", null, DoClick); if (toggleProvider != null) actionExpert.Add ("toggle", "toggle", null, DoToggle); if (invokeProvider != null) actionExpert.Add ("invoke", "invoke", null, DoInvoke); Role = (toggleProvider != null? Atk.Role.CheckBox: Atk.Role.ListItem); }
/// <summary> /// Server uses this to return an element in response to WM_GETOBJECT. /// </summary> /// <param name="hwnd">hwnd from the WM_GETOBJECT message</param> /// <param name="wParam">wParam from the WM_GETOBJECT message</param> /// <param name="lParam">lParam from the WM_GETOBJECT message</param> /// <param name="el">element to return</param> /// <returns>Server should return the return value as the lresult return value to the WM_GETOBJECT windows message</returns> public static IntPtr ReturnRawElementProvider(IntPtr hwnd, IntPtr wParam, IntPtr lParam, IRawElementProviderSimple el) { ValidateArgument(hwnd != IntPtr.Zero, nameof(SRID.HwndMustBeNonNULL)); ValidateArgumentNonNull(el, "el"); return(UiaCoreProviderApi.UiaReturnRawElementProvider(hwnd, wParam, lParam, el)); }
public static void RaiseStructureChangedEvent(IRawElementProviderSimple provider, StructureChangedEventArgs e) { AutomationInteropProvider.ValidateArgumentNonNull(provider, "provider"); AutomationInteropProvider.ValidateArgumentNonNull(e, "e"); UiaCoreProviderApi.UiaRaiseStructureChangedEvent(provider, e.StructureChangeType, e.GetRuntimeId()); }
public static void RaiseAutomationPropertyChangedEvent(IRawElementProviderSimple element, AutomationPropertyChangedEventArgs e) { AutomationInteropProvider.ValidateArgumentNonNull(element, "element"); AutomationInteropProvider.ValidateArgumentNonNull(e, "e"); UiaCoreProviderApi.UiaRaiseAutomationPropertyChangedEvent(element, e.Property.Id, e.OldValue, e.NewValue); }
public static IntPtr ReturnRawElementProvider(IntPtr hwnd, IntPtr wParam, IntPtr lParam, IRawElementProviderSimple el) { AutomationInteropProvider.ValidateArgument(hwnd != IntPtr.Zero, "HwndMustBeNonNULL"); AutomationInteropProvider.ValidateArgumentNonNull(el, "el"); return(UiaCoreProviderApi.UiaReturnRawElementProvider(hwnd, wParam, lParam, el)); }
public static IntPtr ReturnRawElementProvider(IntPtr hwnd, IntPtr wParam, IntPtr lParam, IRawElementProviderSimple el) { // Hopefully using the hwnd as a hashcode is unique // enough. I am concerned about being called multiple // times for the same hwnd before the value is // retrieved though. providerMapping [hwnd] = new WeakReference(el); return(hwnd); }