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
- CustomWebEventKey.cs
- RTLAwareMessageBox.cs
- Timer.cs
- CompositeDuplexBindingElement.cs
- ComponentDispatcher.cs
- iisPickupDirectory.cs
- ToolStrip.cs
- TdsParameterSetter.cs
- AnnotationAuthorChangedEventArgs.cs
- NgenServicingAttributes.cs
- SelectedGridItemChangedEvent.cs
- XPathQilFactory.cs
- XmlSchemaElement.cs
- InputLanguage.cs
- ResponseStream.cs
- ToolStripPanelRow.cs
- ProcessThread.cs
- LinqDataSourceEditData.cs
- FakeModelPropertyImpl.cs
- EntityParameterCollection.cs
- WebPartZone.cs
- ZipArchive.cs
- XmlSerializerAssemblyAttribute.cs
- Int64.cs
- DataGridViewUtilities.cs
- MDIClient.cs
- ConstructorExpr.cs
- SpeechSeg.cs
- SystemKeyConverter.cs
- RegexRunnerFactory.cs
- Debugger.cs
- LoginName.cs
- ToolStripSplitStackLayout.cs
- AdapterDictionary.cs
- WorkItem.cs
- Typography.cs
- StandardTransformFactory.cs
- LogManagementAsyncResult.cs
- UpDownBase.cs
- HijriCalendar.cs
- Stream.cs
- PeerValidationBehavior.cs
- CollectionChangedEventManager.cs
- ContainerSelectorGlyph.cs
- AttributedMetaModel.cs
- EventLogPermissionEntry.cs
- TextWriterEngine.cs
- SqlDataSourceCache.cs
- DataObjectAttribute.cs
- LabelTarget.cs
- WebPartConnectionsDisconnectVerb.cs
- NotifyParentPropertyAttribute.cs
- CustomErrorsSection.cs
- QueryOutputWriter.cs
- ProfileGroupSettingsCollection.cs
- KnownAssemblyEntry.cs
- VersionConverter.cs
- Attributes.cs
- ChangePasswordAutoFormat.cs
- SerializerDescriptor.cs
- DirectionalLight.cs
- SecurityHelper.cs
- AvTraceFormat.cs
- ListArgumentProvider.cs
- ResourceDictionaryCollection.cs
- ProfilePropertySettings.cs
- VectorKeyFrameCollection.cs
- NamedPermissionSet.cs
- DockAndAnchorLayout.cs
- IdentityModelDictionary.cs
- Publisher.cs
- ZipIOExtraFieldZip64Element.cs
- DeleteBookmarkScope.cs
- WindowsRichEdit.cs
- XmlUtil.cs
- UpDownBase.cs
- SchemaReference.cs
- DaylightTime.cs
- ComponentChangedEvent.cs
- Parameter.cs
- AttributeData.cs
- RegexTree.cs
- DebugControllerThread.cs
- CryptoConfig.cs
- ParseHttpDate.cs
- HtmlToClrEventProxy.cs
- datacache.cs
- DBConnectionString.cs
- MimeMultiPart.cs
- DataGridViewSortCompareEventArgs.cs
- UnsafeNativeMethodsTablet.cs
- SimpleHandlerFactory.cs
- CodeIdentifiers.cs
- ExternalException.cs
- MemberProjectionIndex.cs
- PerfService.cs
- SimpleApplicationHost.cs
- SQLDecimalStorage.cs
- COAUTHINFO.cs
- GridViewHeaderRowPresenter.cs