Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TCEAdapterGenerator.cs
- InputBindingCollection.cs
- DateTimeSerializationSection.cs
- MultiSelector.cs
- AnonymousIdentificationSection.cs
- CallSiteOps.cs
- NonBatchDirectoryCompiler.cs
- DefaultValueConverter.cs
- MbpInfo.cs
- AffineTransform3D.cs
- ImmutableClientRuntime.cs
- TheQuery.cs
- ToolStripHighContrastRenderer.cs
- LocationSectionRecord.cs
- CfgRule.cs
- GlobalProxySelection.cs
- UrlMappingCollection.cs
- SystemDropShadowChrome.cs
- BrushMappingModeValidation.cs
- TcpWorkerProcess.cs
- AnnotationResource.cs
- MeshGeometry3D.cs
- MetafileHeader.cs
- ValidationResult.cs
- LinkConverter.cs
- SQLGuid.cs
- WriteTimeStream.cs
- serverconfig.cs
- TabItem.cs
- DynamicHyperLink.cs
- SyntaxCheck.cs
- BulletDecorator.cs
- InvokeDelegate.cs
- HitTestResult.cs
- WmfPlaceableFileHeader.cs
- SignedXml.cs
- DllNotFoundException.cs
- SafeSystemMetrics.cs
- InkPresenter.cs
- RadioButton.cs
- CompositeKey.cs
- Localizer.cs
- EnumConverter.cs
- ListChangedEventArgs.cs
- WinFormsSecurity.cs
- OuterGlowBitmapEffect.cs
- PageEventArgs.cs
- Soap.cs
- FormViewInsertedEventArgs.cs
- CodeVariableReferenceExpression.cs
- WindowsListViewItemCheckBox.cs
- ListBase.cs
- PlatformCulture.cs
- Vector3DAnimationBase.cs
- ProtocolElementCollection.cs
- FunctionParameter.cs
- AssertHelper.cs
- XPathNodeIterator.cs
- GlobalizationAssembly.cs
- WpfWebRequestHelper.cs
- ClickablePoint.cs
- TrustSection.cs
- XmlIgnoreAttribute.cs
- DispatcherEventArgs.cs
- OracleRowUpdatingEventArgs.cs
- HTMLTagNameToTypeMapper.cs
- WinEventWrap.cs
- ISAPIApplicationHost.cs
- TrustExchangeException.cs
- TimeSpanFormat.cs
- PersianCalendar.cs
- CanonicalFontFamilyReference.cs
- FixedPageAutomationPeer.cs
- FontFaceLayoutInfo.cs
- Math.cs
- DeviceContext.cs
- OleDbEnumerator.cs
- MenuScrollingVisibilityConverter.cs
- FigureParaClient.cs
- ThousandthOfEmRealDoubles.cs
- SignedPkcs7.cs
- MultipartIdentifier.cs
- BrowserInteropHelper.cs
- TimelineGroup.cs
- Substitution.cs
- TableLayoutSettingsTypeConverter.cs
- NameTable.cs
- newinstructionaction.cs
- EventProviderWriter.cs
- ThreadPoolTaskScheduler.cs
- TextLine.cs
- URL.cs
- DependencyPropertyConverter.cs
- AnimationStorage.cs
- RoleGroupCollectionEditor.cs
- Geometry.cs
- ErrorProvider.cs
- ModuleBuilder.cs
- controlskin.cs
- XmlImplementation.cs