Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / SelectorAutomationPeer.cs / 1305600 / SelectorAutomationPeer.cs
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public abstract class SelectorAutomationPeer : ItemsControlAutomationPeer, ISelectionProvider { /// protected SelectorAutomationPeer(Selector owner): base(owner) {} /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.List; } /// override public object GetPattern(PatternInterface patternInterface) { if(patternInterface == PatternInterface.Selection) { return this; } return base.GetPattern(patternInterface); // ItemsControlAutomationPeer support Scroll pattern } /// internal override bool IsPropertySupportedByControlForFindItem(int id) { return SelectorAutomationPeer.IsPropertySupportedByControlForFindItemInternal(id); } internal static new bool IsPropertySupportedByControlForFindItemInternal(int id) { if (ItemsControlAutomationPeer.IsPropertySupportedByControlForFindItemInternal(id)) return true; else { if (SelectionItemPatternIdentifiers.IsSelectedProperty.Id == id) return true; else return false; } } ////// Support for IsSelectedProperty should come from SelectorAutomationPeer only, /// internal override object GetSupportedPropertyValue(ItemAutomationPeer itemPeer, int propertyId) { return SelectorAutomationPeer.GetSupportedPropertyValueInternal(itemPeer, propertyId); } internal static new object GetSupportedPropertyValueInternal(AutomationPeer itemPeer, int propertyId) { if (SelectionItemPatternIdentifiers.IsSelectedProperty.Id == propertyId) { ISelectionItemProvider selectionItem = itemPeer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider; if (selectionItem != null) return selectionItem.IsSelected; else return null; } return ItemsControlAutomationPeer.GetSupportedPropertyValueInternal(itemPeer, propertyId); } //-------------------------------------------------------------------- // // ISelectionProvider // //------------------------------------------------------------------- #region ISelectionProvider IRawElementProviderSimple [] ISelectionProvider.GetSelection() { Selector owner = (Selector)Owner; int count = owner._selectedItems.Count; int itemsCount = (owner as ItemsControl).Items.Count; if(count > 0 && itemsCount > 0) { ListselectedProviders = new List (count); for(int i=0; i AutomationInteropProvider.InvalidateLimit) { this.RaiseAutomationEvent(AutomationEvents.SelectionPatternOnInvalidated); } else { int i; for (i = 0; i < numAdded; i++) { SelectorItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.AddedItems[i]) as SelectorItemAutomationPeer; if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection); } } for (i = 0; i < numRemoved; i++) { SelectorItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.RemovedItems[i]) as SelectorItemAutomationPeer; if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection); } } } } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public abstract class SelectorAutomationPeer : ItemsControlAutomationPeer, ISelectionProvider { /// protected SelectorAutomationPeer(Selector owner): base(owner) {} /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.List; } /// override public object GetPattern(PatternInterface patternInterface) { if(patternInterface == PatternInterface.Selection) { return this; } return base.GetPattern(patternInterface); // ItemsControlAutomationPeer support Scroll pattern } /// internal override bool IsPropertySupportedByControlForFindItem(int id) { return SelectorAutomationPeer.IsPropertySupportedByControlForFindItemInternal(id); } internal static new bool IsPropertySupportedByControlForFindItemInternal(int id) { if (ItemsControlAutomationPeer.IsPropertySupportedByControlForFindItemInternal(id)) return true; else { if (SelectionItemPatternIdentifiers.IsSelectedProperty.Id == id) return true; else return false; } } /// /// Support for IsSelectedProperty should come from SelectorAutomationPeer only, /// internal override object GetSupportedPropertyValue(ItemAutomationPeer itemPeer, int propertyId) { return SelectorAutomationPeer.GetSupportedPropertyValueInternal(itemPeer, propertyId); } internal static new object GetSupportedPropertyValueInternal(AutomationPeer itemPeer, int propertyId) { if (SelectionItemPatternIdentifiers.IsSelectedProperty.Id == propertyId) { ISelectionItemProvider selectionItem = itemPeer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider; if (selectionItem != null) return selectionItem.IsSelected; else return null; } return ItemsControlAutomationPeer.GetSupportedPropertyValueInternal(itemPeer, propertyId); } //-------------------------------------------------------------------- // // ISelectionProvider // //------------------------------------------------------------------- #region ISelectionProvider IRawElementProviderSimple [] ISelectionProvider.GetSelection() { Selector owner = (Selector)Owner; int count = owner._selectedItems.Count; int itemsCount = (owner as ItemsControl).Items.Count; if(count > 0 && itemsCount > 0) { ListselectedProviders = new List (count); for(int i=0; i AutomationInteropProvider.InvalidateLimit) { this.RaiseAutomationEvent(AutomationEvents.SelectionPatternOnInvalidated); } else { int i; for (i = 0; i < numAdded; i++) { SelectorItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.AddedItems[i]) as SelectorItemAutomationPeer; if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection); } } for (i = 0; i < numRemoved; i++) { SelectorItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.RemovedItems[i]) as SelectorItemAutomationPeer; if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection); } } } } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CaseStatement.cs
- DesignConnection.cs
- CalendarDateRangeChangingEventArgs.cs
- SqlClientFactory.cs
- QueryOpcode.cs
- LocatorBase.cs
- LinqDataView.cs
- ClientType.cs
- CloseSequence.cs
- Emitter.cs
- XmlSignatureProperties.cs
- NumericUpDownAccelerationCollection.cs
- Pointer.cs
- QilReference.cs
- XPathNodeHelper.cs
- MetadataConversionError.cs
- FormsAuthenticationEventArgs.cs
- DynamicDocumentPaginator.cs
- Int32AnimationBase.cs
- ContextQuery.cs
- DescendantOverDescendantQuery.cs
- FormViewDeletedEventArgs.cs
- ControlPropertyNameConverter.cs
- ValidationUtility.cs
- MethodExpression.cs
- CompilationPass2Task.cs
- ProfileProvider.cs
- smtpconnection.cs
- MsmqIntegrationBindingCollectionElement.cs
- BatchServiceHost.cs
- PeerNameRecordCollection.cs
- SafeNativeMethods.cs
- SqlMultiplexer.cs
- ToolTip.cs
- ScriptModule.cs
- PrimitiveXmlSerializers.cs
- TdsRecordBufferSetter.cs
- DataGridLinkButton.cs
- SerialStream.cs
- DrawingCollection.cs
- ResXBuildProvider.cs
- BamlLocalizer.cs
- InstallerTypeAttribute.cs
- XmlSequenceWriter.cs
- ColorBlend.cs
- MethodCallConverter.cs
- FieldDescriptor.cs
- Bidi.cs
- EdmPropertyAttribute.cs
- BinaryConverter.cs
- WebHttpDispatchOperationSelector.cs
- CodeParameterDeclarationExpressionCollection.cs
- MembershipPasswordException.cs
- SourceFileBuildProvider.cs
- DataGridViewRowStateChangedEventArgs.cs
- XmlDomTextWriter.cs
- CssTextWriter.cs
- CompositeScriptReference.cs
- OdbcEnvironmentHandle.cs
- WebBrowserNavigatingEventHandler.cs
- xamlnodes.cs
- CollectionViewGroup.cs
- HtmlGenericControl.cs
- PowerStatus.cs
- DataGridViewRowHeaderCell.cs
- RequestCachePolicy.cs
- XmlEntityReference.cs
- smtppermission.cs
- NameValueFileSectionHandler.cs
- DataGridViewCellValueEventArgs.cs
- CharEnumerator.cs
- MobileCategoryAttribute.cs
- SecurityTokenRequirement.cs
- ProcessStartInfo.cs
- ObjectMemberMapping.cs
- ConfigurationManagerHelper.cs
- SHA1.cs
- MetricEntry.cs
- Rule.cs
- DuplicateDetector.cs
- ObjectDataSourceFilteringEventArgs.cs
- SizeValueSerializer.cs
- PartialCachingAttribute.cs
- ContextInformation.cs
- NativeMethodsCLR.cs
- ActivityDesigner.cs
- FormsAuthenticationModule.cs
- DrawingContextDrawingContextWalker.cs
- SchemaComplexType.cs
- DetailsViewCommandEventArgs.cs
- EntityContainerEntitySet.cs
- ThumbButtonInfo.cs
- PtsPage.cs
- ImportCatalogPart.cs
- WebPartDisplayModeCollection.cs
- ChannelSinkStacks.cs
- Assert.cs
- CodeAttributeArgumentCollection.cs
- PageCache.cs
- HandoffBehavior.cs