File: MS\Internal\Automation\EventListener.cs
Project: wpf\src\UIAutomation\UIAutomationClient\UIAutomationClient.csproj (UIAutomationClient)
//---------------------------------------------------------------------------
//
// <copyright file="EventListener.cs" company="Microsoft">
//    Copyright (C) Microsoft Corporation.  All rights reserved.
// </copyright>
// 
//
// Description:
// EventListener internal class holds the event data for both client and server sides
//
// History:  
//  06/17/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
 
using System;
using System.Windows.Automation;
 
namespace MS.Internal.Automation
{
    // internal class holds the event data for both client and server sides
    internal class EventListener
    {
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------
 
        #region Constructors
 
        // full ctor
        internal EventListener(
            AutomationEvent eventId, 
            TreeScope scope, 
            AutomationProperty [] properties,
            UiaCoreApi.UiaCacheRequest cacheRequest
            )
        {
            _eventId = eventId;
            _scope = scope;
            if (properties != null)
                _properties = (AutomationProperty[])properties.Clone();
            else
                _properties = null;
            _cacheRequest = cacheRequest;
        }
 
        #endregion Constructors
 
        //------------------------------------------------------
        //
        //  Internal Properties
        //
        //------------------------------------------------------
 
        #region Internal Properties
 
        // returns the id of the event this listener represents.
        internal AutomationEvent EventId
        {
            get
            {
                return _eventId;
            }
        }
 
        // returns the array of properties being listened to for property changed events.
        internal AutomationProperty [] Properties
        {
            get
            {
                return _properties;
            }
        }
 
        // return scopt of this event
        internal TreeScope TreeScope
        {
            get
            {
                return _scope;
            }
        }
 
        // returns the list of properties, patterns, etc that we need to prefetch
        internal UiaCoreApi.UiaCacheRequest CacheRequest
        {
            get
            {
                return _cacheRequest;
            }
        }
 
        #endregion Internal Properties
 
 
        //------------------------------------------------------
        //
        //  Private Fields
        //
        //------------------------------------------------------
 
        #region Private Fields
 
        private AutomationEvent            _eventId;    // the event this listener represents
        private TreeScope                  _scope;      // fire events based on this scope
        private AutomationProperty []      _properties; // for property change, indicates the properties we're listening for
        private UiaCoreApi.UiaCacheRequest _cacheRequest; // properties etc to prefetch
 
        #endregion Private Fields
    }
}