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
- Composition.cs
- DesignerActionTextItem.cs
- NameTable.cs
- TranslateTransform3D.cs
- Int64KeyFrameCollection.cs
- StringReader.cs
- ErrorEventArgs.cs
- ListBindingHelper.cs
- WebHttpElement.cs
- XPathConvert.cs
- StopStoryboard.cs
- DateRangeEvent.cs
- UnaryExpression.cs
- SuppressMessageAttribute.cs
- KnowledgeBase.cs
- NoResizeHandleGlyph.cs
- SequentialUshortCollection.cs
- HwndKeyboardInputProvider.cs
- CacheSection.cs
- CustomPopupPlacement.cs
- StoragePropertyMapping.cs
- StylusCollection.cs
- Semaphore.cs
- WebControlsSection.cs
- SemaphoreSecurity.cs
- SQLGuid.cs
- GenericPrincipal.cs
- PrintDialog.cs
- GridItemCollection.cs
- PowerStatus.cs
- XamlInterfaces.cs
- EventHandlersDesigner.cs
- ClientTargetSection.cs
- DesignerAutoFormatCollection.cs
- SqlDataRecord.cs
- CompressedStack.cs
- XmlChildEnumerator.cs
- ComponentDispatcherThread.cs
- TextEvent.cs
- FontWeight.cs
- ScrollChangedEventArgs.cs
- DynamicRendererThreadManager.cs
- AuthorizationSection.cs
- XmlWriter.cs
- BitHelper.cs
- DynamicRenderer.cs
- ProviderSettingsCollection.cs
- UserControl.cs
- BlobPersonalizationState.cs
- OrderedDictionary.cs
- SqlDataSourceAdvancedOptionsForm.cs
- TextPattern.cs
- SpellCheck.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompensatableSequenceActivity.cs
- DataGrid.cs
- DynamicPropertyReader.cs
- MessageHeaderException.cs
- CrossContextChannel.cs
- ColorMap.cs
- FormViewRow.cs
- ExecutionEngineException.cs
- PropertyValueChangedEvent.cs
- CryptoStream.cs
- TogglePatternIdentifiers.cs
- SimpleHandlerBuildProvider.cs
- SystemWebCachingSectionGroup.cs
- ServiceNameElement.cs
- HttpCacheParams.cs
- __ConsoleStream.cs
- HttpHandlerActionCollection.cs
- XmlIncludeAttribute.cs
- GridViewItemAutomationPeer.cs
- ListItemParagraph.cs
- HtmlElement.cs
- InlineCollection.cs
- DrawingImage.cs
- UrlAuthFailedErrorFormatter.cs
- sitestring.cs
- SelectionItemProviderWrapper.cs
- RangeValidator.cs
- CodeAccessPermission.cs
- NaturalLanguageHyphenator.cs
- HandlerFactoryCache.cs
- TransactionProxy.cs
- StyleBamlTreeBuilder.cs
- XmlValueConverter.cs
- XmlSerializerFactory.cs
- PrefixQName.cs
- SqlErrorCollection.cs
- CollectionViewGroupInternal.cs
- DbSourceCommand.cs
- ZeroOpNode.cs
- SafeCryptHandles.cs
- TransformationRules.cs
- TextTreeTextNode.cs
- OletxDependentTransaction.cs
- UnionCodeGroup.cs
- StylusLogic.cs
- ChineseLunisolarCalendar.cs