Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Shaping / CompositeTypefaceMetrics.cs / 1305600 / CompositeTypefaceMetrics.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: CompositeTypefaceMetrics.cs // // Contents: Typeface metrics of a composite font // // Created: 5-26-2003 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Markup; // for XmlLanguage using MS.Internal.FontFace; using System.Globalization; namespace MS.Internal.Shaping { ////// Character-based info of a font family /// internal class CompositeTypefaceMetrics : ITypefaceMetrics { private double _underlinePosition; private double _underlineThickness; private double _strikethroughPosition; private double _strikethroughThickenss; private double _capsHeight; private double _xHeight; private FontStyle _style; private FontWeight _weight; private FontStretch _stretch; // the following figures are collected from observation of 'Times New Roman' // at 72 pt in MS-Word. [wchao, 5/26/2003] // The following Offsets are offsets from baseline. Negative means below the baseline. private const double UnderlineOffsetDefaultInEm = -0.15625; private const double UnderlineSizeDefaultInEm = (-UnderlineOffsetDefaultInEm) / 2; private const double StrikethroughOffsetDefaultInEm = 0.3125; private const double StrikethroughSizeDefaultInEm = UnderlineSizeDefaultInEm; private const double CapsHeightDefaultInEm = 1; private const double XHeightDefaultInEm = 0.671875; internal CompositeTypefaceMetrics( double underlinePosition, double underlineThickness, double strikethroughPosition, double strikethroughThickness, double capsHeight, double xHeight, FontStyle style, FontWeight weight, FontStretch stretch ) { _underlinePosition = underlinePosition != 0 ? underlinePosition : UnderlineOffsetDefaultInEm; _underlineThickness = underlineThickness > 0 ? underlineThickness : UnderlineSizeDefaultInEm; _strikethroughPosition = strikethroughPosition != 0 ? strikethroughPosition : StrikethroughOffsetDefaultInEm; _strikethroughThickenss = strikethroughThickness > 0 ? strikethroughThickness : StrikethroughSizeDefaultInEm; _capsHeight = capsHeight > 0 ? capsHeight : CapsHeightDefaultInEm; _xHeight = xHeight > 0 ? xHeight : XHeightDefaultInEm; _style = style; _weight = weight; _stretch = stretch; } internal CompositeTypefaceMetrics() : this( UnderlineOffsetDefaultInEm, UnderlineSizeDefaultInEm, StrikethroughOffsetDefaultInEm, StrikethroughSizeDefaultInEm, CapsHeightDefaultInEm, XHeightDefaultInEm, FontStyles.Normal, FontWeights.Regular, FontStretches.Normal ) { } ////// (Western) x-height relative to em size. /// public double XHeight { get { return _xHeight; } } ////// Distance from baseline to top of English ----, relative to em size. /// public double CapsHeight { get { return _capsHeight; } } ////// Distance from baseline to underline position /// public double UnderlinePosition { get { return _underlinePosition; } } ////// Underline thickness /// public double UnderlineThickness { get { return _underlineThickness; } } ////// Distance from baseline to strike-through position /// public double StrikethroughPosition { get { return _strikethroughPosition; } } ////// strike-through thickness /// public double StrikethroughThickness { get { return _strikethroughThickenss; } } ////// Flag indicate whether this is symbol typeface /// public bool Symbol { get { return false; } } ////// Style simulation flags for this typeface. /// public StyleSimulations StyleSimulations { get { return StyleSimulations.None; } } ////// Collection of localized face names adjusted by the font differentiator. /// public IDictionaryAdjustedFaceNames { get { return FontDifferentiator.ConstructFaceNamesByStyleWeightStretch(_style, _weight, _stretch); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: CompositeTypefaceMetrics.cs // // Contents: Typeface metrics of a composite font // // Created: 5-26-2003 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Markup; // for XmlLanguage using MS.Internal.FontFace; using System.Globalization; namespace MS.Internal.Shaping { /// /// Character-based info of a font family /// internal class CompositeTypefaceMetrics : ITypefaceMetrics { private double _underlinePosition; private double _underlineThickness; private double _strikethroughPosition; private double _strikethroughThickenss; private double _capsHeight; private double _xHeight; private FontStyle _style; private FontWeight _weight; private FontStretch _stretch; // the following figures are collected from observation of 'Times New Roman' // at 72 pt in MS-Word. [wchao, 5/26/2003] // The following Offsets are offsets from baseline. Negative means below the baseline. private const double UnderlineOffsetDefaultInEm = -0.15625; private const double UnderlineSizeDefaultInEm = (-UnderlineOffsetDefaultInEm) / 2; private const double StrikethroughOffsetDefaultInEm = 0.3125; private const double StrikethroughSizeDefaultInEm = UnderlineSizeDefaultInEm; private const double CapsHeightDefaultInEm = 1; private const double XHeightDefaultInEm = 0.671875; internal CompositeTypefaceMetrics( double underlinePosition, double underlineThickness, double strikethroughPosition, double strikethroughThickness, double capsHeight, double xHeight, FontStyle style, FontWeight weight, FontStretch stretch ) { _underlinePosition = underlinePosition != 0 ? underlinePosition : UnderlineOffsetDefaultInEm; _underlineThickness = underlineThickness > 0 ? underlineThickness : UnderlineSizeDefaultInEm; _strikethroughPosition = strikethroughPosition != 0 ? strikethroughPosition : StrikethroughOffsetDefaultInEm; _strikethroughThickenss = strikethroughThickness > 0 ? strikethroughThickness : StrikethroughSizeDefaultInEm; _capsHeight = capsHeight > 0 ? capsHeight : CapsHeightDefaultInEm; _xHeight = xHeight > 0 ? xHeight : XHeightDefaultInEm; _style = style; _weight = weight; _stretch = stretch; } internal CompositeTypefaceMetrics() : this( UnderlineOffsetDefaultInEm, UnderlineSizeDefaultInEm, StrikethroughOffsetDefaultInEm, StrikethroughSizeDefaultInEm, CapsHeightDefaultInEm, XHeightDefaultInEm, FontStyles.Normal, FontWeights.Regular, FontStretches.Normal ) { } ////// (Western) x-height relative to em size. /// public double XHeight { get { return _xHeight; } } ////// Distance from baseline to top of English ----, relative to em size. /// public double CapsHeight { get { return _capsHeight; } } ////// Distance from baseline to underline position /// public double UnderlinePosition { get { return _underlinePosition; } } ////// Underline thickness /// public double UnderlineThickness { get { return _underlineThickness; } } ////// Distance from baseline to strike-through position /// public double StrikethroughPosition { get { return _strikethroughPosition; } } ////// strike-through thickness /// public double StrikethroughThickness { get { return _strikethroughThickenss; } } ////// Flag indicate whether this is symbol typeface /// public bool Symbol { get { return false; } } ////// Style simulation flags for this typeface. /// public StyleSimulations StyleSimulations { get { return StyleSimulations.None; } } ////// Collection of localized face names adjusted by the font differentiator. /// public IDictionaryAdjustedFaceNames { get { return FontDifferentiator.ConstructFaceNamesByStyleWeightStretch(_style, _weight, _stretch); } } } } // 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
- ExtractorMetadata.cs
- WebPartAddingEventArgs.cs
- DirectoryInfo.cs
- LicFileLicenseProvider.cs
- RemoteWebConfigurationHostServer.cs
- DateTimeOffsetConverter.cs
- AppDomainAttributes.cs
- X509IssuerSerialKeyIdentifierClause.cs
- SystemInfo.cs
- categoryentry.cs
- NumberAction.cs
- RepeatBehaviorConverter.cs
- IgnoreDeviceFilterElement.cs
- TextInfo.cs
- ScriptControlDescriptor.cs
- Sql8ExpressionRewriter.cs
- TextEditorDragDrop.cs
- ConfigurationValidatorBase.cs
- DocumentGridContextMenu.cs
- DataServiceConfiguration.cs
- SafeTimerHandle.cs
- LocationUpdates.cs
- TextBox.cs
- CaseInsensitiveHashCodeProvider.cs
- CompositeControl.cs
- StandardOleMarshalObject.cs
- SqlCachedBuffer.cs
- HtmlWindow.cs
- Filter.cs
- BitmapEffectGeneralTransform.cs
- TranslateTransform3D.cs
- DbParameterCollection.cs
- InstanceCreationEditor.cs
- Convert.cs
- UmAlQuraCalendar.cs
- SchemaHelper.cs
- EntitySqlException.cs
- NameSpaceEvent.cs
- DbQueryCommandTree.cs
- CodePageEncoding.cs
- XmlCDATASection.cs
- ListViewUpdatedEventArgs.cs
- MembershipUser.cs
- RegisterInfo.cs
- SafeArrayTypeMismatchException.cs
- BStrWrapper.cs
- MetadataProperty.cs
- ToolStripRendererSwitcher.cs
- EventDescriptor.cs
- SchemaCollectionPreprocessor.cs
- FaultContractInfo.cs
- SafeRegistryHandle.cs
- WindowsScrollBarBits.cs
- ReadOnlyCollection.cs
- SelectedDatesCollection.cs
- FilterRepeater.cs
- WindowProviderWrapper.cs
- UdpAnnouncementEndpoint.cs
- IntPtr.cs
- GridViewColumn.cs
- ColorAnimation.cs
- RadioButton.cs
- BlurBitmapEffect.cs
- DocumentApplicationJournalEntry.cs
- TextEditorTables.cs
- WorkflowApplication.cs
- DispatcherFrame.cs
- ByeOperationCD1AsyncResult.cs
- PropertyDescriptorComparer.cs
- SqlProviderManifest.cs
- DataGridAutoFormatDialog.cs
- PointAnimationClockResource.cs
- PropertyDescriptor.cs
- ControlBindingsConverter.cs
- CornerRadiusConverter.cs
- XmlAttributeOverrides.cs
- XmlAggregates.cs
- DbDataSourceEnumerator.cs
- HorizontalAlignConverter.cs
- InstallerTypeAttribute.cs
- CommandValueSerializer.cs
- ZoomingMessageFilter.cs
- HostVisual.cs
- XmlDataDocument.cs
- OptimisticConcurrencyException.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- FlowchartSizeFeature.cs
- GridViewUpdatedEventArgs.cs
- DateTime.cs
- ProviderCommandInfoUtils.cs
- BoolExpression.cs
- CellIdBoolean.cs
- UnsafeNativeMethodsCLR.cs
- StringValidator.cs
- CompilerWrapper.cs
- Base64Decoder.cs
- UrlMapping.cs
- StorageMappingFragment.cs
- LinearGradientBrush.cs
- Evaluator.cs