Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / WindowCollection.cs / 1 / 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
- ClientCredentials.cs
- RelatedImageListAttribute.cs
- SemaphoreSlim.cs
- Menu.cs
- SourceSwitch.cs
- BitmapEffectOutputConnector.cs
- WebPartConnectionCollection.cs
- PathFigure.cs
- XMLDiffLoader.cs
- TreeNodeBinding.cs
- Win32SafeHandles.cs
- RuleEngine.cs
- GridToolTip.cs
- VectorAnimationBase.cs
- AssemblyNameProxy.cs
- AdRotator.cs
- AnnotationObservableCollection.cs
- BStrWrapper.cs
- StylusPointProperties.cs
- XmlDomTextWriter.cs
- FSWPathEditor.cs
- XmlTextReaderImplHelpers.cs
- BasicKeyConstraint.cs
- OledbConnectionStringbuilder.cs
- ConfigXmlText.cs
- SafeReadContext.cs
- processwaithandle.cs
- ListViewSelectEventArgs.cs
- XXXOnTypeBuilderInstantiation.cs
- UniformGrid.cs
- ToolStripButton.cs
- GroupedContextMenuStrip.cs
- PolicyChain.cs
- FixedPageAutomationPeer.cs
- HandleCollector.cs
- DataKey.cs
- RelatedImageListAttribute.cs
- SamlAuthenticationStatement.cs
- RegexNode.cs
- MD5.cs
- ProtectedConfigurationSection.cs
- ListViewEditEventArgs.cs
- ZipIOFileItemStream.cs
- ElementsClipboardData.cs
- CompensationHandlingFilter.cs
- WebPartConnection.cs
- ClientApiGenerator.cs
- ObfuscationAttribute.cs
- odbcmetadatacollectionnames.cs
- FlagsAttribute.cs
- ButtonRenderer.cs
- XmlHierarchicalDataSourceView.cs
- HMACSHA256.cs
- ScriptControlDescriptor.cs
- LockCookie.cs
- connectionpool.cs
- XamlSerializationHelper.cs
- AnnotationObservableCollection.cs
- SecurityDocument.cs
- GenericIdentity.cs
- ACE.cs
- assertwrapper.cs
- WebContext.cs
- WindowsGraphics2.cs
- Int16AnimationUsingKeyFrames.cs
- MDIClient.cs
- ZoneButton.cs
- IndentedWriter.cs
- WorkflowControlEndpoint.cs
- securitycriticaldataformultiplegetandset.cs
- ScaleTransform3D.cs
- SimpleTypeResolver.cs
- HexParser.cs
- ResourceReferenceKeyNotFoundException.cs
- TypeLoadException.cs
- XPathAxisIterator.cs
- LinqDataSourceView.cs
- _NestedMultipleAsyncResult.cs
- HwndSourceParameters.cs
- SqlErrorCollection.cs
- ValidatedControlConverter.cs
- NameValueCollection.cs
- TextEditorParagraphs.cs
- Debug.cs
- elementinformation.cs
- ConfigsHelper.cs
- NavigationPropertyAccessor.cs
- FloatSumAggregationOperator.cs
- FutureFactory.cs
- ContainerParagraph.cs
- SoapMessage.cs
- TextTreeTextNode.cs
- XmlWriterSettings.cs
- ReaderWriterLock.cs
- TextContainer.cs
- Transform3D.cs
- FontTypeConverter.cs
- DirectoryInfo.cs
- MimeTypeAttribute.cs
- StorageTypeMapping.cs