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
- QilIterator.cs
- Profiler.cs
- PropertyDescriptorGridEntry.cs
- Atom10FormatterFactory.cs
- DefaultAutoFieldGenerator.cs
- XmlNotation.cs
- SectionVisual.cs
- HtmlSelect.cs
- webbrowsersite.cs
- SemanticTag.cs
- SafeEventHandle.cs
- WindowsTokenRoleProvider.cs
- ParseChildrenAsPropertiesAttribute.cs
- MsmqProcessProtocolHandler.cs
- BinaryWriter.cs
- ButtonBase.cs
- ProfileGroupSettings.cs
- StylusCaptureWithinProperty.cs
- XmlFormatWriterGenerator.cs
- _SSPIWrapper.cs
- EncoderExceptionFallback.cs
- ProtocolsConfigurationHandler.cs
- BinaryOperationBinder.cs
- DES.cs
- CollectionsUtil.cs
- Validator.cs
- XPathDocumentNavigator.cs
- RemotingService.cs
- SizeAnimationClockResource.cs
- EntityCommandExecutionException.cs
- SqlCommandSet.cs
- parserscommon.cs
- InputScopeAttribute.cs
- IncrementalReadDecoders.cs
- GeneralTransform2DTo3D.cs
- PropertyMetadata.cs
- HttpModulesSection.cs
- GetBrowserTokenRequest.cs
- FlowNode.cs
- ADConnectionHelper.cs
- ViewManager.cs
- XsltArgumentList.cs
- ClientApiGenerator.cs
- PropertyItem.cs
- GenericTextProperties.cs
- PageEventArgs.cs
- PersonalizableAttribute.cs
- SqlUdtInfo.cs
- _ConnectionGroup.cs
- CatalogZoneBase.cs
- SessionState.cs
- PartitionResolver.cs
- SqlClientMetaDataCollectionNames.cs
- PartialArray.cs
- WindowInteropHelper.cs
- ComponentGuaranteesAttribute.cs
- MimeMapping.cs
- DefaultSection.cs
- DataKeyCollection.cs
- DesignerResources.cs
- UriTemplateDispatchFormatter.cs
- DateTimeParse.cs
- Accessible.cs
- EntityContainerAssociationSet.cs
- UIElement.cs
- AutoFocusStyle.xaml.cs
- PersonalizationEntry.cs
- MessageEncoder.cs
- RadioButtonList.cs
- HiddenFieldPageStatePersister.cs
- XmlSchemaComplexContentRestriction.cs
- XmlSchemaSubstitutionGroup.cs
- SelectionItemPatternIdentifiers.cs
- HtmlToClrEventProxy.cs
- HttpModuleCollection.cs
- ConvertTextFrag.cs
- FastPropertyAccessor.cs
- SchemaEntity.cs
- OutputCacheModule.cs
- RowToParametersTransformer.cs
- CompositeFontParser.cs
- GetPageCompletedEventArgs.cs
- XmlConvert.cs
- DataBinding.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Compiler.cs
- LinqDataSourceContextEventArgs.cs
- webclient.cs
- LinqDataView.cs
- FormatException.cs
- CroppedBitmap.cs
- EnumerationRangeValidationUtil.cs
- UpdateRecord.cs
- XslAst.cs
- PagesSection.cs
- DataGridViewColumnConverter.cs
- EntityDescriptor.cs
- CollectionView.cs
- DbReferenceCollection.cs
- HttpValueCollection.cs