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
- _ConnectOverlappedAsyncResult.cs
- Types.cs
- WorkflowOwnershipException.cs
- BasicExpandProvider.cs
- WebFaultClientMessageInspector.cs
- PermissionSet.cs
- MouseButtonEventArgs.cs
- CodeAttachEventStatement.cs
- DbProviderFactories.cs
- LocalBuilder.cs
- WarningException.cs
- ToolboxComponentsCreatingEventArgs.cs
- ZipIORawDataFileBlock.cs
- ConfigurationElementProperty.cs
- DataGridViewControlCollection.cs
- ImageAnimator.cs
- EpmContentSerializerBase.cs
- QilUnary.cs
- FunctionImportElement.cs
- PropertyMapper.cs
- IntegerValidatorAttribute.cs
- MaterialCollection.cs
- RelatedCurrencyManager.cs
- ArraySortHelper.cs
- Hex.cs
- ExtensionQuery.cs
- iisPickupDirectory.cs
- ThicknessAnimation.cs
- ApplicationContext.cs
- TrustSection.cs
- OdbcConnectionFactory.cs
- HiddenField.cs
- ReferenceService.cs
- WindowsScrollBarBits.cs
- SqlDelegatedTransaction.cs
- DesignerAttribute.cs
- InvalidComObjectException.cs
- GrammarBuilderDictation.cs
- WeakKeyDictionary.cs
- Helpers.cs
- BinHexEncoder.cs
- Publisher.cs
- ObjectToIdCache.cs
- VSWCFServiceContractGenerator.cs
- GatewayDefinition.cs
- InputScopeAttribute.cs
- DataStorage.cs
- LinkArea.cs
- XmlComplianceUtil.cs
- CompositeDuplexElement.cs
- UserNameSecurityTokenAuthenticator.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- RenderTargetBitmap.cs
- KeyConverter.cs
- EntityCollection.cs
- TimerEventSubscriptionCollection.cs
- ECDiffieHellman.cs
- MatrixTransform3D.cs
- InstanceOwnerQueryResult.cs
- HTMLTagNameToTypeMapper.cs
- FormViewCommandEventArgs.cs
- ToolStripSplitStackLayout.cs
- CqlLexerHelpers.cs
- SingleTagSectionHandler.cs
- infer.cs
- entityreference_tresulttype.cs
- IPAddressCollection.cs
- ExecutionTracker.cs
- NamedElement.cs
- ArcSegment.cs
- Page.cs
- ByteAnimation.cs
- GridSplitter.cs
- HostedHttpRequestAsyncResult.cs
- SortAction.cs
- XPathDocumentNavigator.cs
- KeyboardEventArgs.cs
- SmiGettersStream.cs
- BitmapCodecInfoInternal.cs
- Debugger.cs
- XmlName.cs
- EventLogTraceListener.cs
- CollectionViewGroupInternal.cs
- EntityDataSourceWizardForm.cs
- LinearGradientBrush.cs
- NetStream.cs
- QueryResults.cs
- XPathMultyIterator.cs
- ToolStripDropDown.cs
- BitmapEffectState.cs
- Nullable.cs
- AsyncPostBackErrorEventArgs.cs
- DrawingServices.cs
- PenThread.cs
- NameNode.cs
- GridViewUpdateEventArgs.cs
- PropertyInformationCollection.cs
- BitFlagsGenerator.cs
- ServiceContractViewControl.cs
- SqlProviderManifest.cs