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
- TrackBarDesigner.cs
- DetailsViewModeEventArgs.cs
- SQLCharsStorage.cs
- PathGradientBrush.cs
- SystemBrushes.cs
- OpacityConverter.cs
- XomlSerializationHelpers.cs
- TabControlToolboxItem.cs
- ReceiveContext.cs
- Point3D.cs
- GB18030Encoding.cs
- StreamUpgradeBindingElement.cs
- StdValidatorsAndConverters.cs
- ThicknessAnimationUsingKeyFrames.cs
- ComponentDispatcher.cs
- SettingsPropertyValue.cs
- wgx_exports.cs
- AnonymousIdentificationSection.cs
- InheritanceContextChangedEventManager.cs
- BamlMapTable.cs
- TemplateInstanceAttribute.cs
- Brush.cs
- WebPartUserCapability.cs
- RequiredFieldValidator.cs
- XmlWrappingReader.cs
- ProcessThreadCollection.cs
- HScrollProperties.cs
- NumberFormatInfo.cs
- TransformerTypeCollection.cs
- ControlHelper.cs
- Debug.cs
- HierarchicalDataBoundControlAdapter.cs
- PropertyValue.cs
- PersonalizationEntry.cs
- SQLGuidStorage.cs
- PropertyOverridesDialog.cs
- RealProxy.cs
- CallbackHandler.cs
- GenericAuthenticationEventArgs.cs
- HtmlButton.cs
- PromptStyle.cs
- StatusBarPanelClickEvent.cs
- RemoteAsymmetricSignatureFormatter.cs
- XmlILModule.cs
- ListViewTableRow.cs
- RedBlackList.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- bindurihelper.cs
- FixedDSBuilder.cs
- VoiceInfo.cs
- Point3D.cs
- SignatureGenerator.cs
- MetadataArtifactLoaderCompositeFile.cs
- RightNameExpirationInfoPair.cs
- SerializationException.cs
- ButtonStandardAdapter.cs
- smtppermission.cs
- ServiceSettingsResponseInfo.cs
- CodeGeneratorAttribute.cs
- HtmlMobileTextWriter.cs
- ComponentSerializationService.cs
- JapaneseLunisolarCalendar.cs
- SynchronizedInputAdaptor.cs
- FtpWebResponse.cs
- InputBindingCollection.cs
- NavigationFailedEventArgs.cs
- XmlAnyElementAttribute.cs
- CookieProtection.cs
- Command.cs
- Wildcard.cs
- Int32Collection.cs
- URLAttribute.cs
- MenuEventArgs.cs
- RegistryKey.cs
- Rfc2898DeriveBytes.cs
- QilName.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ListViewSortEventArgs.cs
- EntityDataSourceConfigureObjectContext.cs
- DefaultValueAttribute.cs
- VoiceSynthesis.cs
- PriorityItem.cs
- CompositeTypefaceMetrics.cs
- GridViewDeleteEventArgs.cs
- DateTimeFormatInfo.cs
- DesignerVerbCollection.cs
- PropertyDescriptor.cs
- SqlDataSourceCache.cs
- MediaTimeline.cs
- PagesSection.cs
- CapabilitiesRule.cs
- Subordinate.cs
- WebUtility.cs
- EntityClassGenerator.cs
- Condition.cs
- DataListComponentEditor.cs
- TableLayoutSettings.cs
- VerticalConnector.xaml.cs
- LoginName.cs
- SessionStateContainer.cs