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
- Helper.cs
- RuntimeHandles.cs
- AncillaryOps.cs
- ObjectHelper.cs
- SettingsAttributeDictionary.cs
- DesignerCommandAdapter.cs
- PackageProperties.cs
- HttpVersion.cs
- Point3DAnimation.cs
- LookupBindingPropertiesAttribute.cs
- RuleSettings.cs
- TimeoutConverter.cs
- nulltextnavigator.cs
- ExpandCollapsePattern.cs
- IList.cs
- SettingsPropertyValue.cs
- UnmanagedHandle.cs
- RootAction.cs
- ApplicationServicesHostFactory.cs
- WmlPageAdapter.cs
- DataSourceHelper.cs
- StreamWithDictionary.cs
- OrderedDictionary.cs
- StringInfo.cs
- XLinq.cs
- PropertyInformationCollection.cs
- SpeechSynthesizer.cs
- Walker.cs
- RequiredFieldValidator.cs
- SqlProcedureAttribute.cs
- SmiGettersStream.cs
- IconConverter.cs
- HostedTransportConfigurationManager.cs
- IgnoreSection.cs
- smtpconnection.cs
- SQLInt64Storage.cs
- XmlCharCheckingReader.cs
- ThicknessKeyFrameCollection.cs
- DefaultValidator.cs
- Schema.cs
- SamlSubject.cs
- ToolStripDesigner.cs
- KeyboardDevice.cs
- HandoffBehavior.cs
- DbDataSourceEnumerator.cs
- UpDownEvent.cs
- ClientTarget.cs
- InvalidOperationException.cs
- JsonSerializer.cs
- DataSourceListEditor.cs
- ConfigurationElement.cs
- FlagsAttribute.cs
- PathGeometry.cs
- WebPageTraceListener.cs
- RowToParametersTransformer.cs
- Visual.cs
- TextTreeInsertUndoUnit.cs
- Brushes.cs
- PageWrapper.cs
- DispatchChannelSink.cs
- XmlMembersMapping.cs
- GradientBrush.cs
- ComplexObject.cs
- Calendar.cs
- PngBitmapDecoder.cs
- CodeSnippetCompileUnit.cs
- SqlOuterApplyReducer.cs
- CompModSwitches.cs
- Application.cs
- AnimatedTypeHelpers.cs
- XmlSchemaGroup.cs
- DivideByZeroException.cs
- EntityReference.cs
- __FastResourceComparer.cs
- MimeTypePropertyAttribute.cs
- HttpCapabilitiesSectionHandler.cs
- PngBitmapDecoder.cs
- XmlTextEncoder.cs
- BaseDataBoundControl.cs
- NavigationExpr.cs
- CSharpCodeProvider.cs
- SiteMapSection.cs
- RequestValidator.cs
- ExpressionEditorAttribute.cs
- Run.cs
- EventListener.cs
- AnnouncementInnerClient11.cs
- AssemblyCache.cs
- ImageAutomationPeer.cs
- _BufferOffsetSize.cs
- ExpressionBindingCollection.cs
- RequestStatusBarUpdateEventArgs.cs
- LinearGradientBrush.cs
- SqlClientWrapperSmiStreamChars.cs
- ThreadInterruptedException.cs
- ControlParameter.cs
- AxImporter.cs
- DataSourceNameHandler.cs
- MouseOverProperty.cs
- CompiledQuery.cs