Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedSOMElement.cs / 1305600 / FixedSOMElement.cs
/*++ File: FixedSOMElement.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: Abstract class that provides a common base class for all non-container semantic elements. These elements have a fixed node and start and end symbol indices associated with them. History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Controls; internal abstract class FixedSOMElement : FixedSOMSemanticBox { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors protected FixedSOMElement(FixedNode fixedNode, int startIndex, int endIndex, GeneralTransform transform) { _fixedNode = fixedNode; _startIndex = startIndex; _endIndex = endIndex; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } protected FixedSOMElement(FixedNode fixedNode, GeneralTransform transform) { _fixedNode = fixedNode; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } #endregion Constructors //------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Static methods public static FixedSOMElement CreateFixedSOMElement(FixedPage page, UIElement uiElement, FixedNode fixedNode, int startIndex, int endIndex) { FixedSOMElement element = null; if (uiElement is Glyphs) { Glyphs glyphs = uiElement as Glyphs; if (glyphs.UnicodeString.Length > 0) { GlyphRun glyphRun = glyphs.ToGlyphRun(); Rect alignmentBox = glyphRun.ComputeAlignmentBox(); alignmentBox.Offset(glyphs.OriginX, glyphs.OriginY); GeneralTransform transform = glyphs.TransformToAncestor(page); if (startIndex < 0) { startIndex = 0; } if (endIndex < 0) { endIndex = glyphRun.Characters == null ? 0 : glyphRun.Characters.Count; } element = FixedSOMTextRun.Create(alignmentBox, transform, glyphs, fixedNode, startIndex, endIndex, false); } } else if (uiElement is Image) { element = FixedSOMImage.Create(page, uiElement as Image, fixedNode); } else if (uiElement is Path) { element = FixedSOMImage.Create(page, uiElement as Path, fixedNode); } return element; } #endregion Static methods //-------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Public Properties public FixedNode FixedNode { get { return _fixedNode; } } public int StartIndex { get { return _startIndex; } } public int EndIndex { get { return _endIndex; } } #endregion Public Properties //-------------------------------------------------------------------- // // Internal Properties // //---------------------------------------------------------------------- #region Internal Properties internal FlowNode FlowNode { get { return _flowNode; } set { _flowNode = value; } } internal int OffsetInFlowNode { get { return _offsetInFlowNode; } set { _offsetInFlowNode = value; } } internal Matrix Matrix { get { return _mat; } } #endregion Internal Properties //------------------------------------------------------------------- // // Protected Fields // //---------------------------------------------------------------------- #region Protected Fields protected FixedNode _fixedNode ; protected int _startIndex; protected int _endIndex; protected Matrix _mat; #endregion Protected Fields #region Private Fields private FlowNode _flowNode; private int _offsetInFlowNode; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /*++ File: FixedSOMElement.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: Abstract class that provides a common base class for all non-container semantic elements. These elements have a fixed node and start and end symbol indices associated with them. History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Controls; internal abstract class FixedSOMElement : FixedSOMSemanticBox { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors protected FixedSOMElement(FixedNode fixedNode, int startIndex, int endIndex, GeneralTransform transform) { _fixedNode = fixedNode; _startIndex = startIndex; _endIndex = endIndex; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } protected FixedSOMElement(FixedNode fixedNode, GeneralTransform transform) { _fixedNode = fixedNode; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } #endregion Constructors //------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Static methods public static FixedSOMElement CreateFixedSOMElement(FixedPage page, UIElement uiElement, FixedNode fixedNode, int startIndex, int endIndex) { FixedSOMElement element = null; if (uiElement is Glyphs) { Glyphs glyphs = uiElement as Glyphs; if (glyphs.UnicodeString.Length > 0) { GlyphRun glyphRun = glyphs.ToGlyphRun(); Rect alignmentBox = glyphRun.ComputeAlignmentBox(); alignmentBox.Offset(glyphs.OriginX, glyphs.OriginY); GeneralTransform transform = glyphs.TransformToAncestor(page); if (startIndex < 0) { startIndex = 0; } if (endIndex < 0) { endIndex = glyphRun.Characters == null ? 0 : glyphRun.Characters.Count; } element = FixedSOMTextRun.Create(alignmentBox, transform, glyphs, fixedNode, startIndex, endIndex, false); } } else if (uiElement is Image) { element = FixedSOMImage.Create(page, uiElement as Image, fixedNode); } else if (uiElement is Path) { element = FixedSOMImage.Create(page, uiElement as Path, fixedNode); } return element; } #endregion Static methods //-------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Public Properties public FixedNode FixedNode { get { return _fixedNode; } } public int StartIndex { get { return _startIndex; } } public int EndIndex { get { return _endIndex; } } #endregion Public Properties //-------------------------------------------------------------------- // // Internal Properties // //---------------------------------------------------------------------- #region Internal Properties internal FlowNode FlowNode { get { return _flowNode; } set { _flowNode = value; } } internal int OffsetInFlowNode { get { return _offsetInFlowNode; } set { _offsetInFlowNode = value; } } internal Matrix Matrix { get { return _mat; } } #endregion Internal Properties //------------------------------------------------------------------- // // Protected Fields // //---------------------------------------------------------------------- #region Protected Fields protected FixedNode _fixedNode ; protected int _startIndex; protected int _endIndex; protected Matrix _mat; #endregion Protected Fields #region Private Fields private FlowNode _flowNode; private int _offsetInFlowNode; #endregion Private Fields } } // 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
- ServerValidateEventArgs.cs
- DictionaryEditChange.cs
- TextEditorSelection.cs
- RuleProcessor.cs
- InProcStateClientManager.cs
- PropertyPathConverter.cs
- BindMarkupExtensionSerializer.cs
- GridSplitter.cs
- mediaeventargs.cs
- XslCompiledTransform.cs
- CultureInfoConverter.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- IsolatedStorageFile.cs
- FontStretchConverter.cs
- DataBindEngine.cs
- AppDomainManager.cs
- GlyphsSerializer.cs
- EmptyControlCollection.cs
- jithelpers.cs
- DirtyTextRange.cs
- ExtensibleClassFactory.cs
- GregorianCalendarHelper.cs
- CSharpCodeProvider.cs
- TypeExtension.cs
- _IPv4Address.cs
- DetailsViewInsertedEventArgs.cs
- SimpleTypeResolver.cs
- DependencyObjectValidator.cs
- DeleteHelper.cs
- ModelItemKeyValuePair.cs
- DataGridViewCellConverter.cs
- CodeTypeMemberCollection.cs
- CqlGenerator.cs
- ReadWriteSpinLock.cs
- CanonicalXml.cs
- ValidationPropertyAttribute.cs
- CatalogPartChrome.cs
- SqlClientPermission.cs
- CalendarDesigner.cs
- DetailsViewDeleteEventArgs.cs
- BooleanAnimationUsingKeyFrames.cs
- SelectionHighlightInfo.cs
- NetworkInterface.cs
- InkCanvasAutomationPeer.cs
- EncryptedData.cs
- MetaForeignKeyColumn.cs
- DiffuseMaterial.cs
- XmlArrayAttribute.cs
- RadioButton.cs
- EmbossBitmapEffect.cs
- EdmFunction.cs
- MimeWriter.cs
- DataGridViewCell.cs
- InstancePersistenceEvent.cs
- IdnElement.cs
- HebrewCalendar.cs
- OleDbStruct.cs
- PersonalizationDictionary.cs
- AuthenticatedStream.cs
- BindableAttribute.cs
- UriScheme.cs
- OutgoingWebRequestContext.cs
- BuiltInExpr.cs
- XsltInput.cs
- TextDecorationCollectionConverter.cs
- TextSearch.cs
- AssociationProvider.cs
- MissingMemberException.cs
- TempFiles.cs
- EventProvider.cs
- ListControlActionList.cs
- ConfigurationSectionCollection.cs
- AppDomainProtocolHandler.cs
- Vector3DKeyFrameCollection.cs
- EventMappingSettings.cs
- StrokeCollectionConverter.cs
- ClassData.cs
- UnsupportedPolicyOptionsException.cs
- QilScopedVisitor.cs
- ThreadAbortException.cs
- TimestampInformation.cs
- ContentElementAutomationPeer.cs
- EnterpriseServicesHelper.cs
- UICuesEvent.cs
- GACMembershipCondition.cs
- FloaterParaClient.cs
- SqlParameterizer.cs
- DesignSurfaceCollection.cs
- SQLInt16Storage.cs
- Trigger.cs
- DSASignatureDeformatter.cs
- Permission.cs
- SystemTcpConnection.cs
- OracleString.cs
- BaseTemplateCodeDomTreeGenerator.cs
- InputMethodStateChangeEventArgs.cs
- TextFormatterImp.cs
- StringBuilder.cs
- DataRowIndexBuffer.cs
- SRef.cs