SelectorAutomationPeer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Automation / Peers / SelectorAutomationPeer.cs / 1 / 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 
        }
 
        //-------------------------------------------------------------------- 
        //
        //  ISelectionProvider 
        //
        //-------------------------------------------------------------------

        #region ISelectionProvider 

        IRawElementProviderSimple [] ISelectionProvider.GetSelection() 
        { 
            Selector owner = (Selector)Owner;
 
            int count = owner._selectedItems.Count;

            if(count > 0 && ItemPeers.Count > 0)
            { 
                List selectedProviders = 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 = (SelectorItemAutomationPeer)ItemPeers[e.AddedItems[i]]; 
 
                        if (peer != null)
                        { 
                            peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection);
                        }
                    }
 
                    for (i = 0; i < numRemoved; i++)
                    { 
                        SelectorItemAutomationPeer peer = (SelectorItemAutomationPeer)ItemPeers[e.RemovedItems[i]]; 

                        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 
        }
 
        //-------------------------------------------------------------------- 
        //
        //  ISelectionProvider 
        //
        //-------------------------------------------------------------------

        #region ISelectionProvider 

        IRawElementProviderSimple [] ISelectionProvider.GetSelection() 
        { 
            Selector owner = (Selector)Owner;
 
            int count = owner._selectedItems.Count;

            if(count > 0 && ItemPeers.Count > 0)
            { 
                List selectedProviders = 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 = (SelectorItemAutomationPeer)ItemPeers[e.AddedItems[i]]; 
 
                        if (peer != null)
                        { 
                            peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection);
                        }
                    }
 
                    for (i = 0; i < numRemoved; i++)
                    { 
                        SelectorItemAutomationPeer peer = (SelectorItemAutomationPeer)ItemPeers[e.RemovedItems[i]]; 

                        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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK