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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FunctionUpdateCommand.cs
- BaseDataBoundControl.cs
- CopyNamespacesAction.cs
- RtfFormatStack.cs
- BamlCollectionHolder.cs
- COM2Properties.cs
- AdapterUtil.cs
- ActivityExecutor.cs
- ListItem.cs
- XmlSchemaInclude.cs
- CompareValidator.cs
- assemblycache.cs
- PlanCompiler.cs
- ReadOnlyCollection.cs
- Transform.cs
- EdmSchemaError.cs
- ProcessHostFactoryHelper.cs
- PublishLicense.cs
- ErrorFormatterPage.cs
- ProgressBarBrushConverter.cs
- XmlDictionaryReaderQuotas.cs
- RegexWorker.cs
- CheckPair.cs
- SqlEnums.cs
- MdiWindowListStrip.cs
- ContentDisposition.cs
- If.cs
- LinqDataSourceView.cs
- TreeViewAutomationPeer.cs
- ConfigurationValues.cs
- WebDescriptionAttribute.cs
- SpellerStatusTable.cs
- TextContainer.cs
- XmlCharCheckingWriter.cs
- ImageList.cs
- MSAANativeProvider.cs
- XMLDiffLoader.cs
- TypeExtension.cs
- SchemaElementDecl.cs
- ByteStorage.cs
- Grant.cs
- SR.cs
- FileLevelControlBuilderAttribute.cs
- CharAnimationUsingKeyFrames.cs
- MessageQueueTransaction.cs
- TableLayoutRowStyleCollection.cs
- ServiceModelSecurityTokenTypes.cs
- GroupBox.cs
- MergablePropertyAttribute.cs
- TimeoutTimer.cs
- DesignDataSource.cs
- RefType.cs
- UTF7Encoding.cs
- TabRenderer.cs
- QuaternionValueSerializer.cs
- PrivateFontCollection.cs
- ExpressionBuilder.cs
- FormViewDeleteEventArgs.cs
- ResXDataNode.cs
- Int32Animation.cs
- EntityDescriptor.cs
- ConfigUtil.cs
- IISMapPath.cs
- Menu.cs
- XslAst.cs
- DeadCharTextComposition.cs
- InstanceCompleteException.cs
- FamilyTypefaceCollection.cs
- ContentDisposition.cs
- PersonalizationAdministration.cs
- ConstraintStruct.cs
- CalendarDateRangeChangingEventArgs.cs
- SponsorHelper.cs
- QueryAsyncResult.cs
- ImageAttributes.cs
- sqlnorm.cs
- ObjectTypeMapping.cs
- CheckBoxAutomationPeer.cs
- LayoutEngine.cs
- ResourceDescriptionAttribute.cs
- ConsoleKeyInfo.cs
- OleDbRowUpdatingEvent.cs
- SqlNodeTypeOperators.cs
- EntityDescriptor.cs
- TextParentUndoUnit.cs
- DataGridViewDataErrorEventArgs.cs
- DataGridViewCellParsingEventArgs.cs
- DecoderExceptionFallback.cs
- WindowsTokenRoleProvider.cs
- DataPointer.cs
- SplayTreeNode.cs
- CharacterString.cs
- DllNotFoundException.cs
- HttpWriter.cs
- CustomSignedXml.cs
- PerformanceCounterCategory.cs
- SelectionChangedEventArgs.cs
- ConnectionManagementElement.cs
- RangeBase.cs
- SecurityManager.cs