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
- TraceFilter.cs
- HierarchicalDataBoundControlAdapter.cs
- XmlHelper.cs
- EntityConnection.cs
- VariableValue.cs
- ClientScriptManagerWrapper.cs
- DocumentXmlWriter.cs
- CheckBoxPopupAdapter.cs
- LinkClickEvent.cs
- AuthenticationService.cs
- TreeNode.cs
- WorkflowInstance.cs
- RandomNumberGenerator.cs
- HttpHandlerAction.cs
- EdmFunctionAttribute.cs
- ResolveCompletedEventArgs.cs
- XmlDomTextWriter.cs
- TemplateBindingExtensionConverter.cs
- ToolStripLabel.cs
- OrderedEnumerableRowCollection.cs
- GiveFeedbackEvent.cs
- SharedPerformanceCounter.cs
- StructureChangedEventArgs.cs
- Encoder.cs
- CatalogPartChrome.cs
- TransformCollection.cs
- OracleLob.cs
- UnionExpr.cs
- XmlSignatureProperties.cs
- OleDbCommandBuilder.cs
- MaxMessageSizeStream.cs
- ControlParameter.cs
- GeneralTransform2DTo3D.cs
- AutoGeneratedField.cs
- SpeechRecognizer.cs
- Visitor.cs
- WCFBuildProvider.cs
- PolyBezierSegment.cs
- ListDataBindEventArgs.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- SchemaCollectionPreprocessor.cs
- StopStoryboard.cs
- ByteConverter.cs
- WindowsFormsLinkLabel.cs
- DataSourceXmlSerializer.cs
- IRCollection.cs
- IriParsingElement.cs
- COM2ExtendedBrowsingHandler.cs
- MsmqTransportSecurity.cs
- _ListenerResponseStream.cs
- ChangeInterceptorAttribute.cs
- KoreanCalendar.cs
- LookupNode.cs
- IProvider.cs
- Point3D.cs
- XhtmlBasicPhoneCallAdapter.cs
- ToolboxComponentsCreatedEventArgs.cs
- UICuesEvent.cs
- OleDbMetaDataFactory.cs
- RSAPKCS1KeyExchangeFormatter.cs
- LingerOption.cs
- WebPartMenuStyle.cs
- Cell.cs
- Int64AnimationBase.cs
- ToolBarButtonClickEvent.cs
- VariableQuery.cs
- ChangeTracker.cs
- BufferedGraphicsManager.cs
- TableParagraph.cs
- InternalBufferManager.cs
- DesignerAttribute.cs
- BamlVersionHeader.cs
- DbLambda.cs
- AutoCompleteStringCollection.cs
- DownloadProgressEventArgs.cs
- TypeUsageBuilder.cs
- HttpApplication.cs
- HuffmanTree.cs
- DataSourceControlBuilder.cs
- ToolStripItemImageRenderEventArgs.cs
- ProxyGenerationError.cs
- RepeaterCommandEventArgs.cs
- UnsafeNativeMethods.cs
- PartialArray.cs
- ColumnResizeAdorner.cs
- CheckBoxField.cs
- AutoFocusStyle.xaml.cs
- FontSourceCollection.cs
- recordstatescratchpad.cs
- PersonalizationState.cs
- LiteralLink.cs
- DelimitedListTraceListener.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- XmlChoiceIdentifierAttribute.cs
- TemplateAction.cs
- XmlSchemaComplexContent.cs
- MaskDescriptor.cs
- DrawListViewSubItemEventArgs.cs
- StandardToolWindows.cs
- EdmEntityTypeAttribute.cs