Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Shaping / CompositeTypefaceMetrics.cs / 1 / 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
- InheritedPropertyDescriptor.cs
- AppDomainShutdownMonitor.cs
- log.cs
- Util.cs
- BitmapEffectrendercontext.cs
- DataTableReaderListener.cs
- SlotInfo.cs
- IncomingWebResponseContext.cs
- SoapIgnoreAttribute.cs
- Section.cs
- XmlNodeChangedEventManager.cs
- BlobPersonalizationState.cs
- CheckBoxField.cs
- ConnectionsZone.cs
- HideDisabledControlAdapter.cs
- DbConnectionInternal.cs
- COM2PropertyBuilderUITypeEditor.cs
- MustUnderstandSoapException.cs
- CommunicationObjectManager.cs
- ImpersonateTokenRef.cs
- InputMethodStateTypeInfo.cs
- SchemaElementLookUpTable.cs
- DesignerHelpers.cs
- Matrix3DValueSerializer.cs
- SpecularMaterial.cs
- AppDomainGrammarProxy.cs
- While.cs
- XmlElementElement.cs
- BinHexEncoding.cs
- HttpConfigurationContext.cs
- ExtensibleClassFactory.cs
- DataGridViewCellPaintingEventArgs.cs
- FrameAutomationPeer.cs
- WindowsStatic.cs
- XmlImplementation.cs
- TrackingMemoryStream.cs
- Frame.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- XmlMtomReader.cs
- ReliableRequestSessionChannel.cs
- CmsInterop.cs
- EmbossBitmapEffect.cs
- TextDecorationCollectionConverter.cs
- ResourcesChangeInfo.cs
- DataTableExtensions.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- WebPartTransformer.cs
- TripleDESCryptoServiceProvider.cs
- TextProperties.cs
- ThreadPool.cs
- UriSection.cs
- HtmlInputButton.cs
- HttpException.cs
- TextServicesManager.cs
- TagPrefixAttribute.cs
- BoolExpressionVisitors.cs
- EdmProperty.cs
- QuaternionConverter.cs
- Listbox.cs
- PropertyConverter.cs
- ToolStripDropDown.cs
- ResourceProviderFactory.cs
- OleDbParameterCollection.cs
- MenuItemBindingCollection.cs
- HttpProfileBase.cs
- XsltLibrary.cs
- EditBehavior.cs
- XmlDataSourceDesigner.cs
- GridEntry.cs
- Int32Storage.cs
- TranslateTransform3D.cs
- LinqDataSourceSelectEventArgs.cs
- StreamSecurityUpgradeAcceptor.cs
- ConnectionInterfaceCollection.cs
- DetailsViewRow.cs
- LabelLiteral.cs
- XmlILAnnotation.cs
- SHA384.cs
- CodeDomSerializerException.cs
- FacetChecker.cs
- CollectionType.cs
- DataQuery.cs
- TreeBuilder.cs
- hresults.cs
- Memoizer.cs
- XmlRootAttribute.cs
- DocumentOrderQuery.cs
- CodeCastExpression.cs
- Calendar.cs
- WindowsComboBox.cs
- CompilerCollection.cs
- Typography.cs
- InvalidWMPVersionException.cs
- AbsoluteQuery.cs
- WmlLiteralTextAdapter.cs
- FixedFlowMap.cs
- GPPOINTF.cs
- EncodingDataItem.cs
- HTMLTextWriter.cs
- ClientSponsor.cs