Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Documents / FixedSOMElement.cs / 1 / 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
- SafeTokenHandle.cs
- CommentGlyph.cs
- HitTestParameters3D.cs
- DictionaryEntry.cs
- UriScheme.cs
- _SingleItemRequestCache.cs
- UDPClient.cs
- AttachedAnnotationChangedEventArgs.cs
- HtmlShimManager.cs
- TreeNodeEventArgs.cs
- HtmlFormWrapper.cs
- TableLayoutSettings.cs
- HtmlTableRow.cs
- DelayedRegex.cs
- ListViewGroupItemCollection.cs
- StickyNote.cs
- EntitySetBaseCollection.cs
- BasicViewGenerator.cs
- DbExpressionBuilder.cs
- SettingsBindableAttribute.cs
- DataSysAttribute.cs
- MergeLocalizationDirectives.cs
- BamlVersionHeader.cs
- QilExpression.cs
- TextPenaltyModule.cs
- RecordsAffectedEventArgs.cs
- TimeStampChecker.cs
- MergeFailedEvent.cs
- ServicePointManager.cs
- CookielessHelper.cs
- InvalidPropValue.cs
- PropertyCollection.cs
- DateTimeUtil.cs
- XmlProcessingInstruction.cs
- Helpers.cs
- Block.cs
- IDReferencePropertyAttribute.cs
- ListView.cs
- DecimalConstantAttribute.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- ConsoleKeyInfo.cs
- AssemblyEvidenceFactory.cs
- OdbcConnectionOpen.cs
- VSWCFServiceContractGenerator.cs
- HttpRequestCacheValidator.cs
- OraclePermissionAttribute.cs
- AccessViolationException.cs
- ShaderEffect.cs
- HtmlButton.cs
- SettingsPropertyNotFoundException.cs
- Types.cs
- CategoryEditor.cs
- TreeNodeMouseHoverEvent.cs
- KerberosTicketHashIdentifierClause.cs
- RijndaelManaged.cs
- PropertyOverridesTypeEditor.cs
- ListBoxChrome.cs
- XmlBaseReader.cs
- CqlGenerator.cs
- InternalPermissions.cs
- EmptyEnumerator.cs
- ShaperBuffers.cs
- PeekCompletedEventArgs.cs
- XPathSelectionIterator.cs
- FileSystemEventArgs.cs
- ConsoleKeyInfo.cs
- StorageEndPropertyMapping.cs
- WindowsHyperlink.cs
- UnionExpr.cs
- CodeTryCatchFinallyStatement.cs
- BulletChrome.cs
- DownloadProgressEventArgs.cs
- Reference.cs
- DataRelationPropertyDescriptor.cs
- SynchronousReceiveElement.cs
- DispatcherHookEventArgs.cs
- ScrollViewerAutomationPeer.cs
- SchemaCollectionPreprocessor.cs
- AsymmetricSecurityProtocolFactory.cs
- ViewGenerator.cs
- MostlySingletonList.cs
- TextCollapsingProperties.cs
- MouseEvent.cs
- IisTraceListener.cs
- HostedHttpRequestAsyncResult.cs
- COAUTHIDENTITY.cs
- CancellationHandler.cs
- SettingsPropertyWrongTypeException.cs
- PriorityBindingExpression.cs
- DisplayInformation.cs
- SimplePropertyEntry.cs
- CodeMemberProperty.cs
- StoragePropertyMapping.cs
- KnownBoxes.cs
- QueryStringParameter.cs
- OdbcErrorCollection.cs
- ToolStripGrip.cs
- SystemEvents.cs
- GlobalItem.cs
- XmlSchemaSimpleContentRestriction.cs