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
- SelectedCellsCollection.cs
- ResourceContainer.cs
- ArrayTypeMismatchException.cs
- BamlRecords.cs
- MessageSecurityVersionConverter.cs
- ToolBarButton.cs
- CachedFontFace.cs
- TransactionTable.cs
- MetaData.cs
- RelatedCurrencyManager.cs
- BindableTemplateBuilder.cs
- ElementsClipboardData.cs
- ToolStripGrip.cs
- DataBindingsDialog.cs
- UrlParameterReader.cs
- SessionStateItemCollection.cs
- RC2.cs
- BlockUIContainer.cs
- TabControlAutomationPeer.cs
- TextEditorCharacters.cs
- ObsoleteAttribute.cs
- ClientFactory.cs
- RequestTimeoutManager.cs
- SqlUnionizer.cs
- HwndSourceKeyboardInputSite.cs
- ModelItemDictionaryImpl.cs
- SchemaCollectionPreprocessor.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ChangePassword.cs
- ResourceSetExpression.cs
- CustomBindingCollectionElement.cs
- ConfigurationPropertyCollection.cs
- AlternateViewCollection.cs
- SiteMapNode.cs
- WebSysDefaultValueAttribute.cs
- WmiPutTraceRecord.cs
- PreviewPageInfo.cs
- EditBehavior.cs
- ToolStripSystemRenderer.cs
- TextRangeEditLists.cs
- BamlLocalizationDictionary.cs
- XmlSchemaExporter.cs
- PersonalizationProviderCollection.cs
- MatrixAnimationUsingKeyFrames.cs
- BitmapEffectrendercontext.cs
- UriTemplateTableMatchCandidate.cs
- TextMessageEncodingBindingElement.cs
- ToolBarTray.cs
- DocumentViewerConstants.cs
- EncryptedKeyIdentifierClause.cs
- XmlQueryContext.cs
- SQLDateTime.cs
- DataBoundControlAdapter.cs
- LogManagementAsyncResult.cs
- CopyNamespacesAction.cs
- WebBrowserProgressChangedEventHandler.cs
- TransportationConfigurationTypeInstallComponent.cs
- RelationshipConstraintValidator.cs
- ComboBoxRenderer.cs
- SourceLineInfo.cs
- MultiSelector.cs
- MethodCallExpression.cs
- ResXResourceWriter.cs
- ResourceKey.cs
- ObjectDataSourceChooseTypePanel.cs
- NamespaceTable.cs
- __TransparentProxy.cs
- PointIndependentAnimationStorage.cs
- PagePropertiesChangingEventArgs.cs
- InitializerFacet.cs
- MailSettingsSection.cs
- AnnotationObservableCollection.cs
- HostProtectionPermission.cs
- StoreContentChangedEventArgs.cs
- BinaryParser.cs
- FormParameter.cs
- Label.cs
- BindingListCollectionView.cs
- ErrorRuntimeConfig.cs
- IncrementalHitTester.cs
- UnrecognizedPolicyAssertionElement.cs
- DynamicMetaObject.cs
- DragEvent.cs
- _HeaderInfo.cs
- TextServicesPropertyRanges.cs
- ManifestResourceInfo.cs
- TableLayoutRowStyleCollection.cs
- keycontainerpermission.cs
- DataGridViewCellStyleConverter.cs
- StickyNoteHelper.cs
- WindowsAuthenticationEventArgs.cs
- _CookieModule.cs
- StorageInfo.cs
- HttpHandlerActionCollection.cs
- EntitySetRetriever.cs
- SaveFileDialog.cs
- ShapeTypeface.cs
- RawAppCommandInputReport.cs
- EditorZone.cs
- VisualStyleElement.cs