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
- CreateUserWizardStep.cs
- LocatorBase.cs
- SymmetricKeyWrap.cs
- ConnectivityStatus.cs
- WindowProviderWrapper.cs
- SqlBuilder.cs
- SQLDecimal.cs
- BasePropertyDescriptor.cs
- New.cs
- StaticDataManager.cs
- ImageField.cs
- CultureInfo.cs
- XhtmlMobileTextWriter.cs
- IntranetCredentialPolicy.cs
- CryptoStream.cs
- SoapAttributeAttribute.cs
- CodePageUtils.cs
- WindowCollection.cs
- SelectionProcessor.cs
- BooleanFunctions.cs
- ICspAsymmetricAlgorithm.cs
- SmtpCommands.cs
- ListenerSingletonConnectionReader.cs
- OleDbDataAdapter.cs
- OdbcConnectionFactory.cs
- JsonFaultDetail.cs
- CommandExpr.cs
- CacheMemory.cs
- MatchSingleFxEngineOpcode.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- MenuBindingsEditorForm.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ImplicitInputBrush.cs
- BypassElementCollection.cs
- CurrentTimeZone.cs
- Point.cs
- DataTableReaderListener.cs
- HtmlContainerControl.cs
- RoleManagerSection.cs
- AudioLevelUpdatedEventArgs.cs
- ClientCultureInfo.cs
- TextElementCollectionHelper.cs
- CannotUnloadAppDomainException.cs
- EpmHelper.cs
- ToolbarAUtomationPeer.cs
- NameScopePropertyAttribute.cs
- TableSectionStyle.cs
- DtrList.cs
- Stackframe.cs
- BitStack.cs
- SharedStatics.cs
- WebPartUserCapability.cs
- DrawListViewColumnHeaderEventArgs.cs
- SuppressMessageAttribute.cs
- GridLength.cs
- TailPinnedEventArgs.cs
- DataServiceConfiguration.cs
- EventsTab.cs
- ClipboardData.cs
- AllMembershipCondition.cs
- Vector3DAnimationUsingKeyFrames.cs
- XsdBuildProvider.cs
- TimeBoundedCache.cs
- SqlCacheDependency.cs
- StyleCollection.cs
- TemplatedMailWebEventProvider.cs
- SspiNegotiationTokenProviderState.cs
- ConfigUtil.cs
- DerivedKeySecurityToken.cs
- LambdaCompiler.Statements.cs
- UnsafeNativeMethods.cs
- SplitterCancelEvent.cs
- SHA256.cs
- PageFunction.cs
- COM2Properties.cs
- DataListItemCollection.cs
- ItemType.cs
- PagerSettings.cs
- ServiceControllerDesigner.cs
- SByte.cs
- BrushMappingModeValidation.cs
- OracleConnectionStringBuilder.cs
- MetadataCollection.cs
- ADRoleFactoryConfiguration.cs
- XmlSiteMapProvider.cs
- Rect3DConverter.cs
- TimersDescriptionAttribute.cs
- XXXInfos.cs
- FontStyleConverter.cs
- ScriptManagerProxy.cs
- MatchingStyle.cs
- MediaTimeline.cs
- MiniLockedBorderGlyph.cs
- SmtpClient.cs
- DataGridViewComboBoxEditingControl.cs
- FormsAuthentication.cs
- FontDifferentiator.cs
- IntSecurity.cs
- WindowsToolbar.cs
- SamlDelegatingWriter.cs