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
- FunctionCommandText.cs
- HtmlShimManager.cs
- OptimizerPatterns.cs
- XmlSchemaDatatype.cs
- FixedBufferAttribute.cs
- DataError.cs
- COM2PictureConverter.cs
- CompositeFontInfo.cs
- XomlCompilerResults.cs
- Configuration.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- ToolStripItemDesigner.cs
- CommandArguments.cs
- ProgressBar.cs
- SqlErrorCollection.cs
- PointCollectionValueSerializer.cs
- NamespaceDisplay.xaml.cs
- FollowerQueueCreator.cs
- IMembershipProvider.cs
- ActivityInterfaces.cs
- DSACryptoServiceProvider.cs
- FillBehavior.cs
- DiffuseMaterial.cs
- EdmMember.cs
- ThicknessAnimationUsingKeyFrames.cs
- BamlLocalizableResourceKey.cs
- Size.cs
- EventSourceCreationData.cs
- SqlDelegatedTransaction.cs
- SecurityTokenValidationException.cs
- PolyBezierSegment.cs
- ParameterCollection.cs
- IdnMapping.cs
- TracedNativeMethods.cs
- SelectionListDesigner.cs
- AbsoluteQuery.cs
- PinnedBufferMemoryStream.cs
- PerformanceCounterLib.cs
- WorkflowDefinitionDispenser.cs
- XmlDataImplementation.cs
- XPathSingletonIterator.cs
- input.cs
- ExpressionLink.cs
- EndpointAddressProcessor.cs
- ReliableChannelFactory.cs
- ProfileService.cs
- DataGridPreparingCellForEditEventArgs.cs
- UnmanagedMemoryStream.cs
- Pen.cs
- Animatable.cs
- XmlSchemaAnyAttribute.cs
- Interlocked.cs
- XmlLanguageConverter.cs
- CounterCreationDataCollection.cs
- selecteditemcollection.cs
- DockPanel.cs
- CodeCatchClause.cs
- ToolStripStatusLabel.cs
- StringUtil.cs
- BlockExpression.cs
- MetadataCache.cs
- SqlMethodAttribute.cs
- MessageSmuggler.cs
- Attributes.cs
- SmiContextFactory.cs
- Configuration.cs
- TabItemAutomationPeer.cs
- Executor.cs
- InputGestureCollection.cs
- AssemblyLoader.cs
- SparseMemoryStream.cs
- ImpersonateTokenRef.cs
- PointCollectionConverter.cs
- HtmlInputImage.cs
- Function.cs
- DispatcherProcessingDisabled.cs
- PowerModeChangedEventArgs.cs
- MethodCallConverter.cs
- ControlValuePropertyAttribute.cs
- XamlSerializerUtil.cs
- SaveFileDialog.cs
- SqlBulkCopyColumnMapping.cs
- UserPrincipalNameElement.cs
- SerialPort.cs
- CaseExpr.cs
- CodePrimitiveExpression.cs
- XPathConvert.cs
- CursorConverter.cs
- EncryptedKeyIdentifierClause.cs
- UniqueIdentifierService.cs
- DefaultExpressionVisitor.cs
- AdPostCacheSubstitution.cs
- TypeSource.cs
- _NativeSSPI.cs
- InitializationEventAttribute.cs
- MergeLocalizationDirectives.cs
- DataSourceCacheDurationConverter.cs
- XamlWriter.cs
- DescendantBaseQuery.cs
- ToolStripSplitButton.cs