Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / FontFace / TypefaceCollection.cs / 1 / TypefaceCollection.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2002 // // File: TypefaceCollection.cs // // Contents: Collection of typefaces // // Created: 5-15-2003 Michael Leonov ([....]) // //----------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Windows; using System.Windows.Media; using MS.Internal.FontCache; using System.Globalization; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace MS.Internal.FontFace { internal unsafe struct TypefaceCollection : ICollection{ private CachedFontFamily _family; private FontFamily _fontFamily; public TypefaceCollection(FontFamily fontFamily, CachedFontFamily family) { _fontFamily = fontFamily; _family = family; } #region ICollection Members public void Add(Typeface item) { throw new NotSupportedException(); } public void Clear() { throw new NotSupportedException(); } public bool Contains(Typeface item) { foreach (Typeface t in this) { if (t.Equals(item)) return true; } return false; } public void CopyTo(Typeface[] array, int arrayIndex) { if (array == null) { throw new ArgumentNullException("array"); } if (array.Rank != 1) { throw new ArgumentException(SR.Get(SRID.Collection_BadRank)); } // The extra "arrayIndex >= array.Length" check in because even if _collection.Count // is 0 the index is not allowed to be equal or greater than the length // (from the MSDN ICollection docs) if (arrayIndex < 0 || arrayIndex >= array.Length || (arrayIndex + Count) > array.Length) { throw new ArgumentOutOfRangeException("arrayIndex"); } foreach (Typeface t in this) { array[arrayIndex++] = t; } } public int Count { get { return _family.NumberOfFaces; } } public bool IsReadOnly { get { return true; } } public bool Remove(Typeface item) { throw new NotSupportedException(); } #endregion #region IEnumerable Members public IEnumerator GetEnumerator() { return new Enumerator(this); } #endregion #region IEnumerable Members System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return new Enumerator(this); } #endregion private struct Enumerator : IEnumerator { public Enumerator(TypefaceCollection typefaceCollection) { _typefaceCollection = typefaceCollection; // Unfortunately we cannot call Reset() here because not all of the fields are initialized. _familyEnumerator = ((IEnumerable )typefaceCollection._family).GetEnumerator(); } #region IEnumerator Members public Typeface Current { get { CachedFontFace face = _familyEnumerator.Current; return new Typeface(_typefaceCollection._fontFamily, face.Style, face.Weight, face.Stretch); } } #endregion #region IDisposable Members public void Dispose() {} #endregion #region IEnumerator Members object System.Collections.IEnumerator.Current { get { return ((IEnumerator )this).Current; } } public bool MoveNext() { return _familyEnumerator.MoveNext(); } public void Reset() { _familyEnumerator = ((IEnumerable )_typefaceCollection._family).GetEnumerator(); } #endregion private IEnumerator _familyEnumerator; private TypefaceCollection _typefaceCollection; } } } // 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
- VerticalAlignConverter.cs
- CodeLinePragma.cs
- ListViewSelectEventArgs.cs
- QfeChecker.cs
- SizeAnimationBase.cs
- BaseTemplateCodeDomTreeGenerator.cs
- oledbconnectionstring.cs
- SecureStringHasher.cs
- ModelItemKeyValuePair.cs
- XmlSecureResolver.cs
- NotFiniteNumberException.cs
- TypeInitializationException.cs
- TdsParser.cs
- LoaderAllocator.cs
- ApplicationDirectoryMembershipCondition.cs
- HeaderUtility.cs
- ObjectAnimationUsingKeyFrames.cs
- XPathEmptyIterator.cs
- ListControlConvertEventArgs.cs
- DbProviderConfigurationHandler.cs
- HMACSHA384.cs
- ParserStreamGeometryContext.cs
- Oid.cs
- TextEditorThreadLocalStore.cs
- WindowsTitleBar.cs
- ToolStripCollectionEditor.cs
- EncoderParameters.cs
- XmlSchemas.cs
- GestureRecognizer.cs
- ModuleElement.cs
- TypeDescriptionProviderAttribute.cs
- TableChangeProcessor.cs
- ProjectionCamera.cs
- serverconfig.cs
- DataServiceCollectionOfT.cs
- Registration.cs
- ChildTable.cs
- HtmlElementErrorEventArgs.cs
- TemplateKey.cs
- XmlWriterDelegator.cs
- JoinCqlBlock.cs
- SamlAuthenticationClaimResource.cs
- TypeUnloadedException.cs
- StateDesigner.Helpers.cs
- DateTime.cs
- DbDataAdapter.cs
- CryptoConfig.cs
- DBSqlParserColumnCollection.cs
- CommandLineParser.cs
- ActiveXContainer.cs
- TextEffect.cs
- GeneralTransform.cs
- Style.cs
- CompilerHelpers.cs
- ApplicationDirectory.cs
- EpmContentDeSerializer.cs
- GeometryDrawing.cs
- Content.cs
- ColorBlend.cs
- ArgumentException.cs
- Int16Converter.cs
- SubMenuStyleCollection.cs
- RenderingEventArgs.cs
- CreateRefExpr.cs
- ParallelActivityDesigner.cs
- PathFigure.cs
- Adorner.cs
- SqlProviderServices.cs
- OleDbRowUpdatingEvent.cs
- TimeSpanHelper.cs
- WindowsEditBox.cs
- XmlDocumentSerializer.cs
- SmiMetaDataProperty.cs
- ComAwareEventInfo.cs
- DataPagerFieldItem.cs
- DoubleAnimationBase.cs
- DispatcherExceptionEventArgs.cs
- FixedDocumentSequencePaginator.cs
- KeyEventArgs.cs
- Delegate.cs
- CharacterString.cs
- safemediahandle.cs
- DbExpressionVisitor_TResultType.cs
- ImpersonateTokenRef.cs
- PrimarySelectionGlyph.cs
- XmlBufferReader.cs
- ConfigXmlDocument.cs
- AutoCompleteStringCollection.cs
- ContentPresenter.cs
- WebPartDescriptionCollection.cs
- DPTypeDescriptorContext.cs
- AsmxEndpointPickerExtension.cs
- Exceptions.cs
- ReadOnlyDataSourceView.cs
- DependentList.cs
- XmlSerializerVersionAttribute.cs
- WindowsTab.cs
- GACMembershipCondition.cs
- SiteMapDataSourceView.cs
- RoutedEventHandlerInfo.cs