Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- storepermission.cs
- ParameterReplacerVisitor.cs
- PackageController.cs
- EtwTrace.cs
- ArrangedElementCollection.cs
- XamlStyleSerializer.cs
- SymbolEqualComparer.cs
- ExeConfigurationFileMap.cs
- XPathNodeInfoAtom.cs
- InterleavedZipPartStream.cs
- DecoderReplacementFallback.cs
- ContainerUtilities.cs
- ExpressionPrinter.cs
- DataServiceQueryException.cs
- DataGridCommandEventArgs.cs
- CssTextWriter.cs
- ValidatorCollection.cs
- HttpModulesSection.cs
- webbrowsersite.cs
- BinaryObjectReader.cs
- FollowerQueueCreator.cs
- AttributeEmitter.cs
- lengthconverter.cs
- WebPartCollection.cs
- RuntimeConfig.cs
- QilFactory.cs
- DynamicValidator.cs
- RegisteredArrayDeclaration.cs
- InstanceKeyCollisionException.cs
- UnauthorizedAccessException.cs
- SQLResource.cs
- CustomValidator.cs
- XmlWriterSettings.cs
- NegatedCellConstant.cs
- AbsoluteQuery.cs
- DragDropHelper.cs
- TextDocumentView.cs
- DependencyObjectValidator.cs
- ToolStripLabel.cs
- ping.cs
- TreeNodeSelectionProcessor.cs
- ADConnectionHelper.cs
- GeometryHitTestResult.cs
- DesignerActionVerbList.cs
- ShadowGlyph.cs
- BitmapEffectInputConnector.cs
- OdbcTransaction.cs
- UpdatePanel.cs
- ThumbButtonInfo.cs
- GuidTagList.cs
- RepeatButtonAutomationPeer.cs
- ServiceOperation.cs
- HitTestResult.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- OperationDescription.cs
- CultureSpecificCharacterBufferRange.cs
- AssociationType.cs
- InvalidWMPVersionException.cs
- MailMessage.cs
- DataObject.cs
- Visitor.cs
- TypeDescriptionProvider.cs
- AccessorTable.cs
- IteratorFilter.cs
- BlockCollection.cs
- BrowserDefinitionCollection.cs
- XmlDataSourceView.cs
- SByte.cs
- DoubleCollection.cs
- ValueCollectionParameterReader.cs
- RegisteredArrayDeclaration.cs
- ListDictionary.cs
- ListArgumentProvider.cs
- SessionSwitchEventArgs.cs
- MetadataArtifactLoaderFile.cs
- _IPv6Address.cs
- XmlProcessingInstruction.cs
- ComponentEditorForm.cs
- MatcherBuilder.cs
- IIS7WorkerRequest.cs
- ExpressionConverter.cs
- MaskInputRejectedEventArgs.cs
- ICspAsymmetricAlgorithm.cs
- DictionaryBase.cs
- MLangCodePageEncoding.cs
- AsmxEndpointPickerExtension.cs
- TdsParserStateObject.cs
- HttpResponseMessageProperty.cs
- PageThemeBuildProvider.cs
- ToolBar.cs
- DataViewManager.cs
- InfocardExtendedInformationEntry.cs
- Pair.cs
- QuadraticBezierSegment.cs
- EventProvider.cs
- iisPickupDirectory.cs
- FolderBrowserDialogDesigner.cs
- FamilyTypeface.cs
- RequestCacheEntry.cs
- OleDbConnectionInternal.cs