WindowCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / WindowCollection.cs / 1305600 / WindowCollection.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: 
//          WindowCollection can be used to interate over all the windows 
//          that have been opened in the current application.
// 
// History:
//  08/10/04: kusumav   Moved out of Application.cs to its own separate file.
//
//--------------------------------------------------------------------------- 

using System.Collections; 
using System.Diagnostics; 

namespace System.Windows 
{
    #region WindowCollection class

    ///  
    /// WindowCollection can be used to interate over all the windows that have been
    /// opened in the current application. 
    ///  
    //
    public sealed class WindowCollection : ICollection 
    {
        //-----------------------------------------------------
        //
        //   Public Methods 
        //
        //----------------------------------------------------- 
        #region Public Methods 
        /// 
        /// Default Constructor 
        /// 
        public WindowCollection()
        {
            _list = new ArrayList(1); 
        }
 
        internal WindowCollection(int count) 
        {
            Debug.Assert(count >= 0, "count must not be less than zero"); 
            _list = new ArrayList(count);
        }
        #endregion Public Methods
 
        //------------------------------------------------------
        // 
        //   Operator overload 
        //
        //----------------------------------------------------- 
        #region Operator overload
        /// 
        /// Overloaded [] operator to access the WindowCollection list
        ///  
        public Window this[int index]
        { 
            get 
            {
                return _list[index] as Window; 
            }
        }
        #endregion Operator overload
 
        //------------------------------------------------------
        // 
        //   IEnumerable implementation 
        //
        //------------------------------------------------------ 
        #region IEnumerable implementation
        /// 
        /// GetEnumerator
        ///  
        /// 
        public IEnumerator GetEnumerator() 
        { 
            return _list.GetEnumerator();
        } 
        #endregion IEnumerable implementation

        //-------------------------------------------------------
        // 
        //   ICollection implementation (derives from IEnumerable)
        // 
        //-------------------------------------------------------- 
        #region ICollection implementation
        ///  
        /// CopyTo
        /// 
        /// 
        ///  
        void ICollection.CopyTo(Array array, int index)
        { 
            _list.CopyTo(array, index); 
        }
 
        /// 
        /// CopyTo
        /// 
        ///  
        /// 
        public void CopyTo(Window[] array, int index) 
        { 
            _list.CopyTo(array, index);
        } 

        /// 
        /// Count property
        ///  
        public int Count
        { 
            get 
            {
                return _list.Count; 
            }
        }

        ///  
        /// IsSynchronized
        ///  
        public bool IsSynchronized 
        {
            get 
            {
                return _list.IsSynchronized;
            }
        } 

        ///  
        /// SyncRoot 
        /// 
        public Object SyncRoot 
        {
            get
            {
                return _list.SyncRoot; 
            }
        } 
        #endregion ICollection implementation 

        //----------------------------------------------------- 
        //
        //  Internal Methods
        //
        //----------------------------------------------------- 
        #region Internal Methods
        internal WindowCollection Clone() 
        { 
            WindowCollection clone;
            lock (_list.SyncRoot) 
            {
                clone = new WindowCollection(_list.Count);
                for (int i = 0; i < _list.Count; i++)
                { 
                    clone._list.Add(_list[i]);
                } 
            } 
            return clone;
        } 

        internal void Remove(Window win)
        {
            lock (_list.SyncRoot) 
            {
                _list.Remove(win); 
            } 
        }
 
        internal void RemoveAt(int index)
        {
            lock (_list.SyncRoot)
            { 
                _list.Remove(index);
            } 
        } 

        internal int Add (Window win) 
        {
            lock (_list.SyncRoot)
            {
                return _list.Add(win); 
            }
        } 
 
        internal bool HasItem(Window win)
        { 
            lock (_list.SyncRoot)
            {
                for (int i = 0; i < _list.Count; i++)
                { 
                    if (_list[i] == win)
                    { 
                        return true; 
                    }
                } 
            }
            return false;
        }
        #endregion Internal Methods 

        //----------------------------------------------------- 
        // 
        //  Private Fields
        // 
        //------------------------------------------------------
        #region Private Fields
        private ArrayList _list;
        #endregion Private Fields 
    }
 
    #endregion WindowCollection class 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: 
//          WindowCollection can be used to interate over all the windows 
//          that have been opened in the current application.
// 
// History:
//  08/10/04: kusumav   Moved out of Application.cs to its own separate file.
//
//--------------------------------------------------------------------------- 

using System.Collections; 
using System.Diagnostics; 

namespace System.Windows 
{
    #region WindowCollection class

    ///  
    /// WindowCollection can be used to interate over all the windows that have been
    /// opened in the current application. 
    ///  
    //
    public sealed class WindowCollection : ICollection 
    {
        //-----------------------------------------------------
        //
        //   Public Methods 
        //
        //----------------------------------------------------- 
        #region Public Methods 
        /// 
        /// Default Constructor 
        /// 
        public WindowCollection()
        {
            _list = new ArrayList(1); 
        }
 
        internal WindowCollection(int count) 
        {
            Debug.Assert(count >= 0, "count must not be less than zero"); 
            _list = new ArrayList(count);
        }
        #endregion Public Methods
 
        //------------------------------------------------------
        // 
        //   Operator overload 
        //
        //----------------------------------------------------- 
        #region Operator overload
        /// 
        /// Overloaded [] operator to access the WindowCollection list
        ///  
        public Window this[int index]
        { 
            get 
            {
                return _list[index] as Window; 
            }
        }
        #endregion Operator overload
 
        //------------------------------------------------------
        // 
        //   IEnumerable implementation 
        //
        //------------------------------------------------------ 
        #region IEnumerable implementation
        /// 
        /// GetEnumerator
        ///  
        /// 
        public IEnumerator GetEnumerator() 
        { 
            return _list.GetEnumerator();
        } 
        #endregion IEnumerable implementation

        //-------------------------------------------------------
        // 
        //   ICollection implementation (derives from IEnumerable)
        // 
        //-------------------------------------------------------- 
        #region ICollection implementation
        ///  
        /// CopyTo
        /// 
        /// 
        ///  
        void ICollection.CopyTo(Array array, int index)
        { 
            _list.CopyTo(array, index); 
        }
 
        /// 
        /// CopyTo
        /// 
        ///  
        /// 
        public void CopyTo(Window[] array, int index) 
        { 
            _list.CopyTo(array, index);
        } 

        /// 
        /// Count property
        ///  
        public int Count
        { 
            get 
            {
                return _list.Count; 
            }
        }

        ///  
        /// IsSynchronized
        ///  
        public bool IsSynchronized 
        {
            get 
            {
                return _list.IsSynchronized;
            }
        } 

        ///  
        /// SyncRoot 
        /// 
        public Object SyncRoot 
        {
            get
            {
                return _list.SyncRoot; 
            }
        } 
        #endregion ICollection implementation 

        //----------------------------------------------------- 
        //
        //  Internal Methods
        //
        //----------------------------------------------------- 
        #region Internal Methods
        internal WindowCollection Clone() 
        { 
            WindowCollection clone;
            lock (_list.SyncRoot) 
            {
                clone = new WindowCollection(_list.Count);
                for (int i = 0; i < _list.Count; i++)
                { 
                    clone._list.Add(_list[i]);
                } 
            } 
            return clone;
        } 

        internal void Remove(Window win)
        {
            lock (_list.SyncRoot) 
            {
                _list.Remove(win); 
            } 
        }
 
        internal void RemoveAt(int index)
        {
            lock (_list.SyncRoot)
            { 
                _list.Remove(index);
            } 
        } 

        internal int Add (Window win) 
        {
            lock (_list.SyncRoot)
            {
                return _list.Add(win); 
            }
        } 
 
        internal bool HasItem(Window win)
        { 
            lock (_list.SyncRoot)
            {
                for (int i = 0; i < _list.Count; i++)
                { 
                    if (_list[i] == win)
                    { 
                        return true; 
                    }
                } 
            }
            return false;
        }
        #endregion Internal Methods 

        //----------------------------------------------------- 
        // 
        //  Private Fields
        // 
        //------------------------------------------------------
        #region Private Fields
        private ArrayList _list;
        #endregion Private Fields 
    }
 
    #endregion WindowCollection class 
}

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