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
- TabControl.cs
- Add.cs
- RectAnimation.cs
- XPathSingletonIterator.cs
- ViewKeyConstraint.cs
- TreeNodeStyleCollection.cs
- FixedStringLookup.cs
- HiddenFieldPageStatePersister.cs
- BaseDataBoundControl.cs
- ReferenceConverter.cs
- EnumBuilder.cs
- EmptyReadOnlyDictionaryInternal.cs
- ControlTemplate.cs
- FocusManager.cs
- CapiHashAlgorithm.cs
- ToolStripSettings.cs
- RSAPKCS1KeyExchangeFormatter.cs
- CompositeControlDesigner.cs
- HebrewCalendar.cs
- GacUtil.cs
- HtmlTernaryTree.cs
- CodeIterationStatement.cs
- TraceSource.cs
- PlaceHolder.cs
- MatrixAnimationBase.cs
- SkewTransform.cs
- WmlCommandAdapter.cs
- ComProxy.cs
- EntityDataSourceReferenceGroup.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SuppressMessageAttribute.cs
- CreateSequenceResponse.cs
- FacetChecker.cs
- EntityModelSchemaGenerator.cs
- ReferenceEqualityComparer.cs
- WorkflowPageSetupDialog.cs
- XamlTreeBuilderBamlRecordWriter.cs
- CompilerGlobalScopeAttribute.cs
- PermissionSetEnumerator.cs
- UIntPtr.cs
- ErrorView.xaml.cs
- DocumentApplication.cs
- RangeValidator.cs
- ApplicationContext.cs
- DummyDataSource.cs
- WebEventCodes.cs
- StrongNameUtility.cs
- TypefaceCollection.cs
- ClientOptions.cs
- HelpKeywordAttribute.cs
- CryptoHelper.cs
- ToolStripSplitButton.cs
- WindowsToolbarAsMenu.cs
- WizardStepBase.cs
- NonVisualControlAttribute.cs
- NewItemsContextMenuStrip.cs
- MonthCalendar.cs
- VerificationAttribute.cs
- DefaultBindingPropertyAttribute.cs
- TransactionManager.cs
- UIElementHelper.cs
- GC.cs
- TransformedBitmap.cs
- DesignerCatalogPartChrome.cs
- ScriptingProfileServiceSection.cs
- DataGridPageChangedEventArgs.cs
- ApplicationContext.cs
- Select.cs
- ToggleButtonAutomationPeer.cs
- ServiceHandle.cs
- LinqMaximalSubtreeNominator.cs
- TemplateManager.cs
- LocationChangedEventArgs.cs
- DataSourceSelectArguments.cs
- MailMessage.cs
- DataRecordInternal.cs
- UnionCqlBlock.cs
- UniqueEventHelper.cs
- BatchServiceHost.cs
- XmlDataProvider.cs
- DescendantBaseQuery.cs
- CustomAttribute.cs
- ViewCellSlot.cs
- SmtpDateTime.cs
- Misc.cs
- OleDbCommand.cs
- MergeExecutor.cs
- FilterQueryOptionExpression.cs
- SafeFileMapViewHandle.cs
- NullExtension.cs
- CommonDialog.cs
- NavigationProperty.cs
- ConfigsHelper.cs
- DoubleAnimationUsingKeyFrames.cs
- DependencyObjectValidator.cs
- DragEvent.cs
- HttpProxyTransportBindingElement.cs
- AutoScrollHelper.cs
- ArgumentValueSerializer.cs
- PropertyInformation.cs